Kým všetci oslavovali moje narodeniny, ja som do rána opravoval cluster – a vývojári vinili svoje chyby na mňa

Kým všetci oslavovali moje narodeniny, ja som do rána opravoval cluster – a vývojári vinili svoje chyby na mňa

Tu je príbeh, ktorý navždy zmenil môj prístup k práci devops. V časoch pred Covidom, dávno, dávno pred nimi, keď sme s chalanmi len plánovali vlastný biznis a robili na voľnej nohe na náhodných zákazkách, mi padla do košíka jedna ponuka.

Spoločnosť, ktorá to napísala, bola spoločnosť zaoberajúca sa analýzou údajov. Denne vybavovala tisíce žiadostí. Prišli za nami so slovami: chlapci, máme ClickHouse a chceme automatizovať jeho konfiguráciu a inštaláciu. Chceme, aby Ansible, Terraform, Docker a to všetko bolo uložené v Git. Chceme zhluk štyroch uzlov, každý s dvoma replikami.

Je to štandardná požiadavka, sú ich desiatky a potrebujete rovnako dobré štandardné riešenie. Povedali sme „ok“ a po 2-3 týždňoch bolo všetko pripravené. Prijali prácu a začali sa presúvať do nového klastra Clickhouse pomocou nášho nástroja.

Nikto sa nechcel ani nevedel pohrať s Clickhouse. Potom sme si mysleli, že toto je ich hlavný problém, a preto servisná stanica spoločnosti jednoducho dala súhlas môjmu tímu, aby čo najviac zautomatizoval prácu, aby som tam už nikdy nešiel.

Sťahovanie sme sprevádzali, pribudli ďalšie úlohy – nastavenie záloh a monitoring. V tom istom momente sa servisná stanica tejto spoločnosti zlúčila s iným projektom a nám zostala jedna naša - Leonid - ako veliteľ. Lenya nebola veľmi nadaná. Jednoduchý vývojár, ktorý zrazu dostal na starosti Clickhouse. Zdá sa, že toto bola jeho prvá úloha niečo spravovať a vďaka tejto ohromnej pocty sa cítil ako očarený.

Spoločne sme sa pustili do zálohovania. Navrhol som okamžite zálohovať pôvodné údaje. Stačí vziať, zazipsovať a elegantne vhodiť do nejakej c3. Surové dáta sú zlato. Bola tu ešte jedna možnosť – zálohovať samotné tabuľky v Clickhouse pomocou zmrazenia a kopírovania. Lenya však prišla s vlastným riešením.

Oznámil, že potrebujeme druhý klaster Clickhouse. A odteraz budeme dáta zapisovať do dvoch klastrov – hlavného a záložného. Hovorím mu, Lenya, nebude to záloha, ale aktívna replika. A ak sa dáta začnú strácať v produkcii, to isté sa stane s vašou zálohou.

Lenya však pevne chytila ​​volant a odmietla počúvať moje argumenty. Dlho sme sa s ním bavili na chate, ale nedalo sa nič robiť - Lenya mala na starosti projekt, boli sme len zadané decká z ulice.

Monitorovali sme stav klastra a účtovali sme len prácu správcov. Čistá správa Clickhouse bez toho, aby ste sa dostali do údajov. Klaster bol dostupný, disky boli v poriadku, uzly boli v poriadku.

Netušili sme, že sme túto objednávku dostali kvôli hroznému nedorozumeniu v ich tíme

Manažér bol nešťastný, že Clickhouse je pomalý a údaje sa niekedy strácajú. Svojej čerpacej stanici dal za úlohu prísť na to. Prišiel na to, ako najlepšie vedel, a dospel k záveru, že potrebujeme len automatizovať Clickhouse – to je všetko. Ako sa však čoskoro ukázalo, tím devops vôbec nepotrebovali.

To všetko sa ukázalo byť veľmi, veľmi bolestivé. A najurážlivejšia vec bola, že to bolo v deň mojich narodenín.

