Amíg mindenki a születésnapomat ünnepelte, én reggelig javítottam a klasztert – és a fejlesztők engem hibáztattak

Amíg mindenki a születésnapomat ünnepelte, én reggelig javítottam a klasztert – és a fejlesztők engem hibáztattak

Íme egy történet, amely örökre megváltoztatta a devops munkához való hozzáállásomat. A Covid előtti időkben, jóval előttük, amikor a srácokkal még csak a saját üzletünket tervezgettük, és véletlenszerű megrendelésekre szabadúszóként dolgoztunk, egy ajánlat a kosaramba került.

A cég, amely ezt írta, egy adatelemző cég volt. Naponta több ezer kérést dolgozott fel. A következő szavakkal kerestek meg minket: srácok, van ClickHouse-unk, és szeretnénk automatizálni a beállítását és telepítését. Azt akarjuk, hogy az Ansible, a Terraform, a Docker és mindez a Gitben legyen tárolva. Négy csomópontból álló fürtöt akarunk két-két replikával.

Ez egy szabványos kérés, több tucat van belőlük, és egy ugyanolyan jó szabványos megoldásra van szüksége. Mondtuk, hogy „ok”, és 2-3 hét múlva minden készen volt. Elfogadták az állást, és a mi segédprogramunk segítségével új Clickhouse-fürtbe költöztek.

Senki sem akart és nem tudott a Clickhouse-nal bütykölni. Aztán úgy gondoltuk, hogy ez a fő problémájuk, és ezért a cég szervize egyszerűen megadta a lehetőséget a csapatomnak, hogy minél jobban automatizálják a munkát, hogy ne menjek oda többet.

Kísértettük a költözést, más feladatok is felmerültek - biztonsági mentések felállítása és monitorozás. Ugyanebben a pillanatban ennek a cégnek a töltőállomása összeolvadt egy másik projekttel, így a sajátunk közül Leonyid maradt a parancsnokunk. Lenya nem volt túl tehetséges srác. Egy egyszerű fejlesztő, aki hirtelen a Clickhouse élére került. Úgy tűnik, ez volt az első megbízása, hogy valamit menedzseljen, és az elsöprő megtiszteltetéstől sztár lett.

Közösen nekiláttunk a biztonsági mentések készítésének. Azt javasoltam, hogy azonnal készítsünk biztonsági másolatot az eredeti adatokról. Csak vedd le, cipzározd be és elegánsan dobd be valami c3-ba. A nyers adat arany. Volt egy másik lehetőség – a táblák biztonsági mentése a Clickhouse-ban, lefagyasztással és másolással. De Lenya előállt a saját megoldásával.

Bejelentette, hogy szükségünk van egy második Clickhouse klaszterre. És ezentúl két fürtbe írjuk az adatokat - a fő és a biztonsági másolatba. Mondom neki, Lenya, ez nem tartalék lesz, hanem aktív mása. És ha az adatok elvesznek az éles üzemben, ugyanez történik a biztonsági mentésben is.

De Lenya erősen megragadta a kormányt, és nem volt hajlandó meghallgatni az érveimet. Sokáig csevegtünk vele a chaten, de nem volt mit tenni - Lenya volt a projekt felelős, csak felbérelt gyerekek voltunk az utcáról.

Figyeltük a klaszter állapotát, és csak az adminisztrátorok munkájáért számoltunk fel. Tiszta Clickhouse adminisztráció anélkül, hogy belemenne az adatokba. A fürt elérhető volt, a lemezek rendben voltak, a csomópontok rendben voltak.

Nem tudtuk, hogy a csapatukon belüli szörnyű félreértés miatt kaptuk ezt a megbízást

A menedzser elégedetlen volt amiatt, hogy a Clickhouse lassú, és időnként elvesztek az adatok. A benzinkút feladatává tette, hogy kitalálja. A lehető legjobban kitalálta, és arra a következtetésre jutott, hogy csak automatizálnunk kell a Clickhouse-t – ez minden. De mint hamar kiderült, egyáltalán nem volt szükségük egy csapat devopra.

Mindez nagyon-nagyon fájdalmasnak bizonyult. És a legsértőbb az volt, hogy a születésnapomon volt.

