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
|
% Soutenance de stage de fin d'études
|
||||||
% Pierre-Olivier Mercier
|
% Pierre-Olivier Mercier
|
||||||
% Jeudi 4 septembre 2014
|
% Jeudi 4 septembre 2014
|
||||||
@ -15,11 +22,11 @@
|
|||||||
|
|
||||||
## \textsc{Dual}
|
## \textsc{Dual}
|
||||||
|
|
||||||
\vspace*{-0.5cm}
|
\vspace*{-0.8cm}
|
||||||
|
|
||||||
%%image(../templates/nemu/images/game.png, 0.7)
|
%%image(../templates/nemu/images/game.png, 0.7)
|
||||||
|
|
||||||
\vspace*{-0.7cm}
|
\vspace*{-0.9cm}
|
||||||
|
|
||||||
* Jeu-vidéo MMO ;
|
* Jeu-vidéo MMO ;
|
||||||
* monde unique, éditable, rendu par *Voxels* ;
|
* monde unique, éditable, rendu par *Voxels* ;
|
||||||
@ -47,29 +54,50 @@
|
|||||||
|
|
||||||
%%image(../report/img/grafana-monitor0.png)
|
%%image(../report/img/grafana-monitor0.png)
|
||||||
|
|
||||||
## Conception de recettes de déploiement
|
## Déploiement centralisé
|
||||||
|
|
||||||
### Via Ansible
|
|
||||||
|
|
||||||
* Serveur de monitoring ;
|
### Recettes Ansible
|
||||||
* serveur de jeu ;
|
|
||||||
* serveur de conteneurs génériques.
|
|
||||||
|
|
||||||
### 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 ;
|
* Site web du jeu ;
|
||||||
* forum ;
|
* forum ;
|
||||||
* supervision ;
|
* supervision ;
|
||||||
* LDAP.
|
* serveur LDAP.
|
||||||
|
|
||||||
|
%%putpic(95mm, 13mm, 4cm, ../templates/nemu/images/docker)
|
||||||
|
|
||||||
|
|
||||||
## Tests de montée en charge
|
## 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
|
### Sur Amazon Web Services EC2
|
||||||
|
|
||||||
* Déploiement de machines virtuelles ;
|
* Construction du disque virtuel par recette Ansible ;
|
||||||
* analyse des résultats : métriques, goulots d'étranglements ;
|
* lancement progressif des machines virtuelles via l'API.
|
||||||
* profiling du code en charge.
|
|
||||||
|
|
||||||
|
|
||||||
# Conclusion
|
# 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
|
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`.
|
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
|
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
|
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
|
virtualisation légère : les machines virtuelles à destination des développeurs
|
||||||
ainsi que les machines client pour les tests de montée en charge.
|
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
|
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
|
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
|
virtuelle et se contente d'un serveur commun, mais à terme, elle permettra de
|
||||||
tests adapté à chaque développeur, via une interface simplifiée : aujourd'hui
|
charger différents scénarios de tests adapté à chaque développeur, via une
|
||||||
c'est une interface sommaire réalisée avec Curses, mais lorsque la demande sera
|
interface simplifiée : aujourd'hui c'est une interface sommaire réalisée avec
|
||||||
plus forte, une interface web offrira les mêmes possibilités.
|
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
|
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
|
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
|
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.
|
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
|
On a fait les tests de montée en charge en installant sur une machine type un
|
||||||
serveur de jeu.
|
serveur de jeu.
|
||||||
|
@ -1,9 +1,17 @@
|
|||||||
\documentclass[$if(fontsize)$$fontsize$,$endif$$if(handout)$handout,$endif$$if(beamer)$ignorenonframetext,$endif$]{$documentclass$}
|
\documentclass[$if(fontsize)$$fontsize$,$endif$$if(handout)$handout,$endif$$if(beamer)$ignorenonframetext,$endif$]{$documentclass$}
|
||||||
\usepackage{tikz}
|
\usepackage{tikz}
|
||||||
\usetheme{Darmstadt}
|
%\usetheme{Darmstadt}
|
||||||
|
\usetheme{Frankfurt}
|
||||||
\setbeamercolor{structure}{fg=black, bg=black}
|
\setbeamercolor{structure}{fg=black, bg=black}
|
||||||
\setbeamercovered{dynamic}
|
\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*{author in head/foot}{parent=palette tertiary}
|
||||||
\setbeamercolor*{title in head/foot}{parent=palette secondary}
|
\setbeamercolor*{title in head/foot}{parent=palette secondary}
|
||||||
\setbeamercolor*{date in head/foot}{parent=palette primary}
|
\setbeamercolor*{date in head/foot}{parent=palette primary}
|
||||||
@ -11,6 +19,10 @@
|
|||||||
\setbeamercolor*{section in head/foot}{parent=palette tertiary}
|
\setbeamercolor*{section in head/foot}{parent=palette tertiary}
|
||||||
\setbeamercolor*{subsection in head/foot}{parent=palette primary}
|
\setbeamercolor*{subsection in head/foot}{parent=palette primary}
|
||||||
|
|
||||||
|
\useinnertheme{circles}
|
||||||
|
%\usepackage{wasysym}
|
||||||
|
%\setbeamertemplate{itemize items}{\hexagon}
|
||||||
|
|
||||||
\pgfdeclareimage[height=\the\paperheight]{backgroundImage}{images/background}
|
\pgfdeclareimage[height=\the\paperheight]{backgroundImage}{images/background}
|
||||||
|
|
||||||
\setbeamertemplate{background}{
|
\setbeamertemplate{background}{
|
||||||
@ -22,6 +34,7 @@
|
|||||||
|
|
||||||
\ifnum\thepage>0\relax%
|
\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[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
|
\fi
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
}
|
}
|
||||||
@ -45,15 +58,6 @@
|
|||||||
\vskip0pt%
|
\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{amssymb,amsmath}
|
||||||
\usepackage{ifxetex,ifluatex}
|
\usepackage{ifxetex,ifluatex}
|
||||||
\usepackage{fixltx2e} % provides \textsubscript
|
\usepackage{fixltx2e} % provides \textsubscript
|
||||||
@ -214,7 +218,7 @@ $endif$
|
|||||||
\pgfdeclareimage[width=\textwidth]{nq-logo}{images/nq-high}
|
\pgfdeclareimage[width=\textwidth]{nq-logo}{images/nq-high}
|
||||||
\institute{\pgfuseimage{nq-logo}}
|
\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}
|
\begin{document}
|
||||||
$if(title)$
|
$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