Update defense
This commit is contained in:
parent
53cae331b5
commit
7da19d2be6
5 changed files with 75 additions and 31 deletions
|
@ -1,3 +1,10 @@
|
|||
%%define putpic($x , $y , $width , $path)
|
||||
return "\\begin{tikzpicture}[remember picture,overlay]" .
|
||||
"\\node at ($x,$y) {" .
|
||||
"\\includegraphics[width=$width]{$path}};" .
|
||||
"\\end{tikzpicture}"
|
||||
=end
|
||||
|
||||
% Soutenance de stage de fin d'études
|
||||
% Pierre-Olivier Mercier
|
||||
% Jeudi 4 septembre 2014
|
||||
|
@ -15,11 +22,11 @@
|
|||
|
||||
## \textsc{Dual}
|
||||
|
||||
\vspace*{-0.5cm}
|
||||
\vspace*{-0.8cm}
|
||||
|
||||
%%image(../templates/nemu/images/game.png, 0.7)
|
||||
|
||||
\vspace*{-0.7cm}
|
||||
\vspace*{-0.9cm}
|
||||
|
||||
* Jeu-vidéo MMO ;
|
||||
* monde unique, éditable, rendu par *Voxels* ;
|
||||
|
@ -47,29 +54,50 @@
|
|||
|
||||
%%image(../report/img/grafana-monitor0.png)
|
||||
|
||||
## Conception de recettes de déploiement
|
||||
## Déploiement centralisé
|
||||
|
||||
### Via Ansible
|
||||
|
||||
* Serveur de monitoring ;
|
||||
* serveur de jeu ;
|
||||
* serveur de conteneurs génériques.
|
||||
### Recettes Ansible
|
||||
|
||||
### via Docker
|
||||
* Serveurs de conteneurs applicatifs (LXC, Docker) ;
|
||||
* machines pour les tests de montée en charge ;
|
||||
* machines virtuelles pour les développeurs.
|
||||
|
||||
%%putpic(98mm, 10mm, 2cm, ../templates/nemu/images/ansible)
|
||||
|
||||
### Inventaire automatique
|
||||
|
||||
Qualification des machines à partir d'une nomenclarure prédéfinie.
|
||||
|
||||
|
||||
## Interface de gestion
|
||||
|
||||
%%image(../report/img/ncurses-dev.png)
|
||||
|
||||
## Virtualisation légère
|
||||
|
||||
### Conteneurs applicatifs
|
||||
|
||||
* Site web du jeu ;
|
||||
* forum ;
|
||||
* supervision ;
|
||||
* LDAP.
|
||||
* serveur LDAP.
|
||||
|
||||
%%putpic(95mm, 13mm, 4cm, ../templates/nemu/images/docker)
|
||||
|
||||
|
||||
## Tests de montée en charge
|
||||
|
||||
### Sur un serveur OVH
|
||||
|
||||
* Déploiement d'un serveur de jeu ;
|
||||
* relevé de métriques système ;
|
||||
* profiling du code en charge.
|
||||
|
||||
### Sur Amazon Web Services EC2
|
||||
|
||||
* Déploiement de machines virtuelles ;
|
||||
* analyse des résultats : métriques, goulots d'étranglements ;
|
||||
* profiling du code en charge.
|
||||
* Construction du disque virtuel par recette Ansible ;
|
||||
* lancement progressif des machines virtuelles via l'API.
|
||||
|
||||
|
||||
# Conclusion
|
||||
|
|
|
@ -114,9 +114,9 @@ code aux développeurs du projet qui l'ont rapidement accepté.
|
|||
La base de données expose une API fonctionnant au dessus du protocole HTTP, la
|
||||
bibliothèque que j'ai réalisé utilise donc allégrement la `libcurl`.
|
||||
|
||||
## Conception de recettes de déploiement
|
||||
## Déploiement centralisé
|
||||
|
||||
### Ansible
|
||||
### Recettes Ansible
|
||||
|
||||
Avec de nombreux serveurs, on a parfois du mal à gérer et centraliser leur
|
||||
configurations et la mise à jour de l'application pour laquelle ils sont
|
||||
|
@ -142,14 +142,26 @@ virtuelles pour les environnements où l'on ne peut pas utiliser la
|
|||
virtualisation légère : les machines virtuelles à destination des développeurs
|
||||
ainsi que les machines client pour les tests de montée en charge.
|
||||
|
||||
### Inventaire automatique
|
||||
|
||||
L'inventaire des machines est réalisé par un script écrit en Python, respectant
|
||||
les spécifications attendues par Ansible. Il peut récupérer depuis différentes
|
||||
sources (liste des machines de la `libvirt` pour un environnement local de
|
||||
test, requête AXFR sur un sous-domaine) la liste des machines ainsi que leur IP
|
||||
et qualifie ensuite, à partir d'une nomenclature précise, chaque machine et
|
||||
applique ensuite la recette qui doit être appliquée.
|
||||
|
||||
## Interface de gestion
|
||||
|
||||
Pour le moment, les interactions avec le serveur sont encore relativement
|
||||
limitées, donc tous les développeurs n'ont pas encore besoin de cette machine
|
||||
virtuelle, mais à terme, elle permettra de charger différents scénarios de
|
||||
tests adapté à chaque développeur, via une interface simplifiée : aujourd'hui
|
||||
c'est une interface sommaire réalisée avec Curses, mais lorsque la demande sera
|
||||
plus forte, une interface web offrira les mêmes possibilités.
|
||||
virtuelle et se contente d'un serveur commun, mais à terme, elle permettra de
|
||||
charger différents scénarios de tests adapté à chaque développeur, via une
|
||||
interface simplifiée : aujourd'hui c'est une interface sommaire réalisée avec
|
||||
Curses, mais lorsque la demande sera plus forte, une interface web offrira les
|
||||
mêmes possibilités.
|
||||
|
||||
### Docker
|
||||
## Virtualisation légère
|
||||
|
||||
On utilise Docker pour créer et exécuter des conteneurs applicatifs. Il s'agit
|
||||
de virtualisation légère : un environnement complet est embarqué, de la même
|
||||
|
@ -167,7 +179,7 @@ Docker est un projet récent, qui sussite un très fort engouement depuis sa
|
|||
création ; la première version finale est sortie il y a deux mois, ce qui
|
||||
permet de rassurer quant à sa stabilité pour les environnements de production.
|
||||
|
||||
### Tests de montée en charge
|
||||
## Tests de montée en charge
|
||||
|
||||
On a fait les tests de montée en charge en installant sur une machine type un
|
||||
serveur de jeu.
|
||||
|
|
Reference in a new issue