Laboratoires
Application
distribuée
Quatre laboratoires et une démonstration pour faire passer le site de la petite entreprise du simple serveur à la grappe qui ne tombe jamais.
420-5A4-MT · Équipe de 4 · Dix mille visiteurs · Démonstration semaine 10La petite entreprise devient grande
Le WordPress de la petite entreprise a survécu au module 1 : conteneurisé, composé, essaimé, sauvegardé. Mais le bouche-à-oreille n'arrête plus : dix mille visiteurs pointent à l'horizon, et une seule machine ne suffira plus. Il est temps de grandir en largeur : séparer, mettre en cache, balancer, doubler les points de faille, et prouver chaque étage avec un vrai test de charge.
À chaque étage, un test de charge BRUTAL avec JMeter documente ce que le montage encaisse : les chiffres racontent la croissance.
Un étage à la fois, chiffres à l'appui
WordPress et MySQL sur une instance, puis 1 service = 1 instance. Semaine 6.
Varnish en avant du HTTP. Semaine 7.
HAproxy, deux Varnish, puis Heartbeat et l'IP virtuelle. Semaine 8.
Tout rejouer sur la grappe de Raspberry Pi. Semaine 9, en équipe.
Vos instances, votre choix d'infrastructure
Chaque serveur est une instance : VM VirtualBox (référence UbuntuServerAlpha, 1 Go, 12 Go), conteneurs DinD, ou VPS Linode. Comme au module 1 : mêmes gestes, mêmes livrables, même évaluation.
- Votre essaim du module 1 peut resservir : les noeuds font d'excellentes instances.
- Nom d'hôte : SERVICE_PRINCIPAL + 3 derniers chiffres de l'adresse (mysql10, http20, varnish30 et 31, haproxy40 et 41, IP virtuelle .49).
- Justification du choix en quelques phrases dans le README de l'équipe.
Option VPS : « conserver ses instances » = savoir les recréer et les restaurer en minutes, par script et sauvegardes. À la démonstration, vous relevez l'ensemble devant témoin.
Ce qui est exigé, sans exception
- Équipe de 4 : noms et identifiants GitHub dans le README.md. Chaque laboratoire évaluable unitairement.
- Instances conservées et fonctionnelles pour la démonstration. Captures d'écran dans GitHub. Pour chaque étudiant.
- Version .PDF du document, tableaux remplis, par étudiant.
- Son propre guide d'installation (.md) par laboratoire, fichiers de configuration dans GitHub.
- Sans démonstration conforme : 0. Absence non justifiée : 0. Sans les commits minimaux en classe : 0.
WordPress et MySQL : une instance, puis deux
- Partie 1 : HTTP (apache2) et MySQL sur une seule instance. WordPress avec au moins 2 articles (image et texte), thème une page, accessible depuis l'hôte.
- Partie 2 : chaque service principal sur son instance (mysql10, http20).
- Pour chaque partie : test BRUTAL, captures top à 10 s et 60 s de toutes les instances actives, tableau (valeur id + temps moyen JMeter).
Barème : guide (2) · configurations (1) · tableau (1) · captures (1). Minimum 2 commits en classe; terminé pour la semaine 7.
Varnish : la cache en avant
- Une instance de cache Varnish en avant de votre serveur HTTP.
- L'URL d'accès de WordPress modifiée pour l'adresse de Varnish.
- Test BRUTAL, captures partie 3 (10 s et 60 s), tableau.
Barème : guide (2) · configurations (1) · tableau (1) · captures (1). Minimum 2 commits en classe; terminé pour la semaine 8.
HAproxy et Heartbeat
- Partie HAproxy : un second Varnish, puis une instance de balancement HAproxy en avant des deux. URL de WordPress sur HAproxy. Mesures partie 4.
- Partie Heartbeat : un second HAproxy, Heartbeat sur les deux, IP virtuelle pour la grappe. URL de WordPress sur l'IP virtuelle. Mesures partie 5.
- L'épreuve : test BRUTAL, éteindre le HAproxy maître, WordPress doit continuer de répondre. Reproduit en classe pour l'évaluation.
Barème : guide (4) · configurations (2) · tableau (2) · captures (2). Minimum 2 commits en classe; terminé pour la semaine 9.
Installation sur matériel réel
- Avec le meilleur guide de l'équipe : installer l'ensemble des services sur la grappe de Raspberry Pi.
- Rédiger un nouveau guide avec les modifications nécessaires : le passage au matériel laisse toujours des traces.
- Tests BRUTAL, tableau, .PDF unique d'équipe. Démonstration par l'affichage de WordPress dans un navigateur.
- Des commits significatifs de CHAQUE membre dans le nouveau guide, sinon pas de points pour ce membre. Minimum 4 commits d'équipe en classe (au moins 1 par étudiant).
Barème : guide d'équipe (2) · configurations (1) · tableau (1) · captures (1).
La démonstration, et comment se joue la note
- Chaque équipe démontre l'installation sur matériel.
- Chaque étudiant démontre tous les autres laboratoires sur son poste, et présente guide, configurations, tableau et captures dans GitHub.
- L'épreuve du HAproxy maître éteint sous charge est rejouée devant tout le monde.
WordPress et MySQL
Varnish
HAproxy et Heartbeat
Matériel réel
Total : 25 points · 25 % de la session. La question qui vaut de l'or, au README : d'un étage à l'autre, qu'est-ce qui s'est amélioré, et qu'est-ce que ça a coûté ?