Étude de cas6 min de lecture

Retour d'expérience : migration de Docker Swarm vers Kubernetes en entreprise

SFEIR Institute

Points clés

  • 96% des organisations utilisent ou évaluent Kubernetes vs 24% pour Docker Swarm
  • Réduction typique de 50-70% des incidents et 30-50% d'amélioration des déploiements
  • Migration type : 6 mois, 40-50 microservices, investissement significatif en formation

La question Kubernetes vs Docker Swarm se pose pour de nombreuses organisations ayant démarré avec Docker Swarm et envisageant une migration.

Selon The Decipherist, 96% des organisations utilisent ou évaluent Kubernetes, tandis que Docker Swarm reste à environ 24% d'adoption. Ce guide présente un scénario de migration représentatif, basé sur les patterns observés dans de nombreux projets.

TL;DR : Ce scénario type couvre une migration Docker Swarm vers Kubernetes sur 6 mois pour 40-50 microservices. Résultats typiques observés : réduction des incidents de 50-70%, amélioration du temps de déploiement de 30-50%, mais investissement initial conséquent en formation et infrastructure.

Ce type de migration est couvert dans la formation LFD459 Kubernetes pour les développeurs.

Profil type : entreprise envisageant la migration

Ce scénario représente une entreprise tech de taille moyenne (80-150 développeurs) ayant adopté Docker Swarm il y a plusieurs années. L'infrastructure type inclut :

  • 40-50 microservices en production
  • 3 environnements (dev, staging, prod)
  • 10-15 nodes Docker Swarm
  • 150-250 déploiements par mois

Limites couramment rencontrées avec Swarm :

ProblèmeImpact métier typique
Absence d'autoscaling natifSurprovisionnement permanent (+20-40% coûts)
Monitoring limitéMTTR élevé (30-60 min en moyenne)
Écosystème restreintDéveloppements custom chronophages
Moins de talents disponiblesDifficulté de recrutement

Comme le note Portainer, Docker Swarm se configure en une commande (docker swarm init), mais Kubernetes offre une scalabilité supérieure pour des milliers de conteneurs (PhoenixNAP).

À retenir : Le choix Kubernetes vs Docker Swarm dépend de la taille : Swarm pour les architectures simples, Kubernetes pour les déploiements complexes à grande échelle.

Pour comprendre les différences techniques, consultez notre comparatif Kubernetes vs Docker Swarm, ECS et Nomad.

Phase 1 : évaluation et planification (2 mois)

Une migration réussie commence par une évaluation rigoureuse.

Audit de l'existant

# Inventaire des services Swarm
docker service ls --format "{{.Name}}\t{{.Replicas}}\t{{.Image}}"

# Analyse des ressources par service
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

Résultats typiques d'un audit :

  • 40-50 services, dont 10-15 critiques (paiement, authentification, etc.)
  • 5-10 services stateful nécessitant des volumes persistants
  • 10-20 jobs batch avec des dépendances complexes

Choix de la plateforme cible

Les équipes choisissent généralement une plateforme managée (GKE, EKS, AKS) pour :

  • Intégration native avec leur stack cloud existante
  • Gestion automatisée du control plane
  • Support entreprise 24/7

Selon le CNCF Annual Survey 2025, 82% des utilisateurs de conteneurs exécutent désormais Kubernetes en production.

Plan de formation des équipes

Un plan de formation typique pour une équipe de 20-30 ingénieurs sur 2-3 mois :

  • Développeurs : concepts fondamentaux + déploiement applicatif
  • DevOps/SRE : administration cluster + observabilité
  • Architectes : patterns avancés + sécurité

Comme l'affirme The Enterprisers Project : « Anybody can learn Kubernetes. With abundant documentation and development tools available online, teaching yourself Kubernetes is very much within reach. »

À retenir : La formation représente 30% du budget migration mais conditionne 80% du succès selon les retours terrain.

Notre page bonnes pratiques conteneurisation et Docker détaille les fondamentaux prérequis.

Phase 2 : migration des environnements non-critiques (2 mois)

L'approche retenue : migrer progressivement du moins critique au plus critique.

Conversion Docker Compose vers manifestes Kubernetes

# Avant : docker-compose.yml
version: '3.8'
services:
  api:
    image: mycompany/api:1.4.2
    ports:
      - "8080:8080"
    environment:
      - DB_HOST=postgres
    deploy:
      replicas: 3
# Après : deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: api
spec:
  replicas: 3
  selector:
    matchLabels:
      app: api
  template:
    metadata:
      labels:
        app: api
    spec:
      containers:
      - name: api
        image: mycompany/api:1.4.2
        ports:
        - containerPort: 8080
        env:
        - name: DB_HOST
          value: postgres-svc
        resources:
          requests:
            memory: "256Mi"
            cpu: "250m"
          limits:
            memory: "512Mi"
            cpu: "500m"

Outils de conversion utilisés

OutilUsageEfficacité
KomposeConversion automatique Compose → K8s60% des cas
HelmTemplating des manifestes100% des services
KustomizeGestion des environnementsOverlays dev/staging/prod