Piatok večer. Urobil som rezerváciu v mojej obľúbenej vinárni a pozval som domácich.

Takmer pred odchodom dostávame úlohu vytvoriť alter, splníme, všetko je ok. Alter prešiel, clickhouse potvrdený. Už ideme do baru a píšu nám, že je málo dát. Vypočítali sme, že všetkého sa zdá byť dosť. A odišli oslavovať.

Reštaurácia bola v piatok hlučná. Po objednaní nápojov a jedla sme si ľahli na pohovky. Po celý ten čas moju slabosť pomaly zaplavovali správy. Napísali niečo o nedostatku údajov. Pomyslel som si – ráno je múdrejšie ako večer. Hlavne dnes.

Okolo jedenástej začali volať. Bol to šéf spoločnosti... „Asi sa rozhodol zablahoželať mi,“ pomyslel som si veľmi váhavo a zdvihol telefón.

A počul som niečo ako: „Pokazil si nám dáta! Platím vám, ale nič nefunguje! Boli ste zodpovední za zálohy a neurobili ste nič! Poďme to napraviť!" - len ešte drzejší.

- Vieš čo, vypadni! Dnes mám narodeniny a teraz budem piť a nebudem sa zaoberať vašimi júnovými domácimi výrobkami zo svinstva a tyčiniek!

To som nepovedal. Namiesto toho som vytiahol notebook a pustil sa do práce.

Nie, bombardoval som, bombardoval som ako čert! Do chatu nalial žieravinu „Hovoril som ti to“ – pretože záloha, ktorá zálohou vôbec nebola – samozrejme nič nezachránila.

S chlapcami sme vymysleli, ako manuálne zastaviť nahrávanie a všetko skontrolovať. Vlastne sme sa uistili, že niektoré údaje neboli zapísané.

Zastavili sme nahrávanie a spočítali sme počet udalostí, ktoré tam boli za deň. Nahrali viac údajov, z ktorých len tretina nebola zaznamenaná. Tri črepy po 2 replikách. Vložíte 100.000 33.000 riadkov - XNUMX XNUMX sa nezaznamená.

Nastal úplný zmätok. Všetci si striedavo hovorili, aby sa vysrali: Prvá tam išla Lenya, za ňou ja a zakladateľ firmy. Iba čerpacia stanica, ktorá sa pripojila, sa snažila presmerovať naše kričiace hovory a korešpondenciu smerom k hľadaniu riešenia problému.

Nikto nechápal, čo sa vlastne deje

Chlapci a ja sme boli jednoducho ohromení, keď sme si uvedomili, že tretina všetkých údajov nielenže nebola zaznamenaná, ale bola aj stratená! Ukázalo sa, že poradie vo firme bolo nasledovné: po vložení boli údaje nenávratne vymazané, udalosti boli premrhané v dávkach. Predstavoval som si, ako by to Sergej premenil na stratené ruble.

Moje narodeniny boli tiež vyhodené do koša. Sedeli sme pri bare a vytvárali nápady a pokúšali sa vyriešiť hádanku, ktorá na nás bola hodená. Dôvod pádu Clickhouse nebol zrejmý. Možno je to sieťou, možno nastaveniami Linuxu. Áno, čo chcete, hypotéz už bolo dosť.

Nezložil som prísahu vývojára, ale bolo nečestné opustiť chlapcov na druhom konci linky - aj keď nás obviňovali zo všetkého. Bol som si na 99% istý, že problém nespočíva v našich rozhodnutiach, nie na našej strane. 1% šanca, že sme to pokazili, horela úzkosťou. Ale bez ohľadu na to, na ktorej strane bol problém, bolo potrebné ho opraviť. Nechať zákazníkov, bez ohľadu na to, kto sú, s takým hrozným únikom dát, je príliš kruté.

Pracovali sme pri stole v reštaurácii do tretej rána. Pridali sme udalosti, vložili výber a išli sme vyplniť medzery. Keď posereš údaje, urobíš to takto: vezmeš priemerné údaje za predchádzajúce dni a vložíš ich do posratých.

