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
|
||||
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
|
||||
|
||||
@ -26,7 +26,7 @@ partageant des idées innovantes de \Dual :
|
||||
jeu Eve Online (plus de 500000 joueurs), tout en permettant aux joueurs
|
||||
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
|
||||
|
||||
@ -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
|
||||
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é
|
||||
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
|
||||
|
||||
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 ;
|
||||
* 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é
|
||||
dans le cadre de cette analyse.
|
||||
|
||||
\newpage
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
\newpage
|
||||
|
||||
## Analyse des solutions de virtualisation
|
||||
|
||||
### 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.
|
||||
|
||||
|
||||
\newpage
|
||||
|
||||
## Recherche d'une solution de gestion de chat ingame
|
||||
|
||||
### Objectifs
|
||||
@ -184,6 +189,8 @@ transparente, comparé aux autres implémentations et des autres
|
||||
protocoles.
|
||||
|
||||
|
||||
\newpage
|
||||
|
||||
## Recherche d'une solution de gestion de l'authentification
|
||||
|
||||
### Objectifs
|
||||
@ -233,6 +240,8 @@ l'échange de tickets permet de s'affranchir de trop nombreuses
|
||||
authentifications.
|
||||
|
||||
|
||||
\newpage
|
||||
|
||||
## Conception d'un programme de relevé de métriques système
|
||||
|
||||
### 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
|
||||
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
|
||||
|
||||
@ -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
|
||||
superviser les serveurs connus au moment de sa construction.
|
||||
|
||||
\vspace{1em}
|
||||
|
||||
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
|
||||
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).
|
||||
|
||||
\vspace{1em}
|
||||
|
||||
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
|
||||
de ces deux cartes, permettant d'adapter automatique les configurations des
|
||||
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
|
||||
données. Malheureusement, InfluxDB étant encore relativement récente, aucun
|
||||
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
|
||||
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
|
||||
compilation `sbt-native-packager`, cela générait les scripts
|
||||
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
|
||||
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
|
||||
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
|
||||
@ -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.
|
||||
|
||||
|
||||
\newpage
|
||||
|
||||
## Mise en place d'un processus de livraison du serveur à destination des développeurs du client
|
||||
|
||||
### Objectifs
|
||||
@ -422,6 +448,8 @@ virtuelles et de leur permettre de contrôler certain aspects préenregistrés
|
||||
les journaux du serveurs.
|
||||
|
||||
|
||||
\newpage
|
||||
|
||||
## Conception de l'architecture de test de monté en charge
|
||||
|
||||
### 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.
|
||||
|
||||
|
||||
\newpage
|
||||
|
||||
## Intégration de métriques dans le serveur
|
||||
|
||||
### 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.
|
||||
|
||||
|
||||
\newpage
|
||||
|
||||
## Déploiement du site web commercial du jeu
|
||||
|
||||
### 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é
|
||||
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
|
||||
|
||||
|
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