Ndërsa të gjithë po festonin ditëlindjen time, unë po rregulloja grupin deri në mëngjes - dhe zhvilluesit fajësuan mua për gabimet e tyre

Ndërsa të gjithë po festonin ditëlindjen time, unë po rregulloja grupin deri në mëngjes - dhe zhvilluesit fajësuan mua për gabimet e tyre

Këtu është një histori që ndryshoi përgjithmonë qasjen time ndaj punës së devops. Në kohët e para-Covid-it, shumë, shumë kohë përpara tyre, kur djemtë dhe unë sapo po planifikonim biznesin tonë dhe po bënim punë të pavarur me porosi të rastësishme, një ofertë ra në karrocën time.

Kompania që e shkroi këtë ishte një kompani analitike e të dhënave. Ajo përpunonte mijëra kërkesa çdo ditë. Ata na erdhën me fjalët: djema, ne kemi ClickHouse dhe duam të automatizojmë konfigurimin dhe instalimin e tij. Ne duam që Ansible, Terraform, Docker dhe të gjitha të ruhen në Git. Ne duam një grup prej katër nyjeve me dy kopje secila.

Është një kërkesë standarde, ka dhjetëra prej tyre dhe ju duhet një zgjidhje standarde po aq e mirë. Ne thamë “ok”, dhe pas 2-3 javësh gjithçka ishte gati. Ata e pranuan punën dhe filluan të lëviznin në një grup të ri Clickhouse duke përdorur programin tonë.

Askush nuk donte apo dinte se si të ndërhynte me Clickhouse. Atëherë menduam se ky ishte problemi i tyre kryesor, dhe për këtë arsye stacioni i shërbimit të kompanisë thjesht i dha dritën jeshile ekipit tim për të automatizuar punën sa më shumë që të ishte e mundur, në mënyrë që të mos shkoja më kurrë atje.

Ne e shoqëruam lëvizjen, lindën detyra të tjera - vendosja e kopjeve rezervë dhe monitorimi. Në të njëjtin moment, servisi i kësaj kompanie u bashkua me një projekt tjetër, duke na lënë si komandant njërin tonë - Leonidin. Lenya nuk ishte një djalë shumë i talentuar. Një zhvillues i thjeshtë i cili u vu papritmas në krye të Clickhouse. Duket se kjo ishte detyra e tij e parë për të menaxhuar diçka dhe nderi dërrmues e bëri të ndihej i goditur nga yjet.

Së bashku filluam të bëjmë kopje rezervë. Unë sugjerova të kopjoni menjëherë të dhënat origjinale. Thjesht merrni, mbylleni me zinxhir dhe hidheni në mënyrë elegante në një c3. Të dhënat e papërpunuara janë ari. Kishte një mundësi tjetër - të kopjoni vetë tabelat në Clickhouse, duke përdorur një ngrirje dhe kopjim. Por Lenya doli me zgjidhjen e tij.

Ai njoftoi se ne kemi nevojë për një grup të dytë Clickhouse. Dhe tani e tutje ne do të shkruajmë të dhëna në dy grupime - kryesore dhe rezervë. Unë i them atij, Lenya, nuk do të jetë një kopje rezervë, por një kopje aktive. Dhe nëse të dhënat fillojnë të humbasin në prodhim, e njëjta gjë do të ndodhë në rezervimin tuaj.

Por Lenya kapi timonin fort dhe nuk pranoi të dëgjonte argumentet e mia. Ne biseduam me të për një kohë të gjatë në bisedë, por nuk kishte asgjë për të bërë - Lenya ishte në krye të projektit, ne thjesht ishim të punësuar fëmijë nga rruga.

Ne monitoruam gjendjen e grupit dhe tarifuam vetëm për punën e administratorëve. Administrim i pastër Clickhouse pa hyrë në të dhëna. Grupi ishte i disponueshëm, disqet ishin në rregull, nyjet ishin në rregull.

Nuk e dinim se e morëm këtë urdhër për shkak të një keqkuptimi të tmerrshëm brenda ekipit të tyre

Menaxheri ishte i pakënaqur që Clickhouse ishte i ngadalshëm dhe të dhënat ndonjëherë humbeshin. Ai i vuri stacionit të tij të shërbimit detyrën për ta kuptuar atë. Ai e kuptoi sa më mirë që mundi dhe arriti në përfundimin se ne thjesht duhej të automatizonim Clickhouse - kjo është e gjitha. Por, siç u bë e qartë shpejt, ata nuk kishin fare nevojë për një ekip devopësh.

