Laboratoires
Application conteneurisée
Trois laboratoires Docker et une expérimentation pour emballer le site de Cornucopia, la ferme maraßchÚre bio de Flora et Hazel, du serveur artisanal à l'essaim.
420-5A4-MT · Individuel · Examen pratique semaine 5Flora & Hazel emballent leur ferme bio (Cornucopia)
Le site WordPress de Cornucopia, la ferme maraßchÚre bio de Flora et Hazel, gÚre les abonnements aux paniers de légumes de saison. Mais l'application vit sans armure sur la machine : fragile, vulnérable aux attaques web, impossible à déplacer ou à cloner. Pendant que les abonnés se multiplient et que les incidents guettent, l'agence de Flora (c'est vous !) pose les techniques fondatrices du métier : emballer l'application dans des conteneurs Docker, la décrire dans une partition Compose, puis l'orchestrer dans un essaim Swarm, au fur et à mesure que les besoins augmentent et que la situation le requiert.
La mĂȘme application traverse trois dĂ©ploiements, de plus en plus solides. Ă chaque Ă©tape, la mĂȘme preuve vivante : votre WordPress rĂ©pond dans le navigateur de la machine hĂŽte, avec un article illustrĂ© publiĂ© dedans.
La mĂȘme application, trois dĂ©ploiements
WordPress et MySQL ensemble dans une boĂźte LAMP.
Semaine 2 · 5 points.
La partition Docker Compose : HTTP et MySQL
séparés.
Semaine 3 · 10 points.
WordPress répliqué sur un Docker Swarm
de 5 noeuds.
Semaine 4 · 10 points.
L'expérimentation : une prison à la main,
sans Docker.
1 point bonus.
Note : L'énoncé de tout le projet est composé des énoncés de chacun de ces 3 laboratoires.
En cas de conflit entre la version « une page » et celle-ci, la version des diapositives prévaut.
Vos instances, votre choix d'infrastructure
Chaque noeud est une instance. Vous choisissez l'infra, au lieu que VirtualBox soit imposé :
De vrais serveurs Ă l'heure (Linode), mĂȘme rĂ©gion, clĂ©s SSH, pare-feu (2377, 7946, 4789 entre noeuds). Le plus authentique.
La référence : cloner UbuntuServerAlpha en DockerAlpha (2 Go, 12 Go). Hors ligne, gratuit, plan d'adressage historique.
Docker dans Docker : léger, rapide, hors ligne. Idéal si votre poste manque de mémoire pour 5 machines virtuelles.
- Le projet est identique dans les trois cas : l'orchestrateur se moque de l'infra.
- Selon le tableau de comparaison des infrastructures, nommez dans le README.md deux conséquences concrÚtes de votre choix (une contrainte que vous acceptez, un avantage que vous gagnez).
Environnement informatique
- Toutes les activités se réalisent avec votre propre ordinateur Linux : Kubuntu 24.04 ou Debian 12 avec KDE.
- Les outils suivants doivent ĂȘtre installĂ©s : un navigateur (Chrome, Brave ou Firefox), Konsole et Dolphin.
- Chaque étudiante dispose d'un compte Linode (ou OVH ou Hetzner) en rÚgle pour le déploiement.
- Le noyau Linux 6.17 doit ĂȘtre en markhold. C'est le noyau 6.14 qui est obligatoire pour le projet (jusqu'Ă indication contraire) et la commande de mise Ă jour (
sudo apt update && sudo apt upgrade) doit passer sans erreur ni forcer l'installation du nouveau noyau.
- La VM de référence : UbuntuServerAlpha, clonée en DockerAlpha (2 Go de mémoire, 12 Go de disque).
- Clonage permis pour sauver du temps : nouvelle adresse MAC, nouveau nom d'hĂŽte, nouvelle adresse IP.
Le processus de travail
- Le travail se réalise en laboratoire présentiel. Le laboratoire sert exclusivement aux activités du cours (pas d'autres devoirs ou activités pendant ces séances). Toute autre activité doit se faire à l'extérieur du local.
- La majorité du laboratoire se réalise dans la séance de 4h, environ 80% du travail.
- Si tu es bloqué(e) ou en difficulté, tu dois demander de l'aide PENDANT la séance du bon laboratoire.
- Tu as ensuite 7 jours pour finaliser ta remise.
- Chaque étudiant remet une solution originale, différente de celles des autres étudiants, qu'il maßtrise.
- Utilisation de l'IA en chatbot web est permise mais l'étudiant doit rédiger ses propres scripts.
Remise et Examen pratique
La remise
- Remise individuelle, incrémentale, d'une solution originale (différente des autres).
- 7 jours au maximum pour finaliser la remise de chaque labo, AVANT le labo suivant.
- L'examen pratique est obligatoire pour recevoir une note.
L'examen pratique
- Les instances sont fonctionnelles AVANT l'examen pratique.
- Chaque ligne devra pouvoir ĂȘtre expliquĂ©e sur demande.
- Des modifications seront demandées au moment de l'examen pratique.
Utilisation de l'IA
Bonne utilisation
- Demander des explications sur les concepts du cours.
- Demander des exemples de scripts similaires.
- Demander des explications d'exemples typiques.
- Copier-coller à l'IA des messages d'erreur pour aider à résoudre des problÚmes.
Mauvaise utilisation
- Copier-coller de grandes sections de script dans
son travail et tenter de l'utiliser tel quel.
La bonne méthode : vous pouvez copier une seule ligne de configuration à la fois fournie par une IA, la tester, et faire un commit de chaque ligne.
Signes que tu utilises mal l'IA
- Ne pas participer au laboratoire ou faire autre chose pendant le labo.
- Absences aux laboratoires et vouloir faire les travaux Ă la maison.
- Refus ou incapacité de subir l'examen pratique.
Architecture de remise
Votre dépÎt Git doit respecter scrupuleusement l'arborescence suivante :
- Les 3 dossiers docker/, compose/, et swarm/ correspondent aux laboratoires.
- Un fichier README.md est exigé dans chaque dossier, avec les fichiers qui décrivent le laboratoire : Dockerfile pour docker/, docker-compose.yml pour compose/, les deux piles traefik.yml et wordpress-sticky.yml pour swarm/.
- Le README.md à la racine sert de présentation globale.
Laboratoire 1 · Semaine 2 · 5 points
WordPress et MySQL sur un seul conteneur
Une instance selon votre choix d'infrastructure - VPS infonuagique (le plus authentique), VM VirtualBox ou conteneur DinD - avec 2 Go de mĂ©moire et 12 Go de disque, oĂč la boutique de Cornucopia renaĂźt dans une image LAMP maison, construite depuis l'image officielle PHP. Quatre Ă©tapes : diaporama du laboratoire et son guide pas-Ă -pas.
- SERVEUR : l'image LAMP maison se construit, une page web du conteneur s'ouvre depuis la machine hĂŽte (1 point)
- SITE : la boutique de Cornucopia est redéployée, tableau de bord et Adminer accessibles (2 points)
- LIEN : un article ajouté survit à la destruction et à la recréation du conteneur (1 point)
- CHARGE : rapport JMeter contre le conteneur, tableau 10 s / 60 s du guide rempli (1 point)
Un seul conteneur : l'architecture Ă monter
Laboratoire 2 · Semaine 3 · 10 points
WordPress avec un conteneur par service
Un service HTTP et un service MySQL décrits dans un docker-compose.yml (ports 8082, phpMyAdmin en 8083, répertoires partagés, réseau).
- Installation de Docker Compose (1 point)
- Répertoire de configuration (1 point)
- Configuration de Compose pour WordPress (1 point)
- Exécution avec Compose (1 point)
- AccĂšs depuis la machine hĂŽte (1 point)
- Article et illustration ajoutés (4 points)
- ArrĂȘt, redĂ©marrage, l'article illustrĂ© survit (1 point)
Un conteneur par service : l'architecture Ă monter
Laboratoire 3 · Semaine 4 · 10 points
WordPress sur un Docker Swarm
Cinq noeuds selon votre infrastructure (swarm-node01 à 05; référence : 192.168.56.10 à .50). Cluster init et join, réseau overlay, proxy inverse Traefik, WordPress répliqué, visualiseur.
- 1 conteneur Traefik au visualiseur (2 points)
- 3 conteneurs WordPress (2 points)
- 1 conteneur MySQL (2 points)
- 1 conteneur Visualiseur (2 points)
- Article avec image affiché dans le navigateur (2 points)
Respectez le tutoriel à la lettre, surtout l'adressage. Premier déploiement long : les images se téléchargent sur chaque noeud.
WordPress sur un Docker Swarm : l'architecture Ă monter
Conteneurs from scratch
- Un laboratoire d'expérimentation dÚs la semaine 1, avant Docker : la présence en classe sur la période de 4 heures est évaluée, le fonctionnement final est souhaitable mais pas nécessaire.
- Monter un conteneur à la main (prison chroot, montages, isolation) qui exécute une commande simple autre que nano.
- Suivre le diaporama laboratoire bonus.
AprÚs avoir monté une prison à la main, docker run ne sera plus jamais mystérieux : vous saurez exactement le service qu'il vous rend.
L'examen pratique, et comment se joue la note
- Chaque étudiant démontre chaque laboratoire sur son poste : les trois déploiements répondent, l'article illustré s'affiche.
- Les configurations sont présentées dans Git.
- Vous pouvez expliquer chaque commande : l'IA a pu aider, c'est votre tĂȘte qui rĂ©pond.
Un seul conteneur
Un conteneur par service
Docker Swarm
From scratch, en plus du total
Total : 25 points · 25 % de la session, plus le point bonus from scratch. L'énoncé complet, version détaillée, reste en ligne : la version web fait foi.