Když se změna umí jen posunout vpřed, každé nasazení je sázka. Cestu zpět navrhněte dřív, než ji budete potřebovat.

01 / PRŮVODCE

Cesta zpět patří do plánu

Plán nasazení obvykle popisuje, jak se nová verze dostane do produkce. Druhá polovina chybí: jak se systém vrátí do známého stavu, když se pod skutečným provozem začne chovat jinak. Tuto otázku je nejsnazší zodpovědět ještě předtím, než na změně začnou záviset data a klienti.

„Vrátit commit“ je operace ve správě zdrojového kódu. Rollback je operace nad celým systémem. V určitém pořadí může být potřeba vrátit aplikaci, konfiguraci i směrování provozu a současně zachovat kompatibilitu dat.

02 / PRŮVODCE

Navrhujte období souběhu

Mnoho změn se vrací obtížně proto, že stará a nová verze neumějí fungovat současně. Bezpečnější postup odděluje kompatibilitu od aktivace: nejprve připravte starý systém na budoucí podobu dat, potom zapněte nové chování a teprve v dalším vydání odstraňte starou cestu.

  1. Rozšiřte: přidejte nové pole nebo endpoint, ale zachovejte dosavadní kontrakt.
  2. Přepněte: vědomě přesuňte zápis i čtení a sledujte předem vybrané signály.
  3. Zúžte: kompatibilní kód odstraňte až po uzavření okna pro návrat.

To je důležité zvlášť u změn schématu, formátu událostí a klientů, které nemáte pod kontrolou. Snímek databáze může pomoci při obnově, ale jeho vrácení může smazat legitimní zápisy vzniklé po nasazení. Kompatibilita bývá lepší první obrana.

03 / PRŮVODCE

Rozhodnutí napište před incidentem

Užitečná poznámka k vydání odpovídá na čtyři otázky: Jaký signál znamená zastavit? Kdo o tom rozhodne? Který krok vrátí službu nejrychleji? Jaká data se mohou ztratit nebo změnit? Spouštěč návratu má být pozorovatelný, ne pocitový.

Příklad / poznámka k nasazení
Zastavit, pokud chybovost plateb 5 minut převyšuje běžnou úroveň.
Přesměrovat provoz na předchozí verzi aplikace.
Rozšířené schéma ponechat. Databázi neobnovovat ze snímku.
Ověřit návrat chybovosti a délky fronty k běžným hodnotám.

Čísla a signály jsou ilustrativní; skutečný práh musí vycházet z dané služby a jejího error budgetu. Návrat vyzkoušejte v reprezentativním prostředí. Postup, který nikdo nespustil, je stále jen hypotéza.

04 / PRŮVODCE

Krátký kontrolní seznam

  • Přečte předchozí verze data zapsaná novou verzí?
  • Lze přesměrovat provoz bez sestavování artefaktů během incidentu?
  • Počítá plán i s feature flagy a změnami konfigurace?
  • Má člověk ve službě potřebná oprávnění a přesné příkazy?
  • Podle čeho pozná, že je stará verze znovu zdravá?

Návrat není vždy možný. V takovém případě pojmenujte postup opravy směrem vpřed i jeho rizika. Je to užitečnější než formálně odškrtnutý rollback.

Další čtení

KONEC TEXTU / 01Procházet články ↗