Adaptable
L'art de l'orchestration dynamique : donner un cerveau et des règles à l'essaim.
Swarm · Haute DisponibilitéL'intelligence du Swarm
Un système distribué n'est pas "magiquement" intelligent. Pour qu'une flotte de serveurs s'adapte aux pannes et aux pics de charge de manière autonome, l'orchestrateur a besoin de deux choses : un cerveau sain et des règles claires.
Le système doit pouvoir survivre à la mort de l'un de ses dirigeants sans sombrer dans la folie (le "split-brain"). C'est le rôle du Quorum, qui assure le consensus et la résilience décisionnelle.
Le système doit savoir quel travail assigner à quel travailleur en fonction de son physique (disque SSD, GPU, etc.). C'est le rôle des Contraintes de placement, qui orientent le déploiement.
Le Quorum
La loi de la majorité et la survie de l'essaim
Swarm · Architecture DistribuéePourquoi 3 gestionnaires ?
Dans un cluster Swarm, le Manager (gestionnaire) prend toutes les décisions. Si on n'a qu'un seul Manager et qu'il meurt, l'essaim devient aveugle. On veut donc plusieurs Managers.
- Pourquoi ne pas en mettre 2 ? Si la communication coupe entre les deux, lequel a raison ? C'est le syndrome du "split-brain" (cerveau divisé).
- Pour prendre une décision (comme élire un chef), il faut la majorité absolue. C'est le Quorum.
La règle des nombres impairs
Majorité = 2. Tolérance = 1 perte. Si 1 Manager tombe, les 2 autres forment toujours une majorité. L'essaim survit.
Majorité = 3. Tolérance = 1 perte. (C'est pire que 3, car on a plus de chances qu'un serveur tombe, sans gagner de tolérance).
Majorité = 3. Tolérance = 2 pertes. La configuration idéale pour la haute disponibilité en production.
Leçon : On déploie toujours 1, 3, 5 ou 7 Managers. Jamais un nombre pair.
Contraintes de placement
Ordonner au chaos : comment dompter le déploiement
Swarm · Orchestration AvancéeL'orchestrateur aveugle
Par défaut, Swarm répartit les conteneurs au hasard pour équilibrer la charge. Mais parfois, certains serveurs ont des spécificités physiques.
- Et si votre base de données doit écrire sur le gros disque dur du Serveur 1 ?
- Et si votre application IA a absolument besoin des cartes graphiques (GPU) du Serveur 3 ?
- L'orchestrateur doit être guidé.
Les Labels et les Contraintes
Ainsi, la base de données ne naîtra que sur les nœuds disposant du label 'stockage'. Vous venez de dompter l'essaim.