E gjithë kjo doli të ishte shumë, shumë e dhimbshme. Dhe gjëja më fyese ishte se ishte në ditëlindjen time.

të premten në mbrëmje. Bëra një rezervim në barin tim të preferuar të verës dhe ftova mikeshat.

Pothuajse para nisjes, ne marrim një detyrë për të krijuar një alter, e përfundojmë atë, gjithçka është në rregull. Ndryshimi kaloi, clickhouse u konfirmua. Tashmë po shkojmë në lokal dhe na shkruajnë se nuk ka të dhëna të mjaftueshme. Llogaritëm se gjithçka duket se është e mjaftueshme. Dhe ata u larguan për të festuar.

Restoranti ishte i zhurmshëm të premten. Pasi porositëm pije dhe ushqim, u ulëm në divane. Gjatë gjithë kësaj kohe, plogështi im u vërshua ngadalë me mesazhe. Ata shkruan diçka për mungesën e të dhënave. Mendova - mëngjesi është më i mençur se mbrëmja. Sidomos sot.

Afër njëmbëdhjetë filluan të telefonojnë. Ishte kreu i kompanisë... “Me siguri vendosi të më përgëzonte”, mendova me shumë hezitim dhe mora telefonin.

Dhe dëgjova diçka të tillë: “Ti na i prishe të dhënat! Unë ju paguaj, por asgjë nuk funksionon! Ti ishe përgjegjës për kopjet rezervë dhe nuk bëre asgjë! Le ta rregullojmë!" - vetëm edhe më i vrazhdë.

- E dini çfarë, dilni jashtë! Sot është ditëlindja ime, dhe tani do të pi, dhe nuk do të angazhohem në produktet tuaja shtëpiake të qershorit nga katrahurat dhe shkopinjtë!

Kjo është ajo që nuk thashë. Në vend të kësaj, nxora laptopin dhe nisa punën.

Jo, kam bombarduar, kam bombarduar si ferr! Ai derdhi kaustike "Të thashë kështu" në bisedë - sepse kopja rezervë, e cila nuk ishte aspak një kopje rezervë, - natyrisht, nuk shpëtoi asgjë.

Djemtë dhe unë kuptuam se si ta ndalonim manualisht regjistrimin dhe të kontrollonim gjithçka. Ne në fakt u siguruam që disa nga të dhënat të mos ishin shkruar.

Ne e ndaluam regjistrimin dhe numëruam numrin e ngjarjeve që ndodheshin aty në ditë. Ata ngarkuan më shumë të dhëna, nga të cilat vetëm një e treta nuk u regjistrua. Tre copa me nga 2 kopje secila. Ju futni 100.000 rreshta - 33.000 nuk janë regjistruar.

Kishte konfuzion të plotë. Të gjithë i thanë njëri-tjetrit që të dreqin me radhë: Lenya shkoi atje e para, e ndjekur nga unë dhe themeluesi i kompanisë. Vetëm servisi që u bashkua u përpoq të devijonte thirrjet dhe korrespondencën tonë të zhurmshme drejt gjetjes së një zgjidhjeje për problemin.

Askush nuk e kuptoi se çfarë po ndodhte në të vërtetë

Djemtë dhe unë thjesht u mahnitëm kur kuptuam se një e treta e të gjitha të dhënave jo vetëm që nuk u regjistruan, por edhe humbi! Doli se rendi në kompani ishte si më poshtë: pas futjes, të dhënat u fshinë në mënyrë të pakthyeshme, ngjarjet u shpërdoruan në tufa. Imagjinova se si Sergei do t'i kthente të gjitha këto në rubla të humbura.

Edhe ditëlindja ime u hodh në kosh. U ulëm në lokal dhe krijuam ide, duke u përpjekur të zgjidhnim enigmën që na ishte hedhur. Arsyeja e rënies së Clickhouse nuk ishte e qartë. Ndoshta është rrjeti, ndoshta janë cilësimet e Linux. Po, çfarë të duash, ka pasur mjaft hipoteza.

Unë nuk e mora betimin e zhvilluesit, por ishte e pandershme të braktisja djemtë në anën tjetër të linjës - edhe nëse ata na fajësuan për gjithçka. Unë isha 99% i sigurt se problemi nuk qëndronte në vendimet tona, jo në anën tonë. Mundësia prej 1% që të kishim prishur ishte djegur nga ankthi. Por pa marrë parasysh se në cilën anë ishte problemi, ai duhej rregulluar. Lënia e klientëve, pavarësisht se kush janë ata, me një rrjedhje kaq të tmerrshme të të dhënave është shumë mizore.

