Retour à l'accueil

Incident nocturne : stabilisation du monolithe en prod

Cas d'incident nocturne en production d'une application monolithique. L'équipe a stabilisé le service par l'analyse des queues, des requêtes DB et de la compromission de sécurité. Leçons : rôles, feature flags, éviter les migrations précipitées.

Comment éteindre un feu en prod : cas monolith-dragon
Advertisement 728x90

# Panne de prod en pleine nuit : Stabiliser le monolithe et coordonner l'équipe

L'alerte pager « PROD : tout est rouge » m'a sorti du lit en sursaut. Direction la salle d'incident : playbook SRE — stabiliser, analyser, post-mortem. L'équipe s'est réparti les rôles : coordination, communications, base de données, surveillance des métriques et logs. Objectif : débusquer la cause racine enfouie sous des couches de code legacy.

Les parties prenantes ont reçu la première mise à jour : « Service HS. L'équipe est dessus. Prochaine mise à jour dans 15 minutes. » La surveillance affichait toutes les métriques en rouge sauf un petit pic vert. Les logs débordaient d'erreurs de timeout cognant contre le monolithe, surnommé affectueusement « le dragon ».

Diagnostic : Des files de messages aux goulots d'étranglement en base

Les métriques des files de messages ont explosé de façon exponentielle, les consommateurs plantant à cause des timeouts. Coupable : des requêtes base de données trop lentes. Voici un exemple flagrant :

Google AdInline article slot
SELECT * FROM users WHERE some_condition ORDER BY created_at LIMIT 1000;
-- Pas d'index sur some_condition ou created_at, scan de plus de 10M de lignes — catastrophe totale.

Le DBA a repéré des index manquants et des problèmes de requêtes N+1 dans le nouveau service. L'architecte legacy a confirmé : le monolithe accumule l'état global, pas conçu pour scaler sans refactorisation.

Proposition urgente de migration Kubernetes ? Rejetée. Ça ajouterait de la complexité en pleine crise sans résoudre le vrai problème.

Contrôle de sécurité et compromis arrachés

Demande d'accès temporaire pour throttler le trafic et rollback la fonctionnalité ? La sécu a bloqué net. Le modèle de menaces exige une validation des risques. Compromis : accès d'une heure avec logging complet et rapport d'audit.

Google AdInline article slot

Actions :

  • Throttler le trafic avec limitation de débit.
  • Rollback de la nouvelle fonctionnalité via feature flag.
  • Surveiller la récupération : rouge → rose → gris → vert stable.

Parties prenantes mises à jour : « Stabilisé. Analyse en cours. Prochaine mise à jour dans 30 minutes. »

Cause racine et leçons clés

Incident contenu : files engorgées, base de données malmenée par des requêtes non optimisées du nouveau service. Monolithe muselé et stable, mais il hurle pour une refonte systématique.

Google AdInline article slot

Le manager OKR intervient : doublement des releases, « tout réécrire », Kubernetes partout. Risque : courir après des projets big-bang au lieu de gains incrémentaux.

Leçons clés :

  • La cause racine était des requêtes bâclées et des files saturées, pas le monolithe en soi.
  • Des rôles d'incident clairs sont cruciaux : coordination, comms, expertise pointue.
  • La sécu peut fléchir avec accès temporisé et audits.
  • Éviter les migrations hâtives en crise ; prioriser la stabilisation.
  • Le post-mortem façonnera la roadmap : index, feature flags, refactorisation graduelle.

L'équipe a bouclé la stabilisation en 2 heures. Prochaines étapes : post-mortem et plan d'actions.

— Editorial Team

Advertisement 728x90

Lire ensuite