Po tretej ráno sme išli s kamarátom ku mne domov a objednali si pivo z alkoholového trhu. Sedel som s notebookom a problémami s Clickhouse, kamarát mi niečo hovoril. V dôsledku toho sa po hodine urazil, že pracujem a nepijem s ním pivo, a odišiel. Klasika – bol som kamarát s Devopsom.

O 6:XNUMX som znova vytvoril tabuľku a údaje sa začali zaplavovať. Všetko fungovalo bez akýchkoľvek strát.

Potom to už bolo ťažké. Všetci sa navzájom obviňovali zo straty dát. Ak by sa stala nová chyba, som si istý, že by došlo k prestrelke

V týchto súbojoch sme si konečne začali rozumieť – spoločnosť si myslela, že my sme tí chlapi, ktorí pracujú s dátami a sledujú štruktúru tabuliek. Pomýlili si adminov s dílermi. A prišli sa nás opýtať na niečo iné od adminov.

Ich hlavná sťažnosť je - čo do pekla, boli ste zodpovední za zálohy a nerobili ste ich správne, naďalej ste plytvali údajmi. A to všetko s prevíjacími karimatkami.

Chcel som spravodlivosť. Vyhrabal som korešpondenciu a priložil screenshoty všetkých, kde ich Leonid s vypätím všetkých síl núti urobiť zálohu, ktorá bola vytvorená. Ich servisná stanica sa po mojom telefonáte postavila na našu stranu. Neskôr Lenya priznala svoju vinu.

Šéf firmy, naopak, nechcel viniť vlastných ľudí. Snímky obrazovky a slová naňho nemali žiadny vplyv. Veril, že keďže sme tu odborníci, musíme všetkých presvedčiť a trvať na svojom rozhodnutí. Našou úlohou bolo zrejme naučiť Lenya a navyše obísť jeho, ktorý bol vymenovaný za projektového manažéra, dostať sa k tomu hlavnému a osobne na ňom vyliať všetky naše pochybnosti o koncepte záloh.

Z chatu sršala nenávisť, skrytá a neskrývaná agresivita. Nevedel som, čo mám robiť. Všetko sa zastavilo. A potom mi poradili najjednoduchší spôsob – napísať manažérovi osobnú správu a dohodnúť si s ním stretnutie. Vasya, ľudia v skutočnom živote nie sú takí rýchli ako na chate. Šéf odpovedal na moju správu: poď, žiadna otázka.

Bolo to najdesivejšie stretnutie v mojej kariére. Môj spojenec od klienta – STO – si nevedel nájsť čas. Išiel som na stretnutie so šéfom a Lenou.

Znovu a znovu som si v hlave prehrával náš možný dialóg. Podarilo sa mi prísť veľmi skoro, pol hodiny vopred. Začal som byť nervózny, vyfajčil som 10 cigariet. Pochopil som, to je ono - kurvam sám. Nepodarí sa mi ich presvedčiť. A nastúpil do výťahu.

Keď vstával, udrel do zapaľovača tak silno, že ho zlomil.

Výsledkom bolo, že Lenya nebola na stretnutí. A o všetkom sme sa super porozprávali so šéfom! Sergej mi povedal o svojej bolesti. Nechcel „automatizovať Clickhouse“ – chcel „sfunkčniť dopyty“.

Nevidel som kozu, ale dobrého chlapa, ktorý sa obával o svoje podnikanie a bol ponorený do práce 24 hodín denne, 7 dní v týždni. Chat nás často priťahuje darebákov, darebákov a hlúpych ľudí. Ale v živote sú to ľudia ako vy.

Sergej nepotreboval na prenájom pár devotov. Problém, ktorý mali, sa ukázal byť oveľa väčší.

Povedal som, že môžem vyriešiť jeho problémy - je to úplne iná práca a mám priateľa, ktorý pre ňu pracuje. Keby sme od začiatku vedeli, že je to pre nich obchod, mnohým by sme sa vyhli. Je neskoro, ale uvedomili sme si, že problém spočíva v mizernej správe údajov, nie v infraštruktúre.

