Å 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,
Mums ir 2 bezmaksas auditi mÄnesÄ«, iespÄjams, ka jÅ«su projekts bÅ«s viens no tiem.
Avots: www.habr.com