Kamēr visi svinēja manu dzimÅ”anas dienu, es laboju klasteru lÄ«dz rÄ«tam - un izstrādātāji vainoja man savas kļūdas

Kamēr visi svinēja manu dzimÅ”anas dienu, es laboju klasteru lÄ«dz rÄ«tam - un izstrādātāji vainoja man savas kļūdas

Å is ir stāsts, kas uz visiem laikiem mainÄ«ja manu pieeju devops darbam. Pirms Covid laikā, ilgi, ilgi pirms tiem, kad mēs ar puiÅ”iem tikai plānojām savu biznesu un ārÅ”tata darbu pēc nejauÅ”iem pasÅ«tÄ«jumiem, manā grozā iekrita viens piedāvājums.

Uzņēmums, kas to rakstÄ«ja, bija datu analÄ«zes uzņēmums. Viņa katru dienu apstrādāja tÅ«kstoÅ”iem pieprasÄ«jumu. Viņi ieradās pie mums ar vārdiem: puiÅ”i, mums ir ClickHouse, un mēs vēlamies automatizēt tā konfigurÄ“Å”anu un uzstādÄ«Å”anu. Mēs vēlamies, lai Ansible, Terraform, Docker un tas viss tiktu saglabāts Git. Mēs vēlamies četru mezglu kopu ar divām replikām katrā.

Tas ir standarta pieprasÄ«jums, to ir desmitiem, un jums ir nepiecieÅ”ams tikpat labs standarta risinājums. Mēs teicām ā€œokā€, un pēc 2-3 nedēļām viss bija gatavs. Viņi pieņēma darbu un sāka pāriet uz jaunu Clickhouse klasteru, izmantojot mÅ«su utilÄ«tu.

Neviens negribēja un nezināja, kā lāpÄ«t ar Clickhouse. Tad mēs domājām, ka tā ir viņu galvenā problēma, un tāpēc uzņēmuma degvielas uzpildes stacija vienkārÅ”i deva atļauju manai komandai pēc iespējas vairāk automatizēt darbu, lai pats vairs nekad uz turieni nebrauktu.

PavadÄ«jām gājienu, radās citi darbi - dublējumkopiju izveide un monitorings. Tajā paŔā brÄ«dÄ« Ŕīs kompānijas serviss apvienojās ar citu projektu, atstājot mums vienu no savējiem - LeonÄ«du - komandiera amatā. Lenija nebija Ä«paÅ”i apdāvināts puisis. VienkārÅ”s izstrādātājs, kurÅ” pēkŔņi tika iecelts par Clickhouse vadÄ«tāju. Å Ä·iet, ka Å”is bija viņa pirmais uzdevums kaut ko vadÄ«t, un milzÄ«gais pagodinājums lika viņam justies zvaigznei.

Kopā mēs sākām izveidot dublējumus. Es ierosināju nekavējoties izveidot sākotnējo datu dublējumu. VienkārÅ”i paņemiet to, aizveriet rāvējslēdzēju un eleganti iemetiet kādā c3. Neapstrādāti dati ir zelts. Bija vēl viena iespēja - izveidot paÅ”u tabulu dublējumu Clickhouse, izmantojot iesaldÄ“Å”anu un kopÄ“Å”anu. Bet Lenija nāca klajā ar savu risinājumu.

ViņŔ paziņoja, ka mums ir nepiecieÅ”ams otrs Clickhouse klasteris. Un turpmāk mēs ierakstÄ«sim datus divās klasteros - galvenajā un rezerves. Es viņam saku, Lenija, tā nebÅ«s rezerves kopija, bet gan aktÄ«va kopija. Un, ja dati sāks zaudēt ražoÅ”anā, tas pats notiks ar jÅ«su dublējumu.

Taču Lenija cieÅ”i satvēra stÅ«ri un atteicās klausÄ«ties manos argumentos. Mēs ilgi tērzējām ar viņu tērzÄ“Å”anā, bet nebija ko darÄ«t - Lenya vadÄ«ja projektu, mēs bijām tikai nolÄ«gti bērni no ielas.

