10

Au-Delà d'un Seul PC (Orchestration)

La Haute Disponibilité via Docker Swarm & Kubernetes

Docker Compose est merveilleux, mais il est limité à une seule machine physique. Que se passe-t-il si le serveur prend feu ? Si Black Friday génère 100,000 connexions etature l'unique API ?
Voici venir l'Orchestration : Gérer 10 ordiphysiques (Nodes) comme s'ils n'en formaient qu'un seul.

Le Miracle du "Replicas = 3"

Ingress Load Balancer (Trafic Public)
Serveur Physique 1 (Node A)
API Replica (Running)
Serveur Physique 2 (Node B)
API Replica (Running)
API Replica (Running)
Serveur Physique 3 (Node C)
API Replica (Crashed)
L'Orchestrateur ressuscite automatiquement les morts (Self-Healing).

Un orchestrateur écoute un fichier de configuration désiré (ex: "Je veux 4 APIs qui tournent en permanence"). Si un serveur meurt avec 2 APIs dessus, l'orchestrateur s'en rend compte en 1 seconde, et recrée ces 2 APIs sur les serveurs restants. C'est le Self-Healing.

Kubernetes vs Docker Swarm

Il existe deux grands maîtres dans le domaine. Lequel choisir pour passer en production distribuée ?

Feature Docker Swarm 🐋 Kubernetes (K8s) ☸️
Difficulté Initiale Minimaliste. Inclus d'office dans l'installation Docker. Montagne redoutable. Écosystème gigantesque.
Scale & Limites Parfait jusqu'à 1000 Conteneurs (PME / Startups). Illimité. Standard absolu du Cloud (AWS EKS, GKE, Azure).
Syntaxe YAML Le même docker-compose.yml (avec qq ajouts) ! Syntaxe YAML propre, verbeuse (Pods, Deployments, Services).
Courbe d'apprentissage 15 minutes si vous connaissez Compose ✅ Plusieurs semaines ⚠️ Mais incontournable pour le Cloud

Commandes essentielles Docker Swarm

Terminal — Cluster Swarm de A à Z
# Étape 1 : Activer le mode Swarm sur le serveur Maître (Manager)
docker swarm init --advertise-addr <IP-DU-SERVEUR>
# -> Génère un TOKEN. Collez-le sur les autres serveurs.

# Étape 2 : Ajouter des serveurs Travailleurs (Workers) à l'essaim
docker swarm join --token SWMTKN-1-xxxx <IP-MANAGER>:2377

# Étape 3 : Déployer un stack Compose sur l'essaim
docker stack deploy -c docker-compose.yml ma-super-app

# Étape 4 : Scaler un service (Ex: Passer à 5 réplicas de l'API sous la charge)
docker service scale ma-super-app_api=5

# Voir l'état de santé de l'essaim
docker node ls
docker service ls

Le Glossaire K8s Indispensable

L'écosystème Kubernetes rebute beaucoup par son jargon. Voici les termes fondamentaux déchiffrés. Cliquez sur un terme pour le révéler :