MightCore
Zpět na blog
Návody10. listopadu 20267 min čtení

Provoz a podpora: co se děje s aplikací po tom, co ji spustíte

Spuštění není konec projektu, je to začátek provozu. O monitoringu, zálohách, dostupnosti a o tom, co má smlouva o podpoře reálně obsahovat.

Aplikace, kterou nevidíte, není nasazená — je opuštěná. Rozdíl mezi těmi dvěma stavy není v kódu, ale v tom, jestli se o problému dozvíte vy, nebo zákazník.

Projekt se předá, faktura se vystaví a tím to pro většinu dodavatelů končí. Aplikace přitom žije dál: roste jí databáze, mění se závislosti, vyprší certifikáty a někdo jednou udělá změnu, která něco pokazí. Provoz je to, co rozhoduje, jestli se to řeší v klidu, nebo v panice.

Monitoring je o otázce, ne o grafech

Smyslem monitoringu není mít hezkou nástěnku. Je to umět odpovědět na jednu otázku: funguje to teď pro uživatele?

Stačí na to překvapivě jednoduché věci, které se ale musí sledovat doopravdy:

  • Chybovost a rychlost na klíčových místech. A ne průměr — ten schová i to, že desetině lidí se stránka načítá osm sekund. Zajímá nás, jak je na tom ta nejpomalejší část návštěv.
  • Běží ještě to, co má? Nejen webserver, ale i fronty a naplánované úlohy. Spadlý worker se navenek neprojeví hned — projeví se o den později tím, že nikomu neodešel e-mail.
  • Dochází něco? Místo na disku, připojení do databáze, platnost certifikátu. To jsou výpadky, které jdou vidět týdny dopředu.

A platí jedno pravidlo: alert, na který se nedá reagovat, je potřeba smazat. Tři upozornění denně, která nikdo neřeší, spolehlivě naučí tým ignorovat i to čtvrté, které bylo důležité.

Záloha, která nebyla obnovena, není záloha

Tohle je nejčastější tichá díra v provozu. Zálohy běží, v logu je „OK", a v den, kdy jsou potřeba, se zjistí, že se roky zálohovala prázdná databáze nebo že obnova trvá dvanáct hodin.

Proto k zálohování patří pravidelná zkušební obnova — ne kontrola, že soubor existuje, ale reálné obnovení do odděleného prostředí a ověření, že data v něm dávají smysl. Zároveň je potřeba mít řečená dvě čísla: kolik dat si můžeme dovolit ztratit a jak dlouho smí trvat návrat do provozu. Z nich plyne, jak často se zálohuje a co to stojí.

Dostupnost: co se dá slíbit a co ne

Domluvená dostupnost je užitečná věc, ale jen tehdy, když se k ní řekne zbytek. Samotné procento neříká nic, dokud není jasné, co se počítá jako výpadek, v jakém čase se měří a co se stane, když se nedodrží.

Stejně důležité je, co nemůže slíbit nikdo: dostupnost služeb třetích stran. Když vypadne platební brána nebo API dopravce, aplikace to má přežít se srozumitelnou hláškou — ale nemůže za to ručit.

Proto se s klienty bavíme o domluvené dostupnosti a reakčních časech podle závažnosti, ne o jednom čísle do smlouvy.

Nasazování změn je součást provozu

Většina výpadků nevzniká z ničeho nic. Vzniká při změně. Proto se provoz a způsob nasazování nedají oddělit:

  • Nasazuje se automaticky a stejně pokaždé, ne ručně a ne podle toho, kdo má službu.
  • Změny databáze musí být zpětně kompatibilní, jinak se nedá vrátit zpět bez ztráty dat.
  • Návrat na předchozí verzi musí být vyzkoušený, ne jen popsaný. Rollback, který se poprvé zkouší během incidentu, obvykle nefunguje.

Co děláme my

Aplikace nasazujeme v kontejnerech, takže běží stejně u nás, u vás nebo u jiného poskytovatele — a případné stěhování je nasazení, ne přepisování. K provozu patří monitoring s alerty, zálohování s ověřenou obnovou, domluvená dostupnost a reakční časy, a změny nasazované automatizovaně.

Provozovat umíme i řešení, které jsme nestavěli — tehdy se začíná auditem, abychom věděli, co přebíráme. Pokud vás zajímá, co by to znamenalo pro vaši aplikaci, ozvěte se.

Řešíte něco podobného ve vaší firmě?

Chci nezávaznou konzultaci

15minutový úvod

Nejste si jistí? Pojďme si promluvit.

Nerozumíte něčemu nebo nevíte, kde začít? Domluvte si krátký 15minutový úvod do problematiky — vše vám zdarma a nezávazně vysvětlíme.

Rezervovat 15min hovor