Zpět na domů

Noční incident: stabilizace monolitu v prodě

Případ nočního incidentu v produkci monolitické aplikace. Tým stabilizoval servis analýzou front, DB-dotazů a security-kompromisu. Lekce: role, feature flags, vyhnout se rushed migracím.

Jak hašit prod-požár: případ monolitu-draona
Advertisement 728x90

Noční incident v produkci: stabilizace monolitu a koordinace týmu

Noční pagerový signál „PROD: vše červené“ mě vytrhl ze spánku. Příjezd do místnosti pro řešení incidentů: SRE mantry — stabilizovat, analyzovat, post mortem. Tým si rozdělil role: koordinace, komunikace, databáze, monitorování metrik a logů. Cíl — najít kořen problému pod vrstvami legacy kódu.

Stakeholderům přišlo první hlášení: „Služba není dostupná. Tým pracuje. Aktualizace za 15 minut“. Monitorování ukázalo všechny metriky v červené, kromě jediné zelené tečky. Logy plné chyb timeout při volání monolitu, přezdívaného „drak“.

Diagnostika: od front zpráv k databázi

Metrika front zpráv rostla exponenciálně, konzumenti padali kvůli timeoutům. Příčina — pomalé dotazy k DB. Příklad problematického dotazu:

Google AdInline article slot
SELECT * FROM users WHERE some_condition ORDER BY created_at LIMIT 1000;
-- Bez indexu na some_condition a created_at, na 10M+ řádcích — katastrofa.

DBA odhalil chybějící indexy a N+1 problémy v nové službě. Legacy architekt potvrdil: monolit drží globální stav, není navržen pro paralelizaci bez refaktoringu.

Návrh urgentní migrace na Kubernetes zamítli: v krizi by to přidalo složitost, neřeší kořen problému.

Bezpečnostní inkvizice a kompromis

Žádost o dočasný přístup pro omezení provozu a rollback funkce zablokovala security. Threat model vyžaduje schválení rizik. Kompromis: hodinový přístup s logováním a reportem.

Google AdInline article slot

Akce:

  • Omezení provozu rate limitingem.
  • Rollback nové funkce přes feature flag.
  • Monitorování obnovy: červené → růžové → šedé → stabilní.

Stakeholderové aktualizováni: „Stabilizováno. Analýza pokračuje. Aktualizace za 30 minut“.

Lokalizace a lekce z incidentu

Incident lokalizován: front ucpaný, DB zatížená neoptimalizovanými dotazy z nové služby. Monolit stabilní na řetězu, ale potřebuje systémový přístup.

Google AdInline article slot

Zásah OKR manažera: plány zdvojnásobit releasy, „vše přepsat“ a Kubernetes. Riziko: soustředění na velké projekty místo inkrementálních vylepšení.

Co je důležité:

  • Kořen problému v neoptimalizovaných dotazech a frontech, ne v monolitu samotném.
  • Role v incidentním týmu jsou klíčové: koordinace, komunikace, expertiza.
  • Bezpečnostní kompromisy možné s dočasnými opatřeními a auditem.
  • Vyhnout se unáhleným migracím v krizi; soustředit se na stabilizaci.
  • Post mortem ukáže roadmap: indexy, feature flag, postupný refaktoring.

Celkový objem práce týmu — 2 hodiny do stabilizace. Pokračování: post mortem a plán.

— Editorial Team

Advertisement 728x90

Číst dál