Docker et Kubernetes : Les Piliers de l'Orchestration de Containers

Introduction
Docker et Kubernetes forment le socle de toute infrastructure cloud moderne. Je les utilise ensemble depuis 2016 — d'abord chez SFR Business Team avec un PoC Kubernetes qui a remplacé Docker Swarm, puis sur chaque projet depuis. Voici comment ces deux technologies s'articulent dans la vraie vie, avec des exemples concrets.
Docker : la conteneurisation au quotidien
Docker a fondamentalement changé la manière dont je livre des applications. Chez Epiconcept, chaque application (PHP, Python, Node.js) était empaquetée dans une image Docker avec ses dépendances exactes. Fini les "il faut PHP 7.2 mais le serveur a PHP 7.4". Sur WizOps.fr, le frontend Nuxt et le backend Django ont chacun leur Dockerfile optimisé : multi-stage builds, Alpine Linux, layers de cache pour les dépendances. L'image frontend fait 120 Mo au lieu de 800 Mo avec une approche naive. Chez TEKYN, la meme rigueur a permis de réduire les images e-commerce de 2.3 Go a 180 Mo — un gain de 92% qui accélère chaque déploiement.
Kubernetes : l'orchestrateur de production
Kubernetes orchestre ces containers a l'échelle. Chez Bloomflow, plus de 50 microservices tournaient sur des clusters multi-providers (AWS, Outscale SecNumCloud, on-premise). Chez KNDS dans le secteur défense, Kubernetes sur OVH Cloud gérait les workloads sensibles avec des NetworkPolicies strictes et des profils seccomp. Chez Okeiro en e-Santé, GKE Autopilot sur le cloud souverain S3NS gérait automatiquement les nodes. Chaque contexte a ses contraintes, mais Kubernetes s'adapte. Les fonctionnalités de self-healing (restart automatique des pods crashés), de rolling updates (déploiement progressif) et de HPA (scaling automatique) sont utilisées quotidiennement sur tous mes projets.
Ansible et Terraform : le duo IaC complémentaire
Docker et Kubernetes ne vivent pas en isolation. Chez F2R2, les 25 modules Terraform provisionnent toute l'infrastructure AWS (VPC, EKS Fargate, Aurora, WAF, GuardDuty) et Kubernetes déploie les applications dessus. Chez Epiconcept, Ansible configurait les serveurs Docker et gérait les déploiements pendant 4 ans. Chez Metronome, Terraform provisionnait les ressources OVH Cloud et Ansible configurait Rancher. La clé : Terraform pour le provisionning d'infrastructure, Ansible pour la configuration des machines, et Kubernetes/Helm pour le déploiement des applications. Chaque outil a sa responsabilité claire.
Prometheus et Grafana : observer pour agir
Sans observabilité, Docker et Kubernetes sont des boites noires. Chez Metronome, j'ai déployé Prometheus + Grafana + Loki sur le cluster OVH. Les dashboards montraient en temps réel les métriques de chaque pod : CPU, mémoire, requetes HTTP, latence. Chez Cardiologs, Datadog faisait le meme travail sur Azure Kubernetes Service. Chez SFR Business Team, c'était mes premiers dashboards Prometheus/Grafana — déja indispensables pour surveiller Docker Swarm. Chez Bloomflow, OpenTelemetry ajoutait le tracing distribué pour suivre les requetes a travers les 50+ microservices. Mon standard aujourd'hui : Prometheus pour les métriques, Loki pour les logs, Tempo pour les traces, le tout visualisé dans Grafana.
GitHub Actions et ArgoCD : le pipeline GitOps
Le pipeline CI/CD est le lien entre Docker et Kubernetes. GitHub Actions construit les images Docker et les pousse vers le registry (GHCR, ECR). ArgoCD surveille le repo Git et synchronise les manifestes Kubernetes. C'est le pattern GitOps que j'utilise chez Bloomflow, Padam Mobility, Earny SA et sur WizOps.fr. Chez Earny SA, ce pattern a permis la migration GCP vers AWS sans downtime : deux pipelines en parallèle pendant la transition. Sur WizOps.fr, les images ghcr.io/wizops-cloud/wizops.fr:main-frontend et main-backend sont construites par GitHub Actions et déployées sur Scaleway Kubernetes.
Conclusion
Docker et Kubernetes sont indissociables dans ma pratique quotidienne. Couplés a Terraform pour l'IaC, Ansible pour la configuration, Prometheus/Grafana pour l'observabilité et ArgoCD pour le GitOps, ils forment un écosystème complet et éprouvé. C'est cette stack que je déploie chez chaque client WizOps, adaptée aux contraintes spécifiques de chaque projet.