Projet Docker 2024-1
Projet Docker 2024-1
Projet Docker 2024-1
Présentation du Projet :
En ingénierie informatique il existe une approche appelé DevOps, qui vise à réduire la friction entre les
équipes de développement (Devs) et les équipes opérationnelles en charge de la maintenance des serveurs (Ops).
Partant de cette approche une entreprise de services du numérique souhaite concevoir un environnement de dé-
veloppement basé sur le model DevOps afin d’avoir un environnement commun à tous les développeurs, d’unifier
son équipe ainsi que les différents outils et technologies de l’entreprise ce qui va leur permettre de produire des
logiciels conforme aux attentes et exigences des clients de même de réduire toute perte de temps lié aux problèmes
de compatibilités matériels et logiciels.
1
Outils à votre disposition :
Pour aider l’entreprise à concevoir un environnement de développement basé sur le model DevOps une plate-
forme logicielle appelée DOCKER est mis à votre disposition. Docker est l’outil de prédilection par excellence du
DevOps. Docker adopte les mêmes pratiques que DevOps, d’un côté les développeurs peuvent créer des images à
partir d’un Dockerfile et les envoient dans le Hub/DTR, de l’autre côté les ops peuvent récupérer des images de-
puis le Hub/DTR ou même effectuer des opérations comme exécuter, Composer, Configurer (réseaux, volumes,)
et Superviser les images.
Les différentes briques de l’environnement de développement :
L’entreprise étant spécialisée dans le développement d’application web les différents membres de l’équipe ont
porté leurs choix sur les outils et technologies ci-dessous
1. Apache + PHP
L’entreprise a choisi Apache qui est le serveur web le plus utilisé en effet plus de 67% des serveurs
internet utilise apache. Il sera muni d’un interpréteur PHP intégré.
2. Nginx + PHP-FPM
L’environnement de développement ne doit pas contenir uniquement un serveur web l’entreprise a
aussi besoin de NGINX qui propose une architecture hautement évolutive très différente de celle d’Apache.
PHP-FPM permet à un site Web de gérer des charges élevées grâce à son module FastCGI.
3. Mysql
Concernant le système de gestion de bases de données relationnelles le choix est porté sur MySQL qui
est un système de gestion de bases de données relationnelles basé sur SQL - Structured Query Language.
4. Composer
Un environnement de développement doit disposer d’un gestionnaire de dépendances pour PHP qui va
permet d’ajouter et de gérer des bibliothèques de scripts et des packages en tant que dépendances afin de
réduire le temps de développement.
5. Mailtrap
Pour pouvoir simuler un service de messagerie classique l’environnement de développement va utili-
ser Mailtrap est un faux serveur SMTP permettant aux équipes de développement de tester, visualiser et
partager les e-mails envoyés depuis les environnements de développement et de mise en scène sans spam.
6. Phpmyadmin
Une interface graphique pratique pour travailler avec le système de gestion de base de données MySQL
est nécessaire et le choix est porté sur phpMyAdmin. C’est l’outil d’administration MySQL le plus utilisé
dans le monde.
2
4. Sauvegarder l’environnement de développement dans le Docker Hub. Vous devez créer un compte et «
pusher » l’environnement de développement conçu.
5. Maintenant que vous avez configuré votre environnement avec Docker Compose, la prochaine étape
consiste à explorer Docker Swarm pour une gestion avancée des conteneurs.
(a) Commencer par Initialiser votre Swarm afin de pouvoir orchestrer les conteneurs de manière plus
efficace et à grande échelle.
(b) Il Faut adapter la configuration actuelle de l’environnement de développement pour qu’elle soit com-
patible avec Swarm.
(c) L’environnement de développement doit être déployer en tant que stack dans Swarm ce qui va per-
mettre de gérer l’ensemble des infrastructures en une unité facilitant ainsi le déploiement, la mise à
jour, et la scalabilité.
(d) La dernière étape consiste à surveiller et ajuster l’environnement développement en assurant que les
services seront toujours disponibles et fonctionneront efficacement.
IMPORTANT :
Rendre un rapport écrit en LaTex (fichier .tex et PDF a rendre) incluant tous les scripts, codes et captures
nécessaire pour illustrer le travail effectué : un dossier zip contenant tout (scripts, codes, captures sources latex et
fichier PDF) doit être déposé.