Grandir ou
multiplier
Conteneur, scalabilité verticale, scalabilité horizontale : on situe le terrain avant de partir à l'aventure.
420-5A4-MT · Serveurs évolutifsUn serveur évolutif, c'est quoi ?
Un serveur évolutif est un serveur capable de suivre la croissance de son public : plus de visiteurs, plus de données, plus de travail, sans s'écrouler et sans être rebâti à zéro. Le mot savant est scalabilité. L'idée tient en trois exigences.
Quand le trafic monte, on ajoute des ressources et le service reste rapide. La capacité suit la courbe des visiteurs.
L'architecture absorbe le changement : on ajoute, on ajuste, on redistribue, mais on ne repart pas de zéro à chaque palier.
Un système vraiment évolutif sait aussi rapetisser quand le trafic redescend, pour ne pas payer des machines qui dorment. C'est l'élasticité.
Quatre faux amis de l'évolution
Certaines réponses ressemblent à de l'évolution mais n'en sont pas. Vous les croiserez dans de vraies entreprises.
« On verra quand ça cassera. » Le pic de trafic arrive toujours un vendredi soir, et le site tombe devant son plus grand public.
À chaque palier, on jette tout et on rebâtit à neuf. Des mois de travail, un risque énorme, et le trafic n'attend pas.
Acheter dès le premier jour la machine des 100 000 visiteurs. Elle dormira à 2 % d'utilisation pendant des années, facture comprise.
Agrandir dans l'urgence, la nuit de la panne, sans mesure ni plan. Parfois ça tient. Personne ne sait pourquoi.
Quatre façons d'évoluer
Quand la machine commence à souffrir, il n'existe que quatre grandes familles de réponses, et une seule attitude : être agile.
Faire mieux avec la même machine : du code plus efficace, un cache qui évite de recalculer. Indispensable, mais ça repousse le mur sans l'abattre.
Redéployer automatiquement, avec un conteneur ou avec un script. Pivoter dans une infrastructure de protection temporaire. Toutes sortes de réactions agiles : de la robustesse, même sous le feu.
Remplacer la machine par une plus musclée : plus de processeurs, plus de mémoire, plus de disque. C'est la scalabilité verticale.
Ajouter des machines qui se partagent le travail. C'est la scalabilité horizontale.
Verticale contre horizontale
- Une seule machine, qu'on rend plus puissante.
- Simple : l'application n'a rien à changer.
- Rapide à mettre en place : le premier réflexe naturel.
- Mais un plafond existe : la plus grosse machine du marché, et on finit par l'atteindre.
- Le prix grimpe plus vite que la puissance.
- Une seule machine : un seul point de panne, et souvent un arrêt pour agrandir.
- Plusieurs machines ordinaires qui se partagent le travail.
- Presque pas de plafond : on ajoute des machines au besoin.
- Le coût suit la croissance, presque en ligne droite.
- Une machine tombe ? Les autres continuent : la panne devient banale.
- Mais il faut répartir le trafic : le balancement de charge.
- Et partager l'état (sessions, base de données) puis orchestrer tout ce monde.
Le restaurant qui déborde
Un petit restaurant affiche complet tous les soirs. Plusieurs personnes se font refuser l'entrée. Le chef d'entreprise veut donc agrandir pour servir plus de convives.
Un four géant, le chef le plus rapide en ville. Ça marche, jusqu'au jour où la cuisine empiète sur la salle à manger, la salle à manger s'étend dans la rue avec sa terrasse, et le four coûte le prix d'une maison.
Autant de cuisines que nécessaire, mais un nouveau métier commence : garantir le même menu partout, diriger chaque client vers la bonne adresse, tenir une comptabilité commune.
Chaque problème de succursale a son jumeau dans ce cours :
- Le même menu partout : une image de conteneur, identique sur chaque machine.
- Diriger les clients : la passerelle et son balancement de charge.
- La comptabilité commune : la base de données et les sessions partagées.
Et le conteneur, dans tout ça ?
Le conteneur est une boîte standard qui emballe une application avec tout ce qu'il lui faut pour tourner : ses bibliothèques, sa configuration, son environnement. Il démarre en quelques secondes et se copie à l'identique, ici ou sur n'importe quelle machine. C'est la brique qui rend les deux chemins praticables.
Un orchestrateur peut créer et détruire des conteneurs selon la demande : l'élasticité devient automatique.
Changer de machine sans réinstallation : le chemin vertical devient un déménagement de quelques minutes.
Dix copies identiques de la même image : le chemin horizontal devient une multiplication, pas dix installations.
Docker selon le scénario
Docker est l'outil de conteneurs du cours. Voici ce qu'il change concrètement dans chaque scénario de croissance.
L'application emballée déménage vers une machine plus musclée sans réinstallation, et les limites de mémoire et de processeur s'ajustent dans un fichier. C'est le pivot vertical de la semaine 5.
La même image lancée en plusieurs exemplaires : Compose décrit l'application entière, Swarm distribue les copies. Le module 2 est l'exemple parfait d'une croissance horizontale, avec ses instances redondantes, ses bases de données séparées et son balancement de charge.
Les vraies entreprises font les deux : des machines bien dimensionnées ET plusieurs copies. Docker permet le va-et-vient sans jamais réinstaller.
Une entreprise dont le site décolle
Toute la session raconte la même histoire. Une petite entreprise met en ligne sa boutique : un WordPress hérité du cours de serveur, installé à la main sur une petite machine. Dix visiteurs par jour au début. Puis cent, puis mille, puis la vidéo qui devient virale. À chaque palier, quelque chose casse, et c'est un concept du cours qui vient le réparer.
Cette échelle est le moteur du cours : chaque palier brise l'architecture qui suffisait au palier précédent, et chaque réparation est un laboratoire.
Les cinq phrases du jour
- Un serveur évolutif suit la demande sans être rebâti à zéro, et sait grandir comme rapetisser.
- Scalabilité verticale : une machine plus grosse. Simple, mais un plafond, un prix qui s'envole et un point unique de panne.
- Scalabilité horizontale : plus de machines. Presque sans limite, mais il faut répartir, partager et orchestrer.
- Le conteneur est la brique des deux chemins : pilotable, déménageable, clonable.
- Le fil rouge du cours : une entreprise qui grimpe l'échelle des visiteurs, un palier par acte, preuves à l'appui.
La suite aujourd'hui : la visite guidée des concepts du cours. L'infrastructure finale, vivante et en marche, sous vos yeux.