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.