Podali sme si ruky, zvýšili nám plat dvaapolkrát, ale pod podmienkou, že si celý ten neporiadok s ich dátami a Clickhouse vezmem pre seba. Vo výťahu som komunikoval s tým istým DI chlapíkom Maxom a pripojil som ho k práci. Bolo potrebné lopatou odhrnúť celý klaster.

V prijatom projekte bolo veľa odpadu. Počnúc spomínanou „zálohou“. Ukázalo sa, že rovnaký „záložný“ klaster nebol izolovaný. Všetko na ňom testovali, niekedy aj zaviedli do výroby.

Naši interní vývojári vytvorili svoj vlastný vkladač údajov. Pracoval takto: dávkoval súbory, spustil skript a zlúčil údaje do tabuľky. Hlavným problémom však bolo, že na jednu jednoduchú požiadavku bolo prijaté obrovské množstvo údajov. Žiadosť pripájala údaje každú sekundu. Všetko kvôli jednému číslu - sume za deň.

Interní vývojári použili analytický nástroj nesprávne. Išli do grafana a spísali svoju kráľovskú žiadosť. Nahrával dáta 2 týždne. Ukázalo sa, že je to krásny graf. Ale v skutočnosti bola požiadavka na údaje každých 10 sekúnd. To všetko sa hromadilo v rade, pretože Clickhouse jednoducho nevybral spracovanie. Tu sa skrýval hlavný dôvod. V Grafane nič nefungovalo, požiadavky stáli v rade a neustále prichádzali staré nepodstatné dáta.

Prekonfigurovali sme klaster, prerobili vloženie. Interní vývojári prepísali svoj „vkladač“ a ten začal dáta správne zdieľať.

Max vykonal úplný audit infraštruktúry. Načrtol plán prechodu na plnohodnotný backend. To ale firme nevyhovovalo. Od Maxa očakávali magické tajomstvo, ktoré im umožní pracovať staromódnym spôsobom, ale iba efektívne. Lenya mala stále na starosti projekt a nič sa nenaučil. Zo všetkého, čo sa ponúkalo, si opäť vybral svoju alternatívu. Ako vždy, toto bolo najselektívnejšie... odvážne rozhodnutie. Lenya verila, že jeho spoločnosť má špeciálnu cestu. Tŕnisté a plné ľadovcov.

V skutočnosti sme sa tam rozišli – robili sme, čo sme mohli.

Plní vedomostí a múdrosti z tejto histórie sme otvorili vlastný podnik a vytvorili si pre seba niekoľko zásad. Už nikdy nezačneme pracovať rovnakým spôsobom ako vtedy.

Po tomto projekte sa k nám pridal DJ Max a dodnes sa nám skvele spolupracuje. Prípad Clickhouse ma naučil, ako vykonať úplný a dôkladný audit infraštruktúry pred začatím práce. Chápeme, ako všetko funguje a až potom prijímame úlohy. A ak by sme sa predtým okamžite ponáhľali s údržbou infraštruktúry, teraz najprv urobíme jednorazový projekt, ktorý nám pomôže pochopiť, ako ju uviesť do prevádzkyschopného stavu.

A áno, vyhýbame sa projektom s mizernou infraštruktúrou. Aj keď za veľa peňazí, aj keď z kamarátstva. Prevádzkovať choré projekty je nerentabilné. Uvedomenie si toho nám pomohlo rásť. Buď jednorazový projekt dať do poriadku infraštruktúru a potom zmluva na údržbu, alebo len tak preletíme. Za ďalším ľadovcom.

PS Takže ak máte otázky týkajúce sa vašej infraštruktúry, pokojne zanechajte žiadosť.

Máme 2 bezplatné audity mesačne, možno aj váš projekt bude jedným z nich.

Zdroj: hab.com

Pridať komentár