901 Human Error

901 Human Error

V piatkovom Release sme okrem iného pridávali do prevádzky aj šesť nových serverov, aby posilnili farmu serverov, ktoré zabezpečujú jednu z najkritickejších služieb. Hneď v pondelok som so svojimi chalanmi zistil, že všetky nové servre do jedného sú akosi podvíživené. Inými slovami, z môjho pohľadu nemali taký hardware, ako sme požadovali. Každý server mal namiesto 6 vCPU len 1. Bol pondelok, prevádzka nám zatiaľ fungovala, ale rozširovali sme tú farmu práve preto, lebo nám performačné testy ukázali, že dlhodobo táto farma, ktorú dovtedy tvorili len dva servre, nedodáva požadovaný výkon. Prakticky to znamenalo, že farma dokázala udržať stabilnú prevádzku jeden týždeň. Po týždni sme boli nútení prikročiť k preventívnym reštartom, aby sa uvoľnili zaplnené a nečistené pamäte, aby sa znížila réžia na vCPU a zastavila sa tak degradácia výkonu systému ako celku. Týždeň je z hľadiska IT prevádzky strašne málo, je to v podstate havarijný stav.

Prezistil som u kolegov zodpovedných za časť operačných systémov, či vedia pridať chýbajúce vCPU počas prevádzky. Aj keby nevedeli, zrejme by sme vedeli aspoň postupne za prevádzky server po serveri vypnúť, pridať im chýbajúce zdroje a naštartovať bez toho, aby sme ovplyvnili službu. Pre istotu som si to ale overil a na moje potešenie ma len ubezpečili, že by to dokonca malo zafungovať bez potreby vypínania serverov. Výborne.

Chcel som si byť ale istý, tak sme sa dohodli, že pôjdeme postupne a každý server predsa len na tú chvíľu rekonfigurácie vyhodíme z farmy, aby sme ani len náhodou neovplyvnili prevádzku. Takto som svoj úmysel komunikoval aj manažérovi zodpovednému za aktivity v prevádzke a ten napokon, aj keď neochotne súhlasil, ale len s tou podmienkou, že to najprv skúsime na jednom servery a ak to zafunguje, budeme po jednom pokračovali ďalej. Taký bol aj môj plán. Vyskúšali sme a zafungovalo to. vCPU sa pekne načítali, aplikáciu sme znovu naštartovali a všetko vyzeralo veľmi dobre. Server sme znovu pridali do farmy. Zvyšných päť serverov som nechal na kolegov, aby ich takto postupne prekonfigurovali a odišiel som na poradu.

Ani nie päť minút na to mi volá Operačný manažér, že máme nedostupné oba Internetbankingy, retailový aj korporátny. Nezdalo sa mi, že by to mohlo súvisieť s touto aktivitou, veď som predsa videl na vlastné oči, že to zafungovalo. Uvažoval som, či to nie je nejaká hlúpa náhoda a práve teraz sa vyskytol nejaký problém, ktorý ale od seba takto odvádza pozornosť. Odišiel som z porady a kým som sa vrátil k chalanom, už bolo jasné, že je to spôsobené touto aktivitou. Začali sme servre resuscitovať.

Najprv sme skúšali reštart servera, na ktorom sa vyskytol problém, ale nepomohlo to. Zvláštne. Ak by mal byť zdrojom problému jeden server, nemalo to mať dopad na zvyšné a ostatné mali pekne obsluhovať klientov, ale toto sa nedialo. Mali sme evidentne zasiahnutú celú službu. Rozhodli sme sa pre radikálnejší krok a reštartovali sme celú jednu z aplikačných vrstviev. Začali preteky s časom. Medzitým sa okolo nás zišiel stredný manažment a sledoval čo sa deje. Čas tikal, nervózita narastala, nepríjemné otázky viseli vo vzduchu, ale zatiaľ ich nikto nekládol, za čo som bol každému vďačný. Reštart nepomohol. Začínal som byť tak trochu zúfalý. Vtedy som vedel čítať v mysliach všetkým, ktorí tu stáli a zvyčajne sa v týchto priestoroch nezdržiavajú. „Keby ste sa toho nechytali, tak sme mohli byť v pohode. Na čo ste to robili?“ Toto sa im asi hnalo v hlavách a ja som si tiež v duchu odpovedal: „Dohnala ma k tomu proaktivita, uistenie mojich chalanov aj kolegov z iných tímov. Veril som im.“ Ale fakt, ktorý som nemohol poprieť bol, že sme to robiť nemuseli. Začali sme reštartovať celú aplikáciu, všetky aplikačné vrstvy, ktoré ju zabezpečovali. To už ale znamenalo dlhšiu odstávku a dopady aj na ďalšie tri menej kritické systémy. Čas sa ale zrazu roztikal aj tak trikrát rýchlejšie.

Celé to trvalo viac než hodinu. Službu sme obnovili. Ale cítil som sa fakt zle. Niečo som za tú dlhú hodinu stratil. Niečo, čo som si budoval možno aj roky. Niečo čo mi bude možno roky chýbať. Nezabudnem na to a neviem, či to nie je jedna z posledných kvapiek, kedy si budem musieť povedať, že už musím odísť, lebo čosi strácam. Dobrý pocit z práce, istotu, víziu, svoju pozíciu. A nahrádza ich len chladné sklamanie z jedného zléhom výkonu. Ostatný výkon, ktorý som tu ale za tie roky nechal, sa rozplynul v denno-dennej operatíve akoby nikdy ani nebol.

Väčšinu ďalšieho dňa sme samozrejme strávili hľadaním príčiny. Chceli sme pochopiť, čo sa tam udialo. Čo spôsobuje, že sa aplikácia pri reštartoch správa tak neočakávane. Simulovali sme v testoch rôzne scenáre, konzultovali s vývojármi a ostatnými špecialistami, ale nepodarilo sa nám zopakovať situáciu zo včera. Čiastočne sme ale už situácii porozumeli a z niektorých zistení sme boli dosť prekvapení a aj v ich svetle som si už bol istý, že sme plošný výpadok nemali. Aj keď všetko naň poukazovalo, nenastal. Spanikárili sme a v naháňačke o čas sme sa pustili do najrýchlejšieho možného riešenia, reštartov. Spanikárili sme, lebo ako sme zistili, o aplikácii ešte stále nevieme dosť na to, aby sme vedeli vždy z možných riešení vybrať to správne. Plošný výpadok sme si už potom spravili samy. Toto jednoducho asi ostane ako jeden z problémov, ktorým nikdy úplne neporozumiem. Každopádne z niektorých vecí sme sa poučili viacerí.

Dôsledok tohto celého? Firma stratila niečo z nezrealizovaného zisku, naši klienti možno niečo stratili tiež a ja som stratil dôveru niektorých kolegov. Jeden z najseniornejších a najrešpektovanejších ľudí v našom IT, ktorý bol v tom čase manažérom rozhodujúcim o realizácii aktivity, mne a aj celému IT týmto prestal dôverovať. Naučil som sa na vlastnej koži, že dôvera sa buduje dlho, ale stráca sa strašne rýchlo.