Semaine 4 · Diaporama de notions

L'essaim

Acte 3 : faire jouer la partition par plusieurs machines à la fois. Docker Swarm et l'orchestration.

420-5A4-MT · Serveurs évolutifs · Swarm
Où en est l'histoire

Et si une machine ne suffisait plus ?

Le site de la petite entreprise tient sur une machine, et la partition Compose sait le lever d'un geste. Mais une question trotte dans la tête de la fondatrice : le jour où une machine ne suffira plus, on fera quoi ? Avant même d'en avoir besoin, l'entreprise apprend à faire jouer sa partition par un orchestre de plusieurs machines : un essaim.

Notion 1

L'essaim et l'état désiré

Un essaim (swarm) est un cluster : plusieurs machines qui exécutent Docker et agissent comme une seule grande machine. On ne pilote plus des conteneurs un à un : on déclare un état désiré, et l'essaim travaille en permanence à le maintenir.

Vous déclarez

« Je veux 3 copies du service web, un port 80 ouvert, et la base sur un noeud travailleur. »

L'essaim réconcilie

Un conteneur meurt ? Il le relance. Un noeud tombe ? Ses tâches renaissent ailleurs. Sans que personne ne clique. C'est la réconciliation.

Notion 2

Gestionnaires et travailleurs

Le gestionnaire (manager)
  • Garde l'état du cluster et prend les décisions.
  • Distribue les tâches aux noeuds.
  • Plusieurs gestionnaires possibles : ils élisent un chef (leader), et le cluster survit à la perte d'un gestionnaire.
Le travailleur (worker)
  • Reçoit des tâches et les exécute : c'est lui qui fait tourner les conteneurs.
  • Rend compte de son état au gestionnaire.
  • Un noeud peut être les deux à la fois.

On rejoint un essaim avec un jeton (token) : un jeton de travailleur ou un jeton de gestionnaire, générés à la création de l'essaim.

Notion 3

Services, tâches, répliques

Votre travail de la semaine 3 n'est pas perdu : Swarm parle le même langage.

Notion 4 · Le piège

Tout ne se réplique pas pareil

Le web : sans état
  • Chaque requête est indépendante : n'importe quelle copie peut répondre.
  • Se réplique à volonté : 3, 10, 100 copies.
La base : avec état
  • Ses données vivent dans UN volume, ancré sur UN noeud.
  • Deux copies écrivant les mêmes fichiers = catastrophe.
  • On l'ancre avec une contrainte de placement (placement constraint), en une seule réplique.

C'est LA leçon conceptuelle de la semaine : l'état et le sans-état n'évoluent pas pareil. Elle vous suivra jusqu'au projet final, et dans toute votre carrière.

Notion 5

Trois façons de monter son essaim

Au laboratoire, chacun monte SON essaim de trois noeuds, avec l'infrastructure de son choix :

Conteneurs imbriqués

Docker dans Docker (DinD) : léger, rapide, hors ligne. Trois noeuds qui sont eux-mêmes des conteneurs sur votre VM.

Machines virtuelles

Trois VM VirtualBox clonées : le modèle mental le plus propre, hors ligne, et l'entraînement parfait pour le projet final.

Serveurs infonuagiques

Trois VPS Linode jetables, facturés à l'heure : le plus authentique. De vraies machines, le vrai Internet, un vrai pare-feu à configurer.

Les gestes (init, join, deploy, scale, drain) et l'évaluation sont identiques dans les trois cas. C'est la leçon : l'orchestrateur se moque du substrat.

À retenir

Avant de passer au laboratoire

Au laboratoire : choisissez votre infrastructure, justifiez votre choix en quelques phrases, montez vos trois noeuds et regardez WordPress se répliquer. Puis débranchez un noeud, pour le plaisir de le voir renaître.

Version de départ · ce diaporama va s'enrichir