Spelling
This commit is contained in:
parent
79860abe78
commit
c3946c1308
@ -19,7 +19,7 @@ En tant que *DevOps*, j'ai été amené à concevoir un système répondant aux
|
|||||||
besoins émis par les développeurs d'avoir un serveur de jeu dans des versions
|
besoins émis par les développeurs d'avoir un serveur de jeu dans des versions
|
||||||
différentes en fonction de leur rôle au sein de l'équipe.
|
différentes en fonction de leur rôle au sein de l'équipe.
|
||||||
|
|
||||||
J'ai aussi effectué les tests de monté en charge à la demande de l'équipe en
|
J'ai aussi effectué les tests de montée en charge à la demande de l'équipe en
|
||||||
charge du serveur et ai participé aux réflexions de son développement afin
|
charge du serveur et ai participé aux réflexions de son développement afin
|
||||||
d'intégrer au plus tôt les remarques concernant la mise à l'échelle et la
|
d'intégrer au plus tôt les remarques concernant la mise à l'échelle et la
|
||||||
sécurité.
|
sécurité.
|
||||||
|
@ -19,7 +19,7 @@ tout ce qui gravite autour du serveur de jeu :
|
|||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
D'autre part, j'ai également permis d'éclaircir certain points encore
|
D'autre part, j'ai également permis d'éclaircir certain points encore
|
||||||
obscurs tel que l'authentification, le système de chat ou encore
|
obscurs tels que l'authentification, le système de chat ou encore
|
||||||
l'architecture de déploiement et de mise à jour. Cela sera mis en
|
l'architecture de déploiement et de mise à jour. Cela sera mis en
|
||||||
place lorsque les développeurs seront plus avancés sur ces points.
|
place lorsque les développeurs seront plus avancés sur ces points.
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ place lorsque les développeurs seront plus avancés sur ces points.
|
|||||||
## Intérêt personnel
|
## Intérêt personnel
|
||||||
|
|
||||||
Ce stage m'a permis de découvrir et d'approfondir de nombreux aspects
|
Ce stage m'a permis de découvrir et d'approfondir de nombreux aspects
|
||||||
tel que le déploiement automatique ou la virtualisation légère, qui
|
tels que le déploiement automatique ou la virtualisation légère, qui
|
||||||
sont des domaines porteurs pour l'avenir. En effet, bien que plutôt
|
sont des domaines porteurs pour l'avenir. En effet, bien que plutôt
|
||||||
ancienne dans les environnements Solaris et BSD, l'utilisation des
|
ancienne dans les environnements Solaris et BSD, l'utilisation des
|
||||||
conteneurs est quelque chose d'assez nouveau au sein du noyau Linux et
|
conteneurs est quelque chose d'assez nouveau au sein du noyau Linux et
|
||||||
@ -38,5 +38,5 @@ bibliothèques et technologies libres, et suis ravi d'avoir pu
|
|||||||
contribué au nom de l'entreprise au développement ou à l'amélioration
|
contribué au nom de l'entreprise au développement ou à l'amélioration
|
||||||
de plusieurs projets.
|
de plusieurs projets.
|
||||||
|
|
||||||
Enfin, la diversité du travail effectué durant ce stage fût
|
Enfin, la diversité du travail effectué durant ce stage fut
|
||||||
particulièrement gratifiant.
|
particulièrement gratifiant.
|
||||||
|
@ -33,7 +33,7 @@ Informatique en nuage
|
|||||||
Journaux
|
Journaux
|
||||||
|
|
||||||
: Liste d'événements survenus au sein d'un programme. En général on
|
: Liste d'événements survenus au sein d'un programme. En général on
|
||||||
distingue plusieurs niveau d'enregistrement en fonction de
|
distingue plusieurs niveaux d'enregistrement en fonction de
|
||||||
l'utilisation faite du programme : par exemple, en production, on
|
l'utilisation faite du programme : par exemple, en production, on
|
||||||
ne va enregistrer que les erreurs, tandis que dans un
|
ne va enregistrer que les erreurs, tandis que dans un
|
||||||
environnement de développement, on va enregistrer les
|
environnement de développement, on va enregistrer les
|
||||||
@ -47,7 +47,7 @@ Load-balancer
|
|||||||
|
|
||||||
Machine virtuelle
|
Machine virtuelle
|
||||||
|
|
||||||
: Simulation complète d'une machine physique effectué par un programme de
|
: Simulation complète d'une machine physique effectuée par un programme de
|
||||||
virtualisation (hyperviseur ou émulateur) dans le but de tester un système
|
virtualisation (hyperviseur ou émulateur) dans le but de tester un système
|
||||||
ou pour isoler l'exécution de programmes.
|
ou pour isoler l'exécution de programmes.
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
## Présentation de l'entreprise
|
## Présentation de l'entreprise
|
||||||
|
|
||||||
Novaquark est un studio de jeux vidéo créé en janvier 2014 par Jean-Christophe
|
Novaquark est un studio de jeux vidéo créé en janvier 2014 par Jean-Christophe
|
||||||
\textsc{Baillie}. Il avait précédemment monté la start-up de robotique Gostai,
|
\textsc{Baillie}. Il avait précédemment montée la start-up de robotique Gostai,
|
||||||
rachetée par Aldebaran en 2012.
|
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
|
||||||
@ -74,7 +74,7 @@ nombre de *recettes*. Les premières *recettes* concernaient le déploiement des
|
|||||||
machines de monitoring.
|
machines de monitoring.
|
||||||
|
|
||||||
Par la suite, lorsque le serveur a été suffisamment fonctionnel, j'ai eu à
|
Par la suite, lorsque le serveur a été suffisamment fonctionnel, j'ai eu à
|
||||||
concevoir le système de test de monté en charge.
|
concevoir le système de test de montée en charge.
|
||||||
|
|
||||||
De nombreuses tâches annexes m'ont également été attribuées tout au long du
|
De nombreuses tâches annexes m'ont également été attribuées tout au long du
|
||||||
stage en particulier pour connaître mon avis d'administrateur système quant à
|
stage en particulier pour connaître mon avis d'administrateur système quant à
|
||||||
|
@ -15,17 +15,17 @@ résultats ainsi que leur critique.
|
|||||||
### Montée en compétences
|
### Montée en compétences
|
||||||
|
|
||||||
Une fois les outils sélectionnés suivants les critères établis au travers de
|
Une fois les outils sélectionnés suivants les critères établis au travers de
|
||||||
l'étape précédente, il a fallu monté en compétence sur ceux-ci.
|
l'étape précédente, il a fallu montée en compétence sur ceux-ci.
|
||||||
|
|
||||||
### Développements et tests de monté en charge
|
### Développements et tests de montée en charge
|
||||||
|
|
||||||
À la suite de cet apprentissage, j'ai effectués des tests afin de valider les
|
À la suite de cet apprentissage, j'ai effectué des tests afin de valider les
|
||||||
choix qui avaient été fait, afin d'en tirer les conclusions.
|
choix qui avaient été faits, afin d'en tirer les conclusions.
|
||||||
|
|
||||||
|
|
||||||
## Respect des délais et critique de ce découpage
|
## Respect des délais et critique de ce découpage
|
||||||
|
|
||||||
À de nombreuses reprises, le planning initialement prévu n'a pas pu être
|
À de nombreuses reprises, le planning initialement prévu n'a pu être
|
||||||
respecté afin de faire face aux besoins qui se sont matérialisés à divers
|
respecté afin de faire face aux besoins qui se sont matérialisés à divers
|
||||||
moments. Ainsi, les parties concernant l'intégration de données métriques
|
moments. Ainsi, les parties concernant l'intégration de données métriques
|
||||||
dans le serveur, utile dans le long terme, a été repoussé afin de se concentrer
|
dans le serveur, utile dans le long terme, a été repoussé afin de se concentrer
|
||||||
@ -34,7 +34,7 @@ serveur de jeu aux développeurs du client.
|
|||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
Je n'ai pas de critique à formuler quant à ce découpage, somme tout très
|
Je n'ai pas de critique à formuler quant à ce découpage, somme toute très
|
||||||
classique. Avec les objectifs globaux fixés par l'équipe, j'ai pu m'organiser
|
classique. Avec les objectifs globaux fixés par l'équipe, j'ai pu m'organiser
|
||||||
de telle sorte que chaque étape coïncide avec les besoins de chacun.
|
de telle sorte que chaque étape coïncide avec les besoins de chacun.
|
||||||
|
|
||||||
@ -44,14 +44,14 @@ de telle sorte que chaque étape coïncide avec les besoins de chacun.
|
|||||||
Le développement du jeu suit une méthodologie agile : cela a commencé par
|
Le développement du jeu suit une méthodologie agile : cela a commencé par
|
||||||
Kaban, pour arriver aujourd'hui à Scrum.
|
Kaban, pour arriver aujourd'hui à Scrum.
|
||||||
|
|
||||||
Deux fois par semaines, toute l'équipe fait le point sur l'avancée de
|
Deux fois par semaine, toute l'équipe fait le point sur l'avancée de
|
||||||
chacun. C'est l'occasion de recentrer les priorités.
|
chacun. C'est l'occasion de recentrer les priorités.
|
||||||
|
|
||||||
Tous les jours, nous sommes tenu d'envoyer un petit compte-rendu de nos
|
Tous les jours, nous sommes tenus d'envoyer un petit compte-rendu de nos
|
||||||
activités de la journée, en n'oubliant pas d'indiquer les difficultés que l'on
|
activités de la journée, en n'oubliant pas d'indiquer les difficultés que l'on
|
||||||
peut rencontrer. En fonction de la difficulté, un membre de l'équipe peut être
|
peut rencontrer. En fonction de la difficulté, un membre de l'équipe peut être
|
||||||
amené à donner son avis sur le problème s'il l'a déjà rencontré par le passé.
|
amené à donner son avis sur le problème s'il l'a déjà rencontré par le passé.
|
||||||
|
|
||||||
Le soir est toujours une bonne occasion de discuter avec mon maître de stage :
|
Le soir est toujours une bonne occasion de discuter avec mon maître de stage :
|
||||||
que ce soit pour se tenir mutuellement informé de nos activités ou pour faire
|
que ce soit pour se tenir mutuellement informés de nos activités ou pour faire
|
||||||
des points sur les développements à venir.
|
le point sur les développements à venir.
|
||||||
|
@ -6,7 +6,7 @@ Les serveurs du jeu seront regroupés au sein d'une structure permettant
|
|||||||
facilement d'adapter leur nombre en fonction du besoin (fortement en
|
facilement d'adapter leur nombre en fonction du besoin (fortement en
|
||||||
corrélation avec le nombre de joueurs inscrits et connectés).
|
corrélation avec le nombre de joueurs inscrits et connectés).
|
||||||
|
|
||||||
Depuis quelques années, un grand nombre de plate-forme se développent,
|
Depuis quelques années, un grand nombre de plates-forme se développent,
|
||||||
fournissant un service clef en main ; mais des solutions libres sont également
|
fournissant un service clef en main ; mais des solutions libres sont également
|
||||||
disponibles lorsque l'on désire s'occuper du service manuellement.
|
disponibles lorsque l'on désire s'occuper du service manuellement.
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ dans le cadre de cette analyse.
|
|||||||
|
|
||||||
### Discussions complémentaires
|
### Discussions complémentaires
|
||||||
|
|
||||||
Organisé par l'incubateur à destination des start-up intéressées, une
|
Organisée par l'incubateur à destination des start-up intéressées, une
|
||||||
journée nous a permis de discuter avec des architectes d'Amazon afin
|
journée nous a permis de discuter avec des architectes d'Amazon afin
|
||||||
de connaître leur avis sur la structure que nous envisagions et
|
de connaître leur avis sur la structure que nous envisagions et
|
||||||
comment cela pourrait s'intégrer au sein de l'offre d'Amazon.
|
comment cela pourrait s'intégrer au sein de l'offre d'Amazon.
|
||||||
@ -130,7 +130,7 @@ plusieurs machines virtuelles d'une même machine physique, dédiée aux tests.
|
|||||||
|
|
||||||
Pour les développeurs, l'installation de l'environnement de développement n'est
|
Pour les développeurs, l'installation de l'environnement de développement n'est
|
||||||
pas toujours facile (surtout s'ils doivent alterner entre deux systèmes
|
pas toujours facile (surtout s'ils doivent alterner entre deux systèmes
|
||||||
d'exploitation différent) et requiert une certaine standardisation (version
|
d'exploitation différent) et requiert une certaine standardisation (versions
|
||||||
précises de certaine bibliothèques, paquet particulier). La virtualisation
|
précises de certaine bibliothèques, paquet particulier). La virtualisation
|
||||||
permet de leur fournir un environnement clef en main qu'ils n'ont pas à
|
permet de leur fournir un environnement clef en main qu'ils n'ont pas à
|
||||||
maintenir.
|
maintenir.
|
||||||
@ -160,7 +160,7 @@ car le logiciel Boot2Docker s'intègre uniquement à cette solution.
|
|||||||
Globalement, les technologies de virtualisation de type hyperviseur n'ont plus
|
Globalement, les technologies de virtualisation de type hyperviseur n'ont plus
|
||||||
guère d'avantages face aux conteneurs : ils permettent de garantir un niveau de
|
guère d'avantages face aux conteneurs : ils permettent de garantir un niveau de
|
||||||
sécurité et d'isolation quasi-identique, sans avoir la lourdeur de gestion
|
sécurité et d'isolation quasi-identique, sans avoir la lourdeur de gestion
|
||||||
d'autant de noyau que l'on veut lancer de machines.
|
d'autant de noyaux que l'on veut lancer de machines.
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
@ -224,13 +224,13 @@ permettra de contrôler l'accès aux différents services du jeu :
|
|||||||
|
|
||||||
L'implémentation d'une solution maison est encore une fois
|
L'implémentation d'une solution maison est encore une fois
|
||||||
envisageable. Elle n'a pas été retenue pour éviter d'avoir à gérer les
|
envisageable. Elle n'a pas été retenue pour éviter d'avoir à gérer les
|
||||||
vulnérabilités qui pourraient être découverte une fois le jeu lancé.
|
vulnérabilités qui pourraient être découvertes une fois le jeu lancé.
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
D'autre part, étant donné que plusieurs services devront pouvoir
|
D'autre part, étant donné que plusieurs services devront pouvoir
|
||||||
s'authentifier en un point central, cela évite de fournir un travail
|
s'authentifier en un point central, cela évite de fournir un travail
|
||||||
pour rendre compatible avec une solution maison les logiciels
|
pour rendre compatibles avec une solution maison les logiciels
|
||||||
compatibles avec des solutions d'authentification standards.
|
compatibles avec des solutions d'authentification standards.
|
||||||
|
|
||||||
### Propositions retenues
|
### Propositions retenues
|
||||||
@ -301,7 +301,7 @@ pour y faire des améliorations.
|
|||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
En sus de ce programme de relevé de métrique, il m'a été demandé de réaliser un
|
En sus de ce programme de relevé de métrique, il m'a été demandé de réaliser un
|
||||||
tableau de board permettant de visualiser en temps réel les données
|
tableau de bord permettant de visualiser en temps réel les données
|
||||||
compilées. Le premier tableau de bord a été réalisé directement avec le serveur
|
compilées. Le premier tableau de bord a été réalisé directement avec le serveur
|
||||||
web de la base de données allié à la bibliothèque JavaScript *Cubism* (voir
|
web de la base de données allié à la bibliothèque JavaScript *Cubism* (voir
|
||||||
figure \ref{fig:img/cubism.png}) : il permet de visualiser en un coup d'oeil
|
figure \ref{fig:img/cubism.png}) : il permet de visualiser en un coup d'oeil
|
||||||
@ -335,19 +335,19 @@ Les recettes qu'il a été nécessaire de développer sont les suivantes :
|
|||||||
- **serveur de monitoring :** chaque serveur déployé assure son rôle grâce à la
|
- **serveur de monitoring :** chaque serveur déployé assure son rôle grâce à la
|
||||||
mise à disposition d'une base de données InfluxDB et à des outils permettant
|
mise à disposition d'une base de données InfluxDB et à des outils permettant
|
||||||
de visualiser la charge. Afin de toujours connaître l'état en temps réel
|
de visualiser la charge. Afin de toujours connaître l'état en temps réel
|
||||||
l'état des serveurs de jeu, chaque serveur configuré est inclus au sein d'un
|
des serveurs de jeu, chaque serveur configuré est inclus au sein d'un
|
||||||
cluster de haute-disponibilité.
|
cluster de haute-disponibilité.
|
||||||
- **serveurs de base de données :** pour l'instant un seul type de base de
|
- **serveurs de base de données :** pour l'instant un seul type de base de
|
||||||
données est utilisé : Redis. La recette doit permettre de déployer un serveur
|
données est utilisé : Redis. La recette doit permettre de déployer un serveur
|
||||||
au sein d'un cluster Redis. À terme, un second type de base de données devra
|
au sein d'un cluster Redis. À terme, un second type de base de données devra
|
||||||
être déployée afin de disposer de stockage permanent.
|
être déployé afin de disposer de stockage permanent.
|
||||||
- **serveurs de jeu :** le serveur étant décomposé en trois parties, trois
|
- **serveurs de jeu :** le serveur étant décomposé en trois parties, trois
|
||||||
recettes différentes sont nécessaires, en fonction du type de serveur que
|
recettes différentes sont nécessaires, en fonction du type de serveur que
|
||||||
l'on veut déployé.
|
l'on veut déployé.
|
||||||
- **machine virtuelle de développement :** ces machines mises à disposition des
|
- **machine virtuelle de développement :** ces machines mises à disposition des
|
||||||
développeurs doivent leur permettre de tester le jeu avec un serveur qui leur
|
développeurs doivent leur permettre de tester le jeu avec un serveur qui leur
|
||||||
est fournis grâce à cette machine virtuelle. Elle contient tous les
|
est fournis grâce à ces machines virtuelles. Elles contiennent tous les
|
||||||
composants nécessaire au bon fonctionnement du serveur.
|
composants nécessaires au bon fonctionnement du serveur.
|
||||||
- **serveur de machines virtuelles :** il s'agit de configurer un serveur
|
- **serveur de machines virtuelles :** il s'agit de configurer un serveur
|
||||||
fraîchement arrivé pour lui permettre d'exécuter des conteneurs (serveur de
|
fraîchement arrivé pour lui permettre d'exécuter des conteneurs (serveur de
|
||||||
jeu, site web, etc.).
|
jeu, site web, etc.).
|
||||||
@ -368,7 +368,7 @@ permettant de prévenir diverses attaques comme le DNS et l'ARP-poisoning).
|
|||||||
|
|
||||||
Certaines machines disposeront de deux interfaces réseau : une publique et une
|
Certaines machines disposeront de deux interfaces réseau : une publique et une
|
||||||
privée. Un plugin pour Ansible a donc été développé afin de gérer la présence
|
privée. 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 automatiquement 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}
|
\vspace{1em}
|
||||||
@ -422,7 +422,7 @@ jeu global (lorsqu'il est question de faire des tests à plusieurs).
|
|||||||
|
|
||||||
Le temps passé au développement est primordial comparé au temps passé à tenter
|
Le temps passé au développement est primordial comparé au temps passé à tenter
|
||||||
de configurer l'environnement à partir de la documentation. Une solution clef
|
de configurer l'environnement à partir de la documentation. Une solution clef
|
||||||
en main où le moins de connaissances préalables sont nécessaire est un plus.
|
en main où le moins de connaissances préalables nécessaires est un plus.
|
||||||
|
|
||||||
### Propositions retenues
|
### Propositions retenues
|
||||||
|
|
||||||
@ -434,7 +434,7 @@ Pour la mise en place de ce processus, il a été retenu la mise à disposition
|
|||||||
* de conteneurs associés à des scripts d'automatisation ;
|
* de conteneurs associés à des scripts d'automatisation ;
|
||||||
* d'un conteneur sur une machine dédiée : l'équipe serveur s'occupe de mettre
|
* d'un conteneur sur une machine dédiée : l'équipe serveur s'occupe de mettre
|
||||||
en place les conteneurs en fonction des besoins de chacun, sans avoir à gérer
|
en place les conteneurs en fonction des besoins de chacun, sans avoir à gérer
|
||||||
les problèmes lié à la configuration personnelle des machines de chacun.
|
les problèmes liés à la configuration personnelle des machines de chacun.
|
||||||
|
|
||||||
### Difficultés
|
### Difficultés
|
||||||
|
|
||||||
@ -448,8 +448,8 @@ et centraliser les principales actions.
|
|||||||
|
|
||||||
%%fimage(img/ncurses-dev.png, 0.67, "Interface Curses de contrôle du serveur")
|
%%fimage(img/ncurses-dev.png, 0.67, "Interface Curses de contrôle du serveur")
|
||||||
|
|
||||||
Dans un soucis d'harmonisation des technologies, Docker a été retenu dans un
|
Dans un souci d'harmonisation des technologies, Docker a été retenu dans un
|
||||||
second temps pour répondre également aux problématiques de déploiement futurs.
|
second temps pour répondre également aux problématiques de déploiements futurs.
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
@ -480,7 +480,7 @@ les journaux du serveurs.
|
|||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
## Conception de l'architecture de test de monté en charge
|
## Conception de l'architecture de test de montée en charge
|
||||||
|
|
||||||
### Objectifs
|
### Objectifs
|
||||||
|
|
||||||
@ -498,14 +498,14 @@ machines virtuelles exécutant chacune plusieurs clients.
|
|||||||
|
|
||||||
### Résultats obtenus
|
### Résultats obtenus
|
||||||
|
|
||||||
Dans un premier temps, la monté en charge montrait que le serveur ne permettait
|
Dans un premier temps, la montée en charge montrait que le serveur ne permettait
|
||||||
pas de dépasser 250 joueurs. Au delà, l'analyse qui s'en est suivie a montré
|
pas de dépasser 250 joueurs. Au delà, l'analyse qui s'en est suivie a montré
|
||||||
que le scheduler de la bibliothèque d'acteurs que nous utilisions ne faisais
|
que le scheduler de la bibliothèque d'acteurs que nous utilisions ne faisais
|
||||||
pas correctement son travail : il en résultait une surcharge des canaux de
|
pas correctement son travail : il en résultait une surcharge des canaux de
|
||||||
diffusion, entraînant le plantage du serveur.
|
diffusion, entraînant le plantage du serveur.
|
||||||
|
|
||||||
Ce problème a été corrigé dans la version suivante de la bibliothèque
|
Ce problème a été corrigé dans la version suivante de la bibliothèque
|
||||||
d'acteurs. La nouvelle monté en charge a permis d'atteindre cette fois plus de
|
d'acteurs. La nouvelle montée en charge a permis d'atteindre cette fois plus de
|
||||||
800 joueurs simultanément, à ce moment, c'était bien le CPU qui était limitant
|
800 joueurs simultanément, à ce moment, c'était bien le CPU qui était limitant
|
||||||
et il n'en résultat pas de plantage du serveur.
|
et il n'en résultat pas de plantage du serveur.
|
||||||
|
|
||||||
@ -550,7 +550,7 @@ message vers la base de données.
|
|||||||
### Objectifs
|
### Objectifs
|
||||||
|
|
||||||
Précédemment hébergé auprès d'une société d'hébergement mutualisé permettant de
|
Précédemment hébergé auprès d'une société d'hébergement mutualisé permettant de
|
||||||
modifier facilement de contenu du site ; nous avons été contraint de le refaire
|
modifier facilement le contenu du site ; nous avons été contraint de le refaire
|
||||||
et de l'héberger nous-même afin de pouvoir l'adapter plus facilement à nos
|
et de l'héberger nous-même afin de pouvoir l'adapter plus facilement à nos
|
||||||
besoins.
|
besoins.
|
||||||
|
|
||||||
@ -563,7 +563,7 @@ trouve).
|
|||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
Le serveur web `nginx` est utilisé, allié au service `php-fpm`. Tous deux ont
|
Le serveur web `nginx` est utilisé, allié au service `php-fpm`. Tous deux ont
|
||||||
été configurés afin de permettre à un millier d'utilisateur de visionner le
|
été configurés afin de permettre à un millier d'utilisateurs de visionner le
|
||||||
site en même temps.
|
site en même temps.
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
@ -597,13 +597,13 @@ d'un conteneur préalablement, de l'envoyer sur un dépôt d'images (contenant
|
|||||||
toutes les dernières versions des conteneurs). Ensuite, progressivement, on
|
toutes les dernières versions des conteneurs). Ensuite, progressivement, on
|
||||||
coupe les serveurs de jeu, puis on lance la nouvelle image. En cas de problème
|
coupe les serveurs de jeu, puis on lance la nouvelle image. En cas de problème
|
||||||
lors du déploiement, l'ancienne image persiste sur les serveurs jusqu'à ce que
|
lors du déploiement, l'ancienne image persiste sur les serveurs jusqu'à ce que
|
||||||
l'on lance un nettoyage. Cela permet de relancer la version stable précédent
|
l'on lance un nettoyage. Cela permet de relancer la version stable précédente
|
||||||
très rapidement en cas de problème.
|
très rapidement en cas de problème.
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
Précédemment, il était plutôt question d'effectuer un déploiement plus
|
Précédemment, il était plutôt question d'effectuer un déploiement plus
|
||||||
classique : une recette Ansible aurait éteint un petit groupe de serveur, puis
|
classique : une recette Ansible aurait éteint un petit groupe de serveurs, puis
|
||||||
aurait procédé à la migration avant de relancer le nouveau serveur.
|
aurait procédé à la migration avant de relancer le nouveau serveur.
|
||||||
|
|
||||||
Les serveurs sont mis à jour progressivement ; en cas de problème durant la
|
Les serveurs sont mis à jour progressivement ; en cas de problème durant la
|
||||||
|
Reference in New Issue
Block a user