Péntek este. Foglaltam a kedvenc borozómban, és meghívtam a barátokat.

Szinte indulás előtt kapunk egy alter készítési feladatot, azt teljesítjük, minden rendben. Alter átment, Clickhouse megerősítve. Már megyünk a bárhoz, és azt írják nekünk, hogy nincs elég adat. Kiszámoltuk, hogy minden elégnek tűnik. És elmentek ünnepelni.

Az étterem zajos volt pénteken. Miután rendeltünk italokat és ételeket, a kanapékon hevertünk. Ezalatt a lazaságomat lassan elárasztották az üzenetek. Írtak valamit az adathiányról. Azt hittem - a reggel bölcsebb, mint az este. Főleg ma.

Tizenegyhez közeledve telefonálni kezdtek. A cég vezetője volt... „Valószínűleg úgy döntött, hogy gratulálok” – gondoltam nagyon tétován, és felvettem a telefont.

És valami ilyesmit hallottam: „Elcsavarta az adatainkat! Fizetek, de semmi sem működik! Te voltál a felelős a biztonsági mentésekért, és egy rohadt dolgot sem csináltál! Javítsuk meg!" - csak még durvábban.

- Tudod mit, menj a picsába! Ma van a születésnapom, és most iszom, és nem veszek részt a júniusi házi készítésű termékeiddel vacakokból és pálcikákból!

Ez az, amit nem mondtam. Ehelyett elővettem a laptopomat, és hozzáláttam a munkához.

Nem, bombáztam, pokolian bombáztam! Maró „Megmondtam” szót öntött a chatbe - mert a biztonsági mentés, amely egyáltalán nem volt biztonsági másolat, természetesen nem mentett semmit.

A fiúkkal kitaláltuk, hogyan állítsuk le manuálisan a felvételt és ellenőrizzünk mindent. Valójában megbizonyosodtunk arról, hogy az adatok egy része nem íródott.

Leállítottuk a felvételt, és megszámoltuk a napi események számát. Több adatot töltöttek fel, aminek csak egyharmadát nem rögzítették. Három szilánk, egyenként 2 replikával. 100.000 33.000 sort szúr be – XNUMX XNUMX nem kerül rögzítésre.

Teljes volt a zűrzavar. Mindenki felváltva mondta egymásnak, hogy dugjanak: Lenya ment oda először, majd én és a cég alapítója. Kiabálós hívásainkat és levelezésünket csak a csatlakozó szerviz próbálta a probléma megoldására terelni.

Senki sem értette, mi történik valójában

A srácok és én egyszerűen ledöbbentünk, amikor rájöttünk, hogy az összes adat harmada nemcsak hogy nem került rögzítésre, hanem elveszett is! Kiderült, hogy a cégnél a sorrend a következő volt: a beillesztést követően az adatok visszavonhatatlanul törlődnek, az események kötegesen vesztek kárba. Elképzeltem, hogyan váltja Szergej mindezt elveszett rubelekre.

A születésnapomat is kidobták a kukába. A bárpultnál ültünk és ötleteket generáltunk, próbáltuk megfejteni a ránk vetett rejtvényt. A Clickhouse bukásának oka nem volt nyilvánvaló. Talán a hálózat, talán a Linux beállításai. Igen, amit akarsz, elég hipotézis volt.

Nem tettem le a fejlesztői esküt, de tisztességtelen volt elhagyni a vonal másik végén lévő srácokat – még akkor is, ha minket hibáztattak mindenért. 99%-ig biztos voltam benne, hogy a probléma nem a mi döntéseinkben van, nem a mi oldalunkon. Az 1% esélye annak, hogy elrontottuk, égett a szorongástól. De mindegy, melyik oldalon volt a baj, meg kellett javítani. Túl kegyetlen dolog ilyen szörnyű adatszivárogtatással hagyni az ügyfeleket, függetlenül attól, hogy kik azok.

Hajnali háromig dolgoztunk az étterem asztalánál. Hozzáadtuk az eseményeket, beszúrtuk a select-et, és elindultunk a hiányosságok kitöltésére. Amikor összecsavarod az adatokat, ezt így csinálod: kiveszed az előző napok átlagadatait, és beszúrod a kicsavartakba.