Punuam në tavolinën e restorantit deri në tre të mëngjesit. Shtuam ngjarjet, futëm përzgjedhjen dhe shkuam për të mbushur boshllëqet. Kur i vidhosni të dhënat, veproni kështu: merrni të dhënat mesatare për ditët e mëparshme dhe i futni në ato të vidhosura.

Pas tre të mëngjesit, unë dhe shoku im shkuam në shtëpinë time dhe porositëm një birrë nga tregu i alkoolit. Isha ulur me një laptop dhe probleme me Clickhouse, një shok po më thoshte diçka. Si rezultat, pas një ore ai u ofendua që unë po punoja dhe nuk pija birrë me të dhe u largua. Classic - Unë isha një mik i Devops.

Nga ora 6 e mëngjesit, rikrijova përsëri tabelën dhe të dhënat filluan të vërshojnë. Gjithçka funksionoi pa asnjë humbje.

Pastaj ishte e vështirë. Të gjithë fajësuan njëri-tjetrin për humbjen e të dhënave. Nëse do të kishte ndodhur një gabim i ri, jam i sigurt se do të kishte pasur një shkëmbim zjarri

Në këto përleshje, më në fund filluam të kuptonim - kompania mendoi se ne ishim djemtë që punonim me të dhëna dhe monitoronim strukturën e tabelave. Ata ngatërruan administratorët me tregtarët. Dhe ata erdhën të na pyesin diçka ndryshe nga administratorët.

Ankesa e tyre kryesore është - çfarë dreqin, ju keni qenë përgjegjës për kopjet rezervë dhe nuk i keni bërë siç duhet, ju vazhduat t'i shpërdoroni të dhënat. Dhe e gjithë kjo me dyshekë me mbështjellje.

Doja drejtësi. Gërmova korrespondencën dhe bashkangjita pamjet e të gjithëve, ku Leonidi me të gjitha forcat i detyron të bëjnë kopjen rezervë që u bë. Shërbimi i tyre mori anën tonë pas telefonatës sime. Më vonë Lenya pranoi fajin e tij.

Kreu i kompanisë, përkundrazi, nuk donte të fajësonte njerëzit e tij. Pamjet e ekranit dhe fjalët nuk kishin asnjë ndikim tek ai. Ai besonte se duke qenë se ne ishim ekspertë këtu, duhej t'i bindnim të gjithë dhe të këmbëngulnim në vendimin tonë. Me sa duket, detyra jonë ishte t'i mësojmë Lenya-s dhe, për më tepër, ta anashkalojmë atë, i cili u emërua si menaxher i projektit, të arrinte te gjëja kryesore dhe personalisht t'i derdhnim të gjitha dyshimet tona për konceptin e kopjeve rezervë.

Biseda rrjedh nga urrejtja, agresioni i fshehur dhe i pafshehur. Nuk dija çfarë të bëja. Gjithçka ka rënë në vend. Dhe pastaj ata më këshilluan mënyrën më të lehtë - t'i shkruaja një mesazh personal menaxherit dhe të organizoja një takim me të. Vasya, njerëzit në jetën reale nuk janë aq të shpejtë sa në bisedë. Shefi iu përgjigj mesazhit tim: hajde, pa pyetje.

Ishte takimi më i frikshëm në karrierën time. Aleati im nga klienti - STO - nuk mund të gjente kohën. Unë shkova në takim me shefin dhe Lenën.

Pa pushim përsërita dialogun tonë të mundshëm në kokën time. Arrita shumë herët, gjysmë ore përpara. Fillova të nervozohem, piva 10 cigare. E kuptova, kaq - po dreq vetëm. Unë nuk do të jem në gjendje t'i bind ata. Dhe ai hyri në ashensor.

Teksa po ngrihej, e goditi çakmakin aq fort sa e theu.

Si rezultat, Lenya nuk ishte në takim. Dhe ne patëm një bisedë të shkëlqyer për gjithçka me shefin! Sergei më tregoi për dhimbjen e tij. Ai nuk donte të "automatizonte Clickhouse" - ai donte "të bënte pyetjet të funksiononin".

Nuk pashë një dhi, por një djalë të mirë, i shqetësuar për biznesin e tij, i zhytur në punë 24/7. Chat shpesh na tërheq zuzar, të poshtër dhe njerëz budallenj. Por në jetë këta janë njerëz si ju.

Sergeit nuk i duheshin nja dy devop për punësim. Problemi që ata kishin doli të ishte shumë më i madh.