Mēs uzraudzÄ«jām klastera stāvokli un iekasējām maksu tikai par administratoru darbu. TÄ«ra Clickhouse administrÄ“Å”ana, neiekļūstot datos. Klasteris bija pieejams, diski bija kārtÄ«bā, mezgli bija kārtÄ«bā.

Mēs nezinājām, ka Å”o pasÅ«tÄ«jumu saņēmām Å”ausmÄ«ga pārpratuma dēļ viņu komandā

Pārvaldnieks bija neapmierināts, ka Clickhouse darbojas lēni un dati dažreiz tika zaudēti. ViņŔ uzdeva savam degvielas uzpildes stacijai uzdevumu to izdomāt. ViņŔ to izdomāja pēc iespējas labāk un secināja, ka mums vienkārÅ”i jāautomatizē Clickhouse ā€” tas arÄ« viss. Bet, kā drÄ«z kļuva skaidrs, viņiem nemaz nebija vajadzÄ«ga devopu komanda.

Tas viss izrādījās ļoti, ļoti sāpīgi. Un pats aizskaroŔākais bija tas, ka tas bija manā dzimŔanas dienā.

Piektdienas vakars. Es veicu rezervāciju savā iecienītākajā vīna bārā un uzaicināju mājiniekus.

GandrÄ«z pirms izbraukÅ”anas saņemam uzdevumu izveidot alteru, izpildām, viss ok. Alter pagājis, Clickhouse apstiprināts. Mēs jau ejam uz bāru, un viņi mums raksta, ka nav pietiekami daudz datu. Sarēķinājām, ka it kā visa pietiek. Un viņi aizgāja svinēt.

Piektdien restorāns bija trokŔņains. PasÅ«tÄ«juÅ”i dzērienus un ēdienus, izgulējāmies uz dÄ«vāniem. Visu Å”o laiku manu vaļību lēnām pārpludināja ziņas. Viņi kaut ko rakstÄ«ja par datu trÅ«kumu. Nodomāju ā€“ rÄ«ts gudrāks par vakaru. ÄŖpaÅ”i Å”odien.

Tuvāk vienpadsmitiem viņi sāka zvanīt. Tas bija uzņēmuma vadītājs... "Laikam nolēmis mani apsveikt," es ļoti vilcinājos nodomāju un pacēlu klausuli.

Un es dzirdēju kaut ko lÄ«dzÄ«gu: ā€œJÅ«s saŔķobÄ«jāt mÅ«su datus! Es tev maksāju, bet nekas nelÄ«dz! JÅ«s bijāt atbildÄ«gs par dublÄ“Å”anu, un jÅ«s neko nedarÄ«jāt! Labosim!" - tikai vēl rupjāk.

- Zini ko, ej ārā! Å odien ir mana dzimÅ”anas diena, un tagad es dzerÅ”u, nevis nodarbojos ar jÅ«su jÅ«nija mājās gatavotajiem produktiem no stulbām un kociņiem!

Tas ir tas, ko es neteicu. Tā vietā es izņēmu klēpjdatoru un ķēros pie darba.

Nē, es bombardēju, es bombardēju kā ellē! ViņŔ tērzÄ“Å”anā ielēja kodÄ«gu ā€œes tev tā teicuā€ - jo dublējums, kas nemaz nebija rezerves kopija, protams, neko nesaglabāja.

Mēs ar zēniem izdomājām, kā manuāli pārtraukt ierakstÄ«Å”anu un visu pārbaudÄ«t. Mēs faktiski pārliecinājāmies, ka daži dati nav rakstÄ«ti.

Mēs pārtraucām ierakstÄ«Å”anu un saskaitÄ«jām notikumu skaitu, kas bija dienā. Viņi augÅ”upielādēja vairāk datu, no kuriem tikai treÅ”daļa netika reÄ£istrēta. TrÄ«s lauskas ar 2 replikām katrā. JÅ«s ievietojat 100.000 33.000 rindu ā€” XNUMX XNUMX netiek ierakstÄ«tas.

