Études de cas

SaaS en série A

Refonte des coûts et de la fiabilité Kubernetes

17 400 $/mois

économisés

61 %

d'utilisation des nodes

0

incident OOM

Un cluster EKS de 40 nodes tournait sur des node groups statiques choisis à la main, sans aucune discipline d'autoscaling, et les pods se faisaient OOMKill à chaque pic de trafic. La facture de calcul montait pendant que la fiabilité empirait. Redimensionnement de chaque workload à partir de données Prometheus réelles, puis remplacement des node groups statiques et du Cluster Autoscaler par Karpenter pour un provisionnement juste-à-temps et bin-packé. Ajout de PodDisruptionBudgets pour que la consolidation ne fasse jamais tomber un service sous son nombre minimal de répliques.

AWS · EKS · Karpenter · Terraform · Prometheus

AvantNode groups statiques m5.2xlarge pour chaque workload
AprèsNodes provisionnés par Karpenter, dimensionnés par pod en attente
Avant24 % d'utilisation moyenne des requests CPU
Après61 % d'utilisation moyenne des requests CPU
AvantOOM kills à chaque pic de trafic
AprèsZéro incident OOM en 90 jours
Plateforme FinTech

Durcissement sécurité Kubernetes pour audit SOC 2

0

signalement critique à l'audit

37

policies IAM scopées

100 %

des secrets renouvelés

Chaque pod héritait d'un rôle IAM partagé au niveau du node, avec accès à des buckets S3 qu'il n'avait aucune raison de toucher. Le réseau du cluster était plat, sans aucune segmentation, et les pipelines CI stockaient des identifiants statiques en clair dans des variables d'environnement. Le pré-audit SOC 2 du client a échoué sur les trois points. Périmètre IAM ramené au niveau du ServiceAccount via IRSA, déploiement de NetworkPolicies default-deny appliquées à l'admission par OPA Gatekeeper, et migration de tous les identifiants CI vers des baux Vault à courte durée de vie, entièrement journalisés.

AWS · EKS · IRSA · OPA Gatekeeper · Vault

AvantRôle IAM au niveau du node, tout pod atteint tout bucket
AprèsPermissions scopées via IRSA, par ServiceAccount
AvantRéseau plat, aucune segmentation pod à pod
AprèsNetworkPolicies default-deny appliquées par Gatekeeper
AvantIdentifiants statiques dans les variables CI
AprèsBaux Vault à courte durée de vie, chaque émission journalisée
E-commerce en forte croissance

Refonte du pipeline GitOps avant le pic saisonnier

x3

fréquence de déploiement

89 %

builds plus rapides

0

interruption au pic

Les déploiements prenaient 45 minutes et nécessitaient qu'un humain se connecte en SSH pour lancer un script, limitant l'équipe à une mise en production par semaine au mieux. À six semaines du Black Friday, une mauvaise release voulait dire un rollback manuel de plusieurs heures, sans procédure testée. Reconstruction de la CI autour du cache des dépendances et des layers Docker, puis remplacement du processus de release manuel par un GitOps géré par ArgoCD : chaque environnement se synchronise automatiquement depuis Git, la dérive s'autocorrige, et le rollback tient en un revert.

GitHub Actions · ArgoCD · Helm · Kubernetes · Docker

AvantDéploiements de 45 minutes, release manuelle en SSH
AprèsDéploiements de 4 minutes, entièrement automatisés via GitOps
AvantCadence de release hebdomadaire au mieux
AprèsPlusieurs déploiements par jour, à la demande
AvantRollback : un runbook manuel jamais testé
AprèsRollback : un git revert, synchronisation autocorrective
Plateforme de données de santé

Failover multi-région de base de données sans interruption

< 5 min

RTO

100 %

de restaurations réussies

< 30s

RPO

Le plan de reprise après sinistre n'existait que sur le papier : les sauvegardes tournaient chaque nuit mais n'avaient jamais été restaurées, et toute la plateforme reposait sur une seule région AWS. Un audit de conformité a signalé les deux points comme inacceptables avant le renouvellement d'un contrat avec un réseau hospitalier. Mise en place d'une réplique asynchrone en streaming dans une seconde région avec promotion gérée par Patroni, failover automatisé via des health checks Route53, et ajout d'une tâche nocturne qui restaure la dernière sauvegarde sur une instance jetable et vérifie le nombre de lignes avant le café du matin.

AWS · PostgreSQL · Terraform · Route53 · Patroni

AvantPlan de reprise jamais testé depuis sa rédaction
AprèsExercices automatisés de restauration nocturne
AvantUne seule région AWS, point de défaillance unique
AprèsFailover multi-région, RTO inférieur à 5 minutes
AvantRunbook de failover manuel, jamais répété
AprèsFailover automatisé par health checks Route53

Des exemples composites reflétant des schémas observés sur de vraies missions, pas le récit d'un client unique nommé.

Envie des mêmes résultats ?

Parlons-en