Update defense
This commit is contained in:
parent
53cae331b5
commit
7da19d2be6
@ -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.
|
||||
|
@ -1,9 +1,17 @@
|
||||
\documentclass[$if(fontsize)$$fontsize$,$endif$$if(handout)$handout,$endif$$if(beamer)$ignorenonframetext,$endif$]{$documentclass$}
|
||||
\usepackage{tikz}
|
||||
\usetheme{Darmstadt}
|
||||
%\usetheme{Darmstadt}
|
||||
\usetheme{Frankfurt}
|
||||
\setbeamercolor{structure}{fg=black, bg=black}
|
||||
\setbeamercovered{dynamic}
|
||||
|
||||
\pgfdeclarelayer{foreground}
|
||||
|
||||
\pgfsetlayers{main,foreground}
|
||||
|
||||
\definecolor{secinhead}{RGB}{255,102,0}
|
||||
\setbeamercolor{frametitle}{fg=secinhead}
|
||||
|
||||
\setbeamercolor*{author in head/foot}{parent=palette tertiary}
|
||||
\setbeamercolor*{title in head/foot}{parent=palette secondary}
|
||||
\setbeamercolor*{date in head/foot}{parent=palette primary}
|
||||
@ -11,6 +19,10 @@
|
||||
\setbeamercolor*{section in head/foot}{parent=palette tertiary}
|
||||
\setbeamercolor*{subsection in head/foot}{parent=palette primary}
|
||||
|
||||
\useinnertheme{circles}
|
||||
%\usepackage{wasysym}
|
||||
%\setbeamertemplate{itemize items}{\hexagon}
|
||||
|
||||
\pgfdeclareimage[height=\the\paperheight]{backgroundImage}{images/background}
|
||||
|
||||
\setbeamertemplate{background}{
|
||||
@ -22,6 +34,7 @@
|
||||
|
||||
\ifnum\thepage>0\relax%
|
||||
\fill[white, opacity=0.6] (0cm, 0cm) -- (0cm, 1.0\paperwidth) -- (1.0\paperwidth, 1.0\paperwidth) -- (1.0\paperwidth, 0cm) ;
|
||||
\fill[black, opacity=0.05] (0cm, 0cm) -- (0cm, 1.0\paperwidth) -- (1.0\paperwidth, 1.0\paperwidth) -- (1.0\paperwidth, 0cm) ;
|
||||
\fi
|
||||
\end{tikzpicture}
|
||||
}
|
||||
@ -45,15 +58,6 @@
|
||||
\vskip0pt%
|
||||
}
|
||||
|
||||
\setbeamertemplate{subsection page}
|
||||
{
|
||||
\begin{centering}
|
||||
\begin{beamercolorbox}[sep=8pt,center,rounded=true]{part title}
|
||||
\usebeamerfont{subsection title}\insertsubsection\par
|
||||
\end{beamercolorbox}
|
||||
\end{centering}
|
||||
}
|
||||
|
||||
\usepackage{amssymb,amsmath}
|
||||
\usepackage{ifxetex,ifluatex}
|
||||
\usepackage{fixltx2e} % provides \textsubscript
|
||||
@ -214,7 +218,7 @@ $endif$
|
||||
\pgfdeclareimage[width=\textwidth]{nq-logo}{images/nq-high}
|
||||
\institute{\pgfuseimage{nq-logo}}
|
||||
|
||||
\logo{\includegraphics[scale=0.25]{images/nq}\includegraphics[scale=0.09]{images/epita}}
|
||||
\logo{\ifnum\thepage>1\includegraphics[scale=0.03]{images/nq-high}\hspace{7.55cm}\fi\includegraphics[scale=0.09]{images/epita}}
|
||||
|
||||
\begin{document}
|
||||
$if(title)$
|
||||
|
BIN
templates/nemu/images/ansible.png
Normal file
BIN
templates/nemu/images/ansible.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
templates/nemu/images/docker.png
Normal file
BIN
templates/nemu/images/docker.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
Reference in New Issue
Block a user