Bija pilnÄ«gs apjukums. Visi lika viens otram izdrāzties pa kārtu: Lenija devās uz turieni pirmā, pēc tam es un uzņēmuma dibinātājs. Tikai degvielas uzpildes stacija, kas pievienojās, mēģināja novirzÄ«t mÅ«su kliedzoÅ”os zvanus un saraksti, lai rastu problēmas risinājumu.

Neviens nesaprata, kas Ä«sti notiek

Mēs ar puiÅ”iem bijām vienkārÅ”i satriekti, kad sapratām, ka treÅ”daļa no visiem datiem ne tikai netika ierakstÄ«ti, bet arÄ« tika pazaudēti! IzrādÄ«jās, ka pasÅ«tÄ«jums uzņēmumā bija Ŕāds: pēc ievietoÅ”anas dati tika neatgriezeniski dzēsti, notikumi tika izniekoti pa partijām. Es iedomājos, kā Sergejs to visu pārvērtÄ«s pazaudētajos rubļos.

Mana dzimÅ”anas diena arÄ« tika izmesta miskastē. Sēdējām pie bāra un Ä£enerējām idejas, mēģinot atrisināt mÄ«klu, kas mums tika uzmesta. Clickhouse kriÅ”anas iemesls nebija acÄ«mredzams. VarbÅ«t tas ir tÄ«kls, varbÅ«t tas ir Linux iestatÄ«jumi. Jā, ko vien gribi, hipotēžu ir bijis pietiekami daudz.

Es nedevu izstrādātāja zvērestu, taču bija negodÄ«gi pamest puiÅ”us lÄ«nijas otrā galā, pat ja viņi par visu vainoja mÅ«s. Biju par 99% pārliecināts, ka problēma nav mÅ«su lēmumos, nevis mÅ«su pusē. 1% iespēja, ka mēs bijām sabojājuÅ”ies, bija satraukums. Bet neatkarÄ«gi no tā, kurā pusē bija problēma, tā bija jānovērÅ”. Atstāt klientus, lai arÄ« kas viņi bÅ«tu, ar tik Å”ausmÄ«gu datu noplÅ«di ir pārāk nežēlÄ«gi.

Pie restorāna galda strādājām lÄ«dz trijiem naktÄ«. Mēs pievienojām notikumus, ievietojiet atlasi un devāmies aizpildÄ«t nepilnÄ«bas. SaskrÅ«vējot datus, jÅ«s to darāt Ŕādi: ņemat iepriekŔējo dienu vidējos datus un ievietojat tos saskrÅ«vētajos.

Pēc trijiem naktÄ« mēs ar draugu devāmies uz manu māju un pasÅ«tÄ«jām alu no alkohola tirgus. Es sēdēju ar klēpjdatoru un Clickhouse problēmām, draugs man kaut ko stāstÄ«ja. Rezultātā viņŔ pēc stundas apvainojās, ka es strādāju un nedzeru ar viņu alu, un aizgāja. Klasika ā€“ biju Devops draugs.

Līdz pulksten 6:XNUMX es vēlreiz izveidoju tabulu, un dati sāka plūst. Viss darbojās bez zaudējumiem.

Tad bija grÅ«ti. Visi vainoja viens otru datu zaudÄ“Å”anā. Ja bÅ«tu notikusi jauna kļūda, esmu pārliecināts, ka bÅ«tu notikusi apÅ”aude

Å ajās cīņās mēs beidzot sākām saprast - uzņēmums domāja, ka mēs esam tie puiÅ”i, kas strādā ar datiem un uzrauga tabulu struktÅ«ru. Viņi sajauca administratorus ar tirgotājiem. Un viņi nāca mums jautāt kaut ko atŔķirÄ«gu no administratoriem.

Viņu galvenā sÅ«dzÄ«ba ir - kas pie velna, jÅ«s bijāt atbildÄ«gs par dublÄ“Å”anu un neveicāt to pareizi, jÅ«s turpinājāt izŔķērdēt datus. Un tas viss ar pārtinamiem paklājiņiem.

Es gribēju taisnÄ«bu. Es izraku korespondenci un pievienoju ikviena ekrānŔāviņus, kur LeonÄ«ds ar visiem spēkiem liek taisÄ«t izveidoto dublējumu. Viņu degvielas uzpildes stacija nostājās mÅ«su pusē pēc mana telefona zvana. Vēlāk Lenija savu vainu atzina.