Unë thashë se mund t'i zgjidhja problemet e tij - kjo është thjesht një punë krejtësisht e ndryshme, dhe unë kam një mik që punon për të. Nëse do ta kishim ditur që në fillim se kjo ishte një marrëveshje për ta, do të kishim shmangur shumë. Është vonë, por ne kuptuam se problemi qëndronte në menaxhimin e gabuar të të dhënave, jo në infrastrukturë.

Ne shtrënguam duart, ata na e ngritën rrogën dy herë e gjysmë, por me kushtin që të marr absolutisht të gjithë rrëmujën me të dhënat e tyre dhe Clickhouse për vete. Në ashensor, unë komunikova me të njëjtin djalë DI Max dhe e lidha atë me punën. Ishte e nevojshme të lopata të gjithë grupin.

Kishte shumë mbeturina në projektin e miratuar. Duke filluar me "backup"-in e përmendur. Doli që i njëjti grup "backup" nuk ishte i izoluar. Ata testuan gjithçka në të, ndonjëherë edhe e vunë në prodhim.

Zhvilluesit tanë të brendshëm kanë krijuar futësin e tyre të personalizuar të të dhënave. Ai punoi kështu: ai grumbulloi skedarët, ekzekutoi skriptin dhe bashkoi të dhënat në një tabelë. Por problemi kryesor ishte se një sasi e madhe të dhënash u pranuan për një kërkesë të thjeshtë. Kërkesa i bashkonte të dhënat çdo sekondë. Të gjitha për hir të një numri - shuma në ditë.

Zhvilluesit e brendshëm përdorën gabimisht mjetin e analitikës. Ata shkuan në grafana dhe shkruan kërkesën e tyre mbretërore. Ai ngarkoi të dhëna për 2 javë. Doli të ishte një grafik i bukur. Por në realitet, kërkesa për të dhëna ishte çdo 10 sekonda. E gjithë kjo po grumbullohej në një radhë sepse Clickhouse thjesht nuk e hoqi përpunimin. Këtu fshihej arsyeja kryesore. Asgjë nuk funksiononte në Grafanë, kërkesat qëndronin në radhë dhe vazhdimisht vinin të dhëna të vjetra, të parëndësishme.

Rikonfiguruam grupin, riorganizuam futjen. Zhvilluesit e brendshëm rishkruan "futësin" e tyre dhe ai filloi të shpërndante të dhënat në mënyrë korrekte.

Max kreu një auditim të plotë të infrastrukturës. Ai përshkroi një plan për kalimin në një backend të plotë. Por kjo nuk i përshtatej kompanisë. Ata prisnin një sekret magjik nga Max që do t'i lejonte ata të punonin në mënyrën e vjetër, por vetëm me efikasitet. Lenya ishte ende në krye të projektit dhe ai nuk mësoi asgjë. Nga gjithçka që u ofrua, ai përsëri zgjodhi alternativën e tij. Si gjithmonë, ky ishte vendimi më selektiv... i guximshëm. Lenya besonte se kompania e tij kishte një rrugë të veçantë. Me gjemba dhe plot ajsbergë.

Në fakt, këtu u ndamë - bëmë atë që mundëm.

Plot njohuri dhe urtësi nga kjo histori, ne hapëm biznesin tonë dhe formuam disa parime për veten tonë. Ne kurrë nuk do të fillojmë punën në të njëjtën mënyrë si atëherë.

DJ Max na u bashkua pas këtij projekti, dhe ne ende punojmë shumë së bashku. Rasti Clickhouse më mësoi se si të kryej një auditim të plotë dhe të plotë të infrastrukturës përpara se të filloj punën. Ne e kuptojmë se si funksionon gjithçka dhe vetëm atëherë pranojmë detyrat. Dhe nëse më herët do të nxitonim menjëherë për të mirëmbajtur infrastrukturën, tani së pari bëjmë një projekt një herë, i cili na ndihmon të kuptojmë se si ta sjellim atë në gjendje pune.

Dhe po, ne shmangim projektet me infrastrukturë të ndyrë. Edhe pse për shumë para, qoftë edhe për miqësi. Është e padobishme të drejtosh projekte të sëmura. Të kuptuarit e kësaj na ndihmoi të rritemi. Ose një projekt një herë për të rregulluar infrastrukturën dhe më pas një kontratë mirëmbajtjeje, ose thjesht fluturojmë. Kaloi një tjetër ajsberg.

PS Pra, nëse keni pyetje në lidhje me infrastrukturën tuaj, mos ngurroni të lini një kërkesë.

Ne kemi 2 auditime falas në muaj, ndoshta projekti juaj do të jetë njëri prej tyre.

Burimi: www.habr.com

Shto një koment