70% des organisations utilisent Helm selon Orca Security 2025.

Notre guide Migrer vers Kubernetes depuis Docker Compose, VMs détaille ces conversions.

Kubernetes vs Docker Swarm : défis techniques rencontrés

Défi 1 : gestion des secrets

Docker Swarm utilisait des secrets embarqués. Kubernetes offre plus d'options mais nécessite une architecture différente.

# Migration des secrets
kubectl create secret generic db-credentials \
  --from-literal=username=admin \
  --from-literal=password=<password>

Solution retenue : HashiCorp Vault avec External Secrets Operator pour centraliser la gestion.

Défi 2 : persistance des données

Les volumes Docker Swarm ne se convertissent pas directement en PersistentVolumes Kubernetes.

# PersistentVolumeClaim pour PostgreSQL
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgres-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: standard-rwo
  resources:
    requests:
      storage: 100Gi

Défi 3 : networking

Le passage du réseau overlay Swarm au CNI Kubernetes a nécessité une refonte des NetworkPolicies.

# NetworkPolicy pour isoler le namespace
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-ingress
spec:
  podSelector: {}
  policyTypes:
  - Ingress
À retenir : Prévoyez 2 semaines de tests réseau par environnement avant la migration de charge.

Pour le monitoring post-migration, consultez notre section Monitoring et dépannage Kubernetes.

Phase 3 : migration production (2 mois)

La migration production s'est déroulée en blue-green avec basculement progressif.

Stratégie de basculement

  1. Semaine 1-2 : Déploiement parallèle Swarm + Kubernetes (10% trafic K8s)
  2. Semaine 3-4 : Montée progressive (25%, 50%, 75%)
  3. Semaine 5-6 : 100% Kubernetes, Swarm en standby
  4. Semaine 7-8 : Décommissionnement Swarm
# Vérification santé du cluster
kubectl get nodes
kubectl get pods --all-namespaces | grep -v Running
kubectl top nodes

Incidents rencontrés

IncidentCauseRésolution
Latence API +200msLimites CPU trop bassesAjustement resources.limits
Perte de connexions DBMauvais probe readinessReconfiguration livenessProbe
OOM service paiementMemory leak non détectéHotfix applicatif

La formation LFS458 Administration Kubernetes couvre ces scénarios de production.

Résultats typiques après 6 mois

Métriques opérationnelles couramment observées

MétriqueAvant (Swarm)Après (K8s)Évolution typique
MTTR30-60 min10-20 min-50 à -70%
Incidents/mois10-153-6-50 à -70%
Temps déploiement20-30 min10-15 min-30 à -50%
Disponibilité99.5%99.9%++0.3 à +0.5%

Impact financier typique

  • Coûts infrastructure : +10-20% (cluster Kubernetes + monitoring + formation)
  • Coûts opérationnels : -25 à -40% (moins d'incidents, automatisation)
  • ROI estimé : 12-24 mois pour amortir l'investissement initial
À retenir : Le ROI d'une migration Kubernetes se mesure sur 18-24 mois, pas sur les premiers mois post-migration.

Leçons apprises : recommandations pour votre migration

Ce qui a fonctionné

  1. Migration progressive par criticité croissante
  2. Formation anticipée avant le démarrage du projet
  3. Monitoring dès le jour 1 avec Prometheus + Grafana
  4. Runbooks de rollback testés avant chaque basculement

Ce qu'il faudrait améliorer

  1. Sous-estimation du temps de conversion des jobs batch
  2. Manque de tests de charge en environnement staging
  3. Documentation insuffisante des NetworkPolicies

La formation LFS458 Administration Kubernetes prépare aux certifications validant ces compétences.

Checklist migration Kubernetes vs Docker Swarm

Avant de démarrer votre migration :

  • [ ] Auditer l'ensemble des services Swarm existants
  • [ ] Identifier les services stateful nécessitant une attention particulière
  • [ ] Former les équipes (minimum 2 semaines par profil)
  • [ ] Choisir la distribution Kubernetes (managée vs auto-hébergée)
  • [ ] Définir la stratégie de basculement (blue-green, canary)
  • [ ] Mettre en place le monitoring avant la migration
  • [ ] Préparer les runbooks de rollback
  • [ ] Tester chaque conversion en environnement non-prod
À retenir : Une migration réussie est une migration préparée : prévoyez 30% de marge sur le planning initial.

Pour approfondir les différences, consultez Kubernetes vs Docker : comprendre les différences.

Lancez votre migration avec les bonnes fondations

Le passage Kubernetes vs Docker Swarm représente un investissement stratégique. Selon Chris Aniszczyk, CTO de la CNCF : « Kubernetes is no longer experimental but foundational. Soon, it will be essential to AI as well. »

Prochaines étapes recommandées :

  1. Évaluez votre infrastructure actuelle avec un audit technique
  2. Formez vos équipes avant de démarrer la migration
  3. Planifiez par phases du moins critique au plus critique

SFEIR accompagne les entreprises dans leur transformation cloud-native :

Demandez un conseil personnalisé pour définir votre stratégie de migration.