Add some illustrations
This commit is contained in:
parent
6e4a1c2e5a
commit
09500875d5
@ -7,7 +7,7 @@ rachetée par Aldebaran en 2012.
|
|||||||
L'équipe se concentre sur la conception d'un jeu vidéo en ligne massivement
|
L'équipe se concentre sur la conception d'un jeu vidéo en ligne massivement
|
||||||
multijoueurs dans un monde unique partagé par tous les joueurs : \Dual.
|
multijoueurs dans un monde unique partagé par tous les joueurs : \Dual.
|
||||||
|
|
||||||
%%fimage(img/nq.png, 0.5, "Le logo sigle de l'entreprise")
|
%%fimage(img/nq.png, 0.15, "Le logo sigle de l'entreprise")
|
||||||
|
|
||||||
### Contexte concurentiel
|
### Contexte concurentiel
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ partageant des idées innovantes de \Dual :
|
|||||||
jeu Eve Online (plus de 500000 joueurs), tout en permettant aux joueurs
|
jeu Eve Online (plus de 500000 joueurs), tout en permettant aux joueurs
|
||||||
d'évoluer dans un monde éditable (à la manière de Minecraft).
|
d'évoluer dans un monde éditable (à la manière de Minecraft).
|
||||||
|
|
||||||
%%fimage(img/dual-dark.png, 0.5, "Le logo du jeu")
|
%%fimage(img/dual-dark.png, 0.4, "Le logo du jeu")
|
||||||
|
|
||||||
### Organisation de l'équipe
|
### Organisation de l'équipe
|
||||||
|
|
||||||
@ -119,7 +119,7 @@ L'entreprise est établie dans l'incubateur Agoranov ; une pièce nous y a été
|
|||||||
attribuée. Nous nous y retrouvons tous pour travailler, il est donc facile de
|
attribuée. Nous nous y retrouvons tous pour travailler, il est donc facile de
|
||||||
parler à n'importe qui puisque l'on se trouve dans le même espace.
|
parler à n'importe qui puisque l'on se trouve dans le même espace.
|
||||||
|
|
||||||
%%fimage(img/tinyplanet.jpg, 0.8, "Notre espace de travail")
|
%%fimage(img/tinyplanet.jpg, 0.6, "Notre espace de travail")
|
||||||
|
|
||||||
Dès le premier jour, une machine dotée de composants de pointe m'a été
|
Dès le premier jour, une machine dotée de composants de pointe m'a été
|
||||||
attribuée ; il m'a été laissé le choix du système d'exploitation. Au milieu de
|
attribuée ; il m'a été laissé le choix du système d'exploitation. Au milieu de
|
||||||
|
@ -25,7 +25,7 @@ métier du studio, cette solution a d'emblée été écartée.
|
|||||||
|
|
||||||
### Propositions retenues
|
### Propositions retenues
|
||||||
|
|
||||||
Les fournisseurs de service d'hébergement dans les nuages retenus sont :
|
Les fournisseurs de service d'hébergement en nuage retenus sont :
|
||||||
|
|
||||||
* Amazon Web Services Elastic Cloud 2 ;
|
* Amazon Web Services Elastic Cloud 2 ;
|
||||||
* Digital Ocean ;
|
* Digital Ocean ;
|
||||||
@ -51,6 +51,7 @@ support dont nous bénéficions en tant que start-up en développement.
|
|||||||
Vous trouverez en annexe le tableau de résultat comparatif effectué
|
Vous trouverez en annexe le tableau de résultat comparatif effectué
|
||||||
dans le cadre de cette analyse.
|
dans le cadre de cette analyse.
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
## Analyse des outils de déploiement automatique
|
## Analyse des outils de déploiement automatique
|
||||||
|
|
||||||
@ -98,6 +99,8 @@ Vous trouverez en annexe le tableau comparatif effectué dans le cadre
|
|||||||
de cette analyse.
|
de cette analyse.
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
## Analyse des solutions de virtualisation
|
## Analyse des solutions de virtualisation
|
||||||
|
|
||||||
### Objectifs
|
### Objectifs
|
||||||
@ -151,6 +154,8 @@ solution. LXC reste dans la course pour tout ce qui nécessite une configuration
|
|||||||
avancée que ne permettrait pas de faire Docker.
|
avancée que ne permettrait pas de faire Docker.
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
## Recherche d'une solution de gestion de chat ingame
|
## Recherche d'une solution de gestion de chat ingame
|
||||||
|
|
||||||
### Objectifs
|
### Objectifs
|
||||||
@ -184,6 +189,8 @@ transparente, comparé aux autres implémentations et des autres
|
|||||||
protocoles.
|
protocoles.
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
## Recherche d'une solution de gestion de l'authentification
|
## Recherche d'une solution de gestion de l'authentification
|
||||||
|
|
||||||
### Objectifs
|
### Objectifs
|
||||||
@ -233,6 +240,8 @@ l'échange de tickets permet de s'affranchir de trop nombreuses
|
|||||||
authentifications.
|
authentifications.
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
## Conception d'un programme de relevé de métriques système
|
## Conception d'un programme de relevé de métriques système
|
||||||
|
|
||||||
### Objectifs
|
### Objectifs
|
||||||
@ -279,6 +288,11 @@ en permettant plus facilement de comparer sur le long terme l'utilisation des
|
|||||||
ressources sur les machines en les corrélant avec les événements survenus dans
|
ressources sur les machines en les corrélant avec les événements survenus dans
|
||||||
le jeu.
|
le jeu.
|
||||||
|
|
||||||
|
%%fimage(img/cubism.png, 0.77, "Tableau de bord réalisé avec Cubism")
|
||||||
|
%%fimage(img/grafana-monitor0.png, 1, "Tableau de bord réalisé avec Graphana")
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
## Conception de recettes de déploiement automatique de serveurs
|
## Conception de recettes de déploiement automatique de serveurs
|
||||||
|
|
||||||
@ -320,16 +334,22 @@ Les recettes qu'il a été nécessaire de développer sont les suivantes :
|
|||||||
un serveur icinga (clone de nagios). Le conteneur est préconfiguré pour
|
un serveur icinga (clone de nagios). Le conteneur est préconfiguré pour
|
||||||
superviser les serveurs connus au moment de sa construction.
|
superviser les serveurs connus au moment de sa construction.
|
||||||
|
|
||||||
|
\vspace{1em}
|
||||||
|
|
||||||
Pour chaque recette, un certain nombre d'actions communes sont effectuées comme
|
Pour chaque recette, un certain nombre d'actions communes sont effectuées comme
|
||||||
la mise à jour des paquets et la sécurisation générale (comme la restriction de
|
la mise à jour des paquets et la sécurisation générale (comme la restriction de
|
||||||
l'authentification par SSH, des règles de pare-feu sommaires et diverses règles
|
l'authentification par SSH, des règles de pare-feu sommaires et diverses règles
|
||||||
permettant de prévenir diverses attaques comme le DNS et l'ARP-poisoning).
|
permettant de prévenir diverses attaques comme le DNS et l'ARP-poisoning).
|
||||||
|
|
||||||
|
\vspace{1em}
|
||||||
|
|
||||||
Certaines machines disposeront de deux interfaces réseau : une publique et une
|
Certaines machines disposeront de deux interfaces réseau : une publique et une
|
||||||
interne. Un plugin pour Ansible a donc été développé afin de gérer la présence
|
interne. Un plugin pour Ansible a donc été développé afin de gérer la présence
|
||||||
de ces deux cartes, permettant d'adapter automatique les configurations des
|
de ces deux cartes, permettant d'adapter automatique les configurations des
|
||||||
logiciels en fonction de leur besoin (usage interne ou externe au cluster).
|
logiciels en fonction de leur besoin (usage interne ou externe au cluster).
|
||||||
|
|
||||||
|
\vspace{1em}
|
||||||
|
|
||||||
De nombreux modules Ansible existent afin de configurer des bases de
|
De nombreux modules Ansible existent afin de configurer des bases de
|
||||||
données. Malheureusement, InfluxDB étant encore relativement récente, aucun
|
données. Malheureusement, InfluxDB étant encore relativement récente, aucun
|
||||||
module n'était disponible. Pour nos besoins, nous avons donc du développer un
|
module n'était disponible. Pour nos besoins, nous avons donc du développer un
|
||||||
@ -338,6 +358,8 @@ bibliothèques, nous évitant ainsi d'avoir des prérequis sur les machines). Un
|
|||||||
demande de fusion de branche a été passé auprès de l'équipe d'Ansible afin de
|
demande de fusion de branche a été passé auprès de l'équipe d'Ansible afin de
|
||||||
permettre l'exécution de programme natifs (précédemment limité aux scripts).
|
permettre l'exécution de programme natifs (précédemment limité aux scripts).
|
||||||
|
|
||||||
|
\vspace{1em}
|
||||||
|
|
||||||
Les premières versions du serveur de jeu utilisaient le programme de
|
Les premières versions du serveur de jeu utilisaient le programme de
|
||||||
compilation `sbt-native-packager`, cela générait les scripts
|
compilation `sbt-native-packager`, cela générait les scripts
|
||||||
d'initialisation. Lors de la mise en place des recettes de déploiement pour
|
d'initialisation. Lors de la mise en place des recettes de déploiement pour
|
||||||
@ -345,6 +367,8 @@ cette version du serveur, nous avons observé un bug dans le script
|
|||||||
d'initialisation à destination des systèmes Debian. Nous avons donc corrigé le
|
d'initialisation à destination des systèmes Debian. Nous avons donc corrigé le
|
||||||
problème et soumis le correctif au mainteneur du la solution.
|
problème et soumis le correctif au mainteneur du la solution.
|
||||||
|
|
||||||
|
\vspace{1em}
|
||||||
|
|
||||||
Un peu plus tard, afin d'enregistrer les actions effectuées par le programme de
|
Un peu plus tard, afin d'enregistrer les actions effectuées par le programme de
|
||||||
déploiement, il a été nécessaire de développer un nouveau module pour Ansible
|
déploiement, il a été nécessaire de développer un nouveau module pour Ansible
|
||||||
afin qu'il enregistrer les actions qu'il fait et les éventuelles erreurs qu'il
|
afin qu'il enregistrer les actions qu'il fait et les éventuelles erreurs qu'il
|
||||||
@ -352,6 +376,8 @@ rencontre. Cela permet d'avoir une traçabilité des déploiements et des mises
|
|||||||
jour effectuées sur l'ensemble du cluster.
|
jour effectuées sur l'ensemble du cluster.
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
## Mise en place d'un processus de livraison du serveur à destination des développeurs du client
|
## Mise en place d'un processus de livraison du serveur à destination des développeurs du client
|
||||||
|
|
||||||
### Objectifs
|
### Objectifs
|
||||||
@ -422,6 +448,8 @@ virtuelles et de leur permettre de contrôler certain aspects préenregistrés
|
|||||||
les journaux du serveurs.
|
les journaux du serveurs.
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
## Conception de l'architecture de test de monté en charge
|
## Conception de l'architecture de test de monté en charge
|
||||||
|
|
||||||
### Objectifs
|
### Objectifs
|
||||||
@ -452,6 +480,8 @@ d'acteurs. La nouvelle monté en charge a permis d'atteindre cette fois plus de
|
|||||||
et il n'en résultat pas de plantage du serveur.
|
et il n'en résultat pas de plantage du serveur.
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
## Intégration de métriques dans le serveur
|
## Intégration de métriques dans le serveur
|
||||||
|
|
||||||
### Objectifs
|
### Objectifs
|
||||||
@ -483,6 +513,8 @@ code du serveur une série de macros envoyant à chaque événement intéressant
|
|||||||
message vers la base de données.
|
message vers la base de données.
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
## Déploiement du site web commercial du jeu
|
## Déploiement du site web commercial du jeu
|
||||||
|
|
||||||
### Objectifs
|
### Objectifs
|
||||||
@ -511,6 +543,9 @@ spécifique afin de répondre à la demande fluctuante, selon des critères
|
|||||||
préétablis. Après ce test, compte-tenu du coût de la solution, il a été décidé
|
préétablis. Après ce test, compte-tenu du coût de la solution, il a été décidé
|
||||||
d'attendre d'en avoir vraiment l'utilité.
|
d'attendre d'en avoir vraiment l'utilité.
|
||||||
|
|
||||||
|
%%fimage(img/siteweb.png, 0.95, "Page d'accueil du site web")
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
## Conception de l'architecture des serveurs
|
## Conception de l'architecture des serveurs
|
||||||
|
|
||||||
|
BIN
report/img/cubism.png
Normal file
BIN
report/img/cubism.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 61 KiB |
BIN
report/img/siteweb.png
Normal file
BIN
report/img/siteweb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 MiB |
Reference in New Issue
Block a user