Uzņēmuma vadÄ«tājs, gluži pretēji, nevēlējās vainot savus cilvēkus. Ekrānuzņēmumi un vārdi viņu neietekmēja. ViņŔ uzskatÄ«ja, ka, tā kā mēs Å”eit esam eksperti, mums ir jāpārliecina visi un jāuzstāj uz savu lēmumu. AcÄ«mredzot mÅ«su uzdevums bija iemācÄ«t Leniju un turklāt apiet viņu, kurÅ” tika iecelts par projekta vadÄ«tāju, tikt pie galvenā un personÄ«gi izgāzt viņam visas mÅ«su Å”aubas par dublējuma jēdzienu.

TērzÄ“Å”anā plÅ«da naids, slēpta un neslēpta agresija. Es nezināju, ko darÄ«t. Viss ir apstājies. Un tad viņi man ieteica vieglāko ceļu - uzrakstÄ«t personÄ«gu ziņu vadÄ«tājam un sarunāt ar viņu tikÅ”anos. Vasja, cilvēki reālajā dzÄ«vē nav tik ātri kā tērzÄ“Å”anā. Uz manu ziņu priekÅ”nieks atbildēja: nāc, nav jautājumu.

Tā bija biedējoŔākā tikÅ”anās manā karjerā. Mans sabiedrotais no klienta - STO - nevarēja atrast laiku. Es devos uz tikÅ”anos ar priekÅ”nieku un Ä»enu.

Atkal un atkal es savā galvā atkārtoju mÅ«su iespējamo dialogu. Man izdevās ierasties ļoti agri, pusstundu iepriekÅ”. Sāku nervozēt, izsmēķēju 10 cigaretes. Sapratu, tas arÄ« viss - drāžos viens. Es nespÄ“Å”u viņus pārliecināt. Un viņŔ iekāpa liftā.

Kamēr viņŔ piecēlās, viņŔ tik spēcÄ«gi sadÅ«ra Ŕķiltavu, ka to salauza.

Rezultātā Lenija sanāksmē nepiedalÄ«jās. Un mums ar priekÅ”nieku bija lieliska saruna par visu! Sergejs man pastāstÄ«ja par savām sāpēm. ViņŔ nevēlējās "automatizēt Clickhouse" - viņŔ gribēja "padarÄ«t vaicājumus darboties".

Es neredzēju kazu, bet labs puisis, noraizējies par savu biznesu, iegrimis darbā 24/7. TērzÄ“Å”ana mÅ«s bieži vien piesaista ļaundarus, nelieÅ”us un stulbus cilvēkus. Bet dzÄ«vē tie ir tādi cilvēki kā jÅ«s.

Sergejam nebija vajadzīgi pāris devopi. Viņu problēma izrādījās daudz lielāka.

Es teicu, ka varu atrisināt viņa problēmas - tas ir tikai pavisam cits darbs, un man ir draugs, kurÅ” tajā strādā. Ja mēs jau no paÅ”a sākuma bÅ«tu zinājuÅ”i, ka tas viņiem ir darÄ«jums, mēs no daudz kā bÅ«tu izvairÄ«juÅ”ies. Ir vēls, bet mēs sapratām, ka problēma slēpjas trakajā datu pārvaldÄ«bā, nevis infrastruktÅ«rā.

Mēs sarokojāmies, viņi mums paaugstināja atalgojumu divarpus reizes, bet ar nosacÄ«jumu, ka es ņemu pilnÄ«gi visu putru ar viņu datiem un Clickhouse sev. Liftā es sazinājos ar to paÅ”u DI puisi Maksu un savienoju viņu ar darbu. Vajadzēja noŔķūrēt visu klasteru.

Pieņemtajā projektā bija daudz atkritumu. Sākot ar minēto ā€œdublējumuā€. IzrādÄ«jās, ka Å”is pats ā€œrezervesā€ klasteris nebija izolēts. Viņi visu pārbaudÄ«ja, dažreiz pat nododot to ražoÅ”anā.

