Optimisation des Déploiements avec Kubernetes et ArgoCD

Introduction
Kubernetes + ArgoCD, c'est la stack de déploiement que je mets en place chez chaque client. Chez KNDS (Défense), Padam Mobility, Bloomflow, Earny SA et F2R2, cette combinaison a transformé les déploiements d'une opération risquée en une routine quotidienne. Voici les techniques d'optimisation que j'ai développées au fil de ces projets.
Kubernetes : optimiser le cycle de déploiement
Le premier levier d'optimisation, c'est la vitesse de déploiement. Un rolling update standard prend entre 1 et 5 minutes selon la taille de l'application. Pour accélérer : (1) des images Docker légères (multi-stage build, images distroless chez KNDS, 45 Mo au lieu de 1,2 Go chez TEKYN), (2) des probes bien calibrées (startup probe avec un délai initial réaliste, readiness probe rapide), (3) un preStop hook avec un sleep de 5 secondes pour laisser les connexions en cours se terminer proprement. Chez Bloomflow, ces optimisations ont réduit le temps de déploiement moyen de 4 minutes à 90 secondes pour les applications sans état.
ArgoCD : le GitOps qui scale
ArgoCD est conçu pour scaler. Chez Bloomflow, un seul ArgoCD gère 30+ applications sur 3 clusters (AWS, Scaleway, Outscale) via des ApplicationSets. L'optimisation clé : séparer le repo des manifests Kubernetes du repo de code applicatif. GitHub Actions build l'image et met à jour le tag dans le repo de manifests. ArgoCD surveille uniquement le repo de manifests, ce qui réduit le bruit et accélère la détection des changements. Chez KNDS, ArgoCD gère 12 applications avec des sync waves pour orchestrer les déploiements complexes (base de données avant application, migrations avant lancement).
Sécurisation des déploiements
Chez KNDS (Défense), la sécurité des déploiements est non négociable. Les mesures en place : RBAC Kubernetes granulaire (les développeurs ne peuvent voir que leur namespace), NetworkPolicies en deny-all par défaut, PodSecurity Standards en mode "restricted" (pas de conteneur en root, pas de privilege escalation), profils seccomp custom, et les secrets passent par OKMS avec rotation automatique. Côté ArgoCD, le SSO via OIDC et le RBAC intégré limitent qui peut synchroniser ou modifier les applications. Les audit logs ArgoCD sont exportés vers Loki pour traçabilité complète.
Monitoring des déploiements en temps réel
Chaque déploiement est monitoré en temps réel. Chez Metronome, la stack Prometheus + Grafana affiche les métriques critiques : nombre de replicas disponibles vs souhaités, taux d'erreur HTTP pendant le rollout, latence P99, et consommation de ressources. Les annotations Grafana marquent automatiquement chaque déploiement sur les graphes, permettant de corréler un changement de performance avec un déploiement précis. Chez Bloomflow, OpenTelemetry ajoute le tracing distribué : chaque requête est tracée de l'ingress jusqu'à la base de données, ce qui permet de diagnostiquer un ralentissement en moins de 15 minutes.
La collaboration Dev/Ops via GitOps
Le GitOps avec ArgoCD transforme la collaboration entre développeurs et ops. Chez Padam Mobility, les développeurs créent des environnements de bout en bout pour leurs feature branches : un nouveau répertoire dans le repo de manifests, et ArgoCD provisionne automatiquement un namespace isolé avec l'application et ses dépendances. Les ops maintiennent les templates et les ApplicationSets, les devs les consomment en self-service. Chez Bloomflow, cette approche a réduit les tickets "demande de déploiement" de 100% : les développeurs déploient eux-mêmes, avec les garde-fous ArgoCD + OPA/Gatekeeper.
Conclusion
Kubernetes et ArgoCD, optimisés ensemble, offrent une stack de déploiement continu mature, sécurisée et observable. Les clés : images Docker légères, probes bien calibrées, GitOps avec séparation des repos, sécurité intégrée (RBAC, NetworkPolicies, secret management), et monitoring de bout en bout. Cette stack, déployée chez plus de 5 clients dans des contextes variés (startup, défense, santé, finance), a prouvé sa fiabilité sur des centaines de déploiements quotidiens.