En savoir plus

Swarm

De Borg à SwarmKit : l'histoire de l'orchestration, et la mécanique du consensus qui fait tenir l'essaim.

420-5A4-MT · Serveurs évolutifs · Swarm

D'où vient l'orchestration ?

Genèse · 2016 Le secret le mieux gardé de Google

Pendant des années, Google a fait tourner ses services sur Borg, un orchestrateur interne tenu secret : des millions de conteneurs avant que le mot ne soit à la mode. En 2014, Google publie Kubernetes, l'héritier de Borg. Docker répond en 2016 : SwarmKit, l'orchestration intégrée au moteur.

🔒 1. Borg (années 2000)
L'orchestrateur secret de Google, décrit publiquement seulement en 2015.
☸️ 2. Kubernetes (2014)
L'héritier public de Borg, donné à la communauté : la fondation CNCF.
🐝 3. SwarmKit (2016)
La réponse de Docker : docker swarm init, l'orchestration en une commande, sans rien installer.
Le pari de Swarm : l'orchestration ne devrait pas être plus difficile qu'un docker run.

Sous le capot : Raft et le quorum

Mécanismes Pourquoi 3 gestionnaires, et jamais 2

Les gestionnaires partagent l'état du cluster grâce à l'algorithme de consensus Raft : chaque décision doit être approuvée par une majorité : le quorum.

🗳️ 1. Le consensus Raft
Les gestionnaires élisent un chef; chaque écriture est répliquée sur la majorité avant d'exister.
🔢 2. Le quorum
Majorité = la moitié plus un. Avec 3 gestionnaires on survit à 1 panne, avec 5 à 2. Avec 2 : la majorité de 2 est 2, aucune panne permise.
💾 3. L'état désiré
Le journal Raft garde la vérité; la boucle de réconciliation compare sans cesse l'observé au désiré.
Nombre impair obligatoire : un essaim de 2 gestionnaires qui en perd 1 est paralysé : plus de majorité possible.

Sous le capot : le maillage de routage

Mécanismes Le port 80 est ouvert partout

Quand un service publie un port, tous les noeuds de l'essaim l'écoutent : le maillage de routage (routing mesh) achemine la requête vers une réplique, où qu'elle soit.

🕸️ 1. Le maillage
Frapper à n'importe quel noeud, être servi par n'importe quelle réplique.
⚖️ 2. La répartition intégrée
Le maillage fait tourner les requêtes entre les répliques : un petit balanceur gratuit, avant même la semaine 8.
🚪 3. Le réseau ingress
Un réseau overlay spécial, créé au swarm init, porte ce maillage d'un noeud à l'autre.
✦ C'est pourquoi le laboratoire répond sur les trois noeuds : le visiteur n'a pas besoin de savoir où WordPress tourne vraiment.