MÅ«su iekŔējie izstrādātāji ir izveidojuÅ”i savu pielāgoto datu ievietotāju. ViņŔ strādāja Ŕādi: viņŔ grupēja failus, palaida skriptu un apvienoja datus tabulā. Taču galvenā problēma bija tā, ka vienam vienkārÅ”am pieprasÄ«jumam tika pieņemts milzÄ«gs datu apjoms. PieprasÄ«jums pievienoja datus katru sekundi. Viss viena skaitļa dēļ - summa dienā.

IekŔējie izstrādātāji nepareizi izmantoja analÄ«zes rÄ«ku. Viņi devās uz grafānu un uzrakstÄ«ja savu karalisko lÅ«gumu. ViņŔ augÅ”upielādēja datus 2 nedēļas. IzrādÄ«jās skaists grafiks. Bet patiesÄ«bā datu pieprasÄ«jums bija ik pēc 10 sekundēm. Tas viss sakrājās rindā, jo Clickhouse vienkārÅ”i neizņēma apstrādi. Å eit tika paslēpts galvenais iemesls. Grafānā nekas nedarbojās, pieprasÄ«jumi stāvēja rindā, un pastāvÄ«gi ieradās veci, neatbilstoÅ”i dati.

Mēs pārkonfigurējām klasteri, pārveidojām ievietoÅ”anu. IekŔējie izstrādātāji pārrakstÄ«ja savu ā€œievietotājuā€, un tas sāka pareizi sadalÄ«t datus.

Makss veica pilnu infrastruktÅ«ras auditu. ViņŔ izklāstÄ«ja plānu pārejai uz pilnvērtÄ«gu aizmuguri. Bet tas uzņēmumam nederēja. Viņi gaidÄ«ja no Maksa maÄ£isku noslēpumu, kas ļautu viņiem strādāt vecmodÄ«gi, bet tikai efektÄ«vi. Lenija joprojām bija atbildÄ«ga par projektu, un viņŔ neko neiemācÄ«jās. No visa piedāvātā viņŔ atkal izvēlējās savu alternatÄ«vu. Kā vienmēr, Å”is bija visselektÄ«vākais... drosmÄ«gs lēmums. Lenija uzskatÄ«ja, ka viņa uzņēmumam ir Ä«paÅ”s ceļŔ. ĒrkŔķīgs un pilns ar aisbergiem.

PatiesÄ«bā tur mēs Ŕķīrāmies ā€” darÄ«jām, ko varējām.

Pilni zināŔanu un gudrÄ«bas no Ŕīs vēstures, mēs atvērām savu biznesu un izveidojām sev vairākus principus. Mēs nekad nesāksim darbu tagad tāpat kā toreiz.

Pēc Ŕī projekta mums pievienojās DJ Max, un mēs joprojām lieliski strādājam kopā. Clickhouse gadÄ«jums man iemācÄ«ja, kā pirms darba uzsākÅ”anas veikt pilnÄ«gu un rÅ«pÄ«gu infrastruktÅ«ras auditu. Mēs saprotam, kā viss darbojas, un tikai tad pieņemam uzdevumus. Un, ja agrāk uzreiz steigtos uzturēt infrastruktÅ«ru, tad tagad vispirms veicam vienreizēju projektu, kas palÄ«dz saprast, kā to novest darba kārtÄ«bā.

Un jā, mēs izvairāmies no projektiem ar traku infrastruktÅ«ru. Pat ja par lielu naudu, kaut vai draudzÄ«bas dēļ. Ir neizdevÄ«gi vadÄ«t slimus projektus. To apzināŔanās palÄ«dzēja mums augt. Vai nu vienreizējs projekts infrastruktÅ«ras sakārtoÅ”anai un tad uzturÄ“Å”anas lÄ«gums, vai vienkārÅ”i lidojam garām. Pāri kārtējam aisbergam.

PS Tātad, ja jums ir jautājumi par savu infrastruktūru, Jūtieties brīvi iesniegt pieprasījumu.

Mums ir 2 bezmaksas auditi mēnesī, iespējams, ka jūsu projekts būs viens no tiem.

Avots: www.habr.com

Pievieno komentāru