Hajnali három után a barátommal elmentünk a házamba, és rendeltünk egy sört az alkoholpiacról. Egy laptoppal ültem, és Clickhouse-problémákkal küzdöttem, egy barátom mondott nekem valamit. Ennek hatására egy óra múlva megsértődött, hogy dolgozom és nem söröztem vele, és elment. Klasszikus – Devops barátja voltam.

Reggel 6-ra újra létrehoztam a táblázatot, és elkezdtek özönleni az adatok. Minden veszteség nélkül működött.

Aztán nehéz volt. Mindenki egymást hibáztatta az adatvesztésért. Ha új hiba történt volna, biztos vagyok benne, hogy lövöldözés történt volna

Ezekben a harcokban végre kezdtük megérteni – a cég úgy gondolta, hogy mi vagyunk azok a srácok, akik adatokkal dolgozunk és figyeljük a táblák szerkezetét. Összekeverték az adminokat a kereskedőkkel. És azért jöttek, hogy valami mást kérdezzenek tőlünk, mint az adminok.

A fő kifogásuk az, hogy mi a fene, Ön volt a felelős a biztonsági mentésekért, és nem csinálta meg azokat megfelelően, továbbra is pazarolta az adatokat. És mindezt visszacsévélő szőnyegekkel.

igazságot akartam. Mindenkiről előástam a levelezést és a mellékelt screenshotokat, ahol Leonyid minden erejével arra kényszeríti őket, hogy készítsenek biztonsági másolatot. A szervizük a telefonhívásom után mellénk állt. Később Lenya beismerte bűnösségét.

A cég vezetője éppen ellenkezőleg, nem a saját embereit akarta hibáztatni. A képernyőképek és a szavak nem voltak hatással rá. Úgy vélte, mivel itt szakértők vagyunk, mindenkit meg kell győznünk, és ragaszkodnunk kell a döntésünkhöz. Nyilván az volt a feladatunk, hogy a projektmenedzsernek kinevezett Lenyát megtanítsuk, és ráadásul megkerüljük, hogy rátérjen a lényegre, és személyesen öntsük ki neki a biztonsági mentés fogalmával kapcsolatos kételyeinket.

A csevegés áradt a gyűlölettől, a rejtett és nem titkolt agressziótól. Nem tudtam, mit tegyek. Minden megtorpant. És akkor azt tanácsolták nekem a legegyszerűbb módot - írjak személyes üzenetet a menedzsernek, és beszéljek meg vele egy találkozót. Vasya, az emberek a való életben nem olyan gyorsak, mint a chaten. A főnök azt válaszolta üzenetemre: gyere, nincs kérdés.

Ez volt pályafutásom legfélelmetesebb találkozója. Az ügyfél szövetségese - STO - nem talált rá időt. Elmentem a találkozóra a főnökkel és Lenával.

Újra és újra lejátszottam a lehetséges párbeszédünket a fejemben. Nagyon korán, fél órával korábban sikerült megérkeznem. Kezdtem ideges lenni, elszívtam 10 cigit, megértettem, ennyi - rohadtul egyedül vagyok. Nem fogom tudni meggyőzni őket. És belépett a liftbe.

Amíg felkelt, akkorát ütött az öngyújtóra, hogy eltörte.

Ennek eredményeként Lenya nem volt jelen az ülésen. És remekül elbeszélgettünk mindenről a főnökkel! Szergej mesélt a fájdalmáról. Nem "automatizálni" akarta a Clickhouse-t, hanem "működőképessé tenni a lekérdezéseket".

Nem kecskét láttam, hanem egy jó srácot, aki aggódott a dolgaiért, elmerült a nap 24 órájában a munkában. A chat gyakran gazembereket, gazembereket és buta embereket vonz belőlünk. De az életben ezek olyan emberek, mint te.

Szergejnek nem kellett pár bérelt devop. Kiderült, hogy a probléma sokkal nagyobb.

Azt mondtam, hogy meg tudom oldani a problémáit – ez csak egy teljesen más munka, és van egy barátom, aki ezért dolgozik. Ha kezdettől fogva tudtuk volna, hogy ez nekik üzlet, sok mindent elkerültünk volna. Késő, de rájöttünk, hogy a probléma az elcseszett adatkezelésben van, nem az infrastruktúrában.

Kezet fogtunk, két és félszer megemelték a fizetésünket, de azzal a feltétellel, hogy az adataikkal és a Clickhouse-szal teljesen magamra veszem az egész káoszt. A liftben kommunikáltam ugyanazzal a DI sráccal, Max-szel, és összekapcsoltam a munkával. Az egész klasztert lapátolni kellett.

Az elfogadott projektben sok volt a szemét. Kezdve az említett „biztonsági mentéssel”. Kiderült, hogy ugyanez a „tartalék” klaszter nem elszigetelt. Mindent teszteltek rajta, néha gyártásba is helyezték.

Házon belüli fejlesztőink elkészítették saját egyedi adatbeszúrójukat. Így dolgozott: kötegelt fájlokat, lefuttatta a szkriptet, és az adatokat egy táblázatba egyesítette. A fő probléma azonban az volt, hogy egy egyszerű kéréshez hatalmas mennyiségű adatot fogadtak el. A kérés másodpercenként egyesítette az adatokat. Mindezt egy szám kedvéért - a napi összeget.

A házon belüli fejlesztők helytelenül használták az elemző eszközt. Elmentek a grafanába, és megírták a királyi kérésüket. 2 hétig töltött fel adatokat. Gyönyörű grafikon lett belőle. De a valóságban az adatkérés 10 másodpercenként volt. Mindez sorban halmozódott fel, mert a Clickhouse egyszerűen nem vette ki a feldolgozást. Itt volt elrejtve a fő ok. A Grafanában semmi sem működött, a kérések sorban álltak, és folyamatosan érkeztek a régi, irreleváns adatok.

Újrakonfiguráltuk a klasztert, újraírtuk a beillesztést. A házon belüli fejlesztők átírták a „beszúrójukat”, és az megfelelően elkezdte az adatok felosztását.

Max teljes körű infrastruktúra-ellenőrzést végzett. Felvázolta a teljes értékű háttérrendszerre való átállás tervét. De ez nem felelt meg a cégnek. Maxtől egy mágikus titkot vártak, amely lehetővé teszi számukra, hogy a régi módon dolgozzanak, de csak hatékonyan. Lenya még mindig a projekt vezetője volt, és nem tanult semmit. A felkínált összes közül ismét az alternatívát választotta. Mint mindig, most is ez volt a legválogatósabb... merész döntés. Lenya úgy gondolta, hogy cégének különleges útja van. Tüskés és tele jéghegyekkel.

Valójában itt váltunk el – megtettük, amit tudtunk.

Tele tudással és bölcsességgel ebből a történelemből, megnyitottuk saját üzletünket, és számos alapelvet alakítottunk ki magunknak. Soha nem kezdjük el úgy a munkát most, mint akkor.

A projekt után DJ Max csatlakozott hozzánk, és még mindig nagyszerűen dolgozunk együtt. A Clickhouse-ügy megtanított arra, hogyan kell teljes és alapos infrastruktúra-auditot végezni a munka megkezdése előtt. Megértjük, hogyan működik minden, és csak ezután fogadjuk el a feladatokat. És ha korábban azonnal rohantunk volna az infrastruktúra karbantartásával, most először egy egyszeri projektet végzünk, ami segít megérteni, hogyan hozzuk működőképes állapotba.

És igen, kerüljük a gagyi infrastruktúrával rendelkező projekteket. Még ha sok pénzért is, még ha barátságból is. Nem jövedelmező beteg projekteket futtatni. Ennek felismerése segített a növekedésben. Vagy egyszeri projekt az infrastruktúra rendbetételére, majd karbantartási szerződés, vagy csak úgy repülünk. Egy újabb jéghegyen túl.

PS Tehát, ha kérdései vannak az infrastruktúrával kapcsolatban, Nyugodtan nyújtson be kérelmet.

Havonta 2 ingyenes auditunk van, talán az Ön projektje lesz az egyik ilyen.

Forrás: will.com

Hozzászólás