Terwyl almal my verjaarsdag gevier het, was ek besig om die cluster reg te maak tot die oggend - en die ontwikkelaars het hul foute op my blameer

Terwyl almal my verjaarsdag gevier het, was ek besig om die cluster reg te maak tot die oggend - en die ontwikkelaars het hul foute op my blameer

Hier is 'n storie wat my benadering tot devops-werk vir altyd verander het. Terug in pre-Covid-tye, lank, lank voor hulle, toe ek en die ouens net ons eie besigheid beplan het en op willekeurige bestellings vryskut, het een aanbod in my kar geval.

Die maatskappy wat dit geskryf het, was 'n data-ontledingsmaatskappy. Sy het daagliks duisende versoeke verwerk. Hulle het na ons toe gekom met die woorde: ouens, ons het ClickHouse en ons wil die konfigurasie en installasie daarvan outomatiseer. Ons wil hê dat Ansible, Terraform, Docker en dat dit alles in Git gestoor moet word. Ons wil 'n groep van vier nodusse hê met twee replikas elk.

Dit is 'n standaardversoek, daar is dosyne van hulle, en jy het 'n ewe goeie standaardoplossing nodig. Ons het gesê “ok”, en na 2-3 weke was alles gereed. Hulle het die pos aanvaar en met ons hulpprogram na 'n nuwe Clickhouse-groepering begin skuif.

Niemand wou of het geweet hoe om met Clickhouse te peuter nie. Toe dink ons ​​dis hul hoofprobleem, en daarom het die maatskappy se diensstasie bloot die trekpas aan my span gegee om die werk so veel as moontlik te outomatiseer, om nie self ooit weer soontoe te gaan nie.

Ons het die skuif vergesel, ander take het ontstaan ​​- die opstel van rugsteun en monitering. Op dieselfde oomblik het die diensstasie van hierdie maatskappy saamgesmelt met 'n ander projek, wat ons met een van ons eie gelaat het - Leonid - as bevelvoerder. Lenya was nie 'n baie begaafde ou nie. 'n Eenvoudige ontwikkelaar wat skielik in beheer van Clickhouse geplaas is. Dit blyk dat dit sy eerste opdrag was om iets te bestuur, en die oorweldigende eer het hom 'n ster laat voel.

Saam het ons begin om rugsteun te maak. Ek het voorgestel om die oorspronklike data dadelik te rugsteun. Neem dit net, rits dit en gooi dit elegant in een of ander c3. Rou data is goud. Daar was 'n ander opsie - om die tabelle self in Clickhouse te rugsteun deur 'n vries en kopieer te gebruik. Maar Lenya het met sy eie oplossing vorendag gekom.

Hy het aangekondig dat ons 'n tweede Clickhouse-kluster benodig. En van nou af sal ons data na twee groepe skryf - die hoof en rugsteun. Ek sê vir hom, Lenya, dit sal nie 'n rugsteun wees nie, maar 'n aktiewe replika. En as data in produksie begin verlore raak, sal dieselfde op jou rugsteun gebeur.

Maar Lenya het die stuurwiel styf gegryp en geweier om na my argumente te luister. Ons het lank met hom gesels in die chat, maar daar was niks om te doen nie – Lenya was in beheer van die projek, ons was net gehuurde kinders van die straat af.

Ons het die toestand van die groepering gemonitor en slegs vir die werk van administrateurs gehef. Pure Clickhouse-administrasie sonder om in die data te kom. Die cluster was beskikbaar, die skywe was goed, die nodusse was goed.

Min het ons geweet dat ons hierdie bestelling ontvang het weens 'n verskriklike misverstand binne hul span

Die bestuurder was ontevrede dat Clickhouse stadig was en data het soms verlore gegaan. Hy het sy diensstasie die taak gestel om dit uit te vind. Hy het dit so goed moontlik uitgepluis en tot die gevolgtrekking gekom dat ons net die Clickhouse moet outomatiseer - dis al. Maar soos dit gou duidelik geword het, het hulle glad nie 'n span devops nodig gehad nie.

Dit alles blyk baie, baie pynlik te wees. En die mees aanstootlike ding was dat dit op my verjaardag was.

Vrydagaand. Ek het 'n bespreking by my gunsteling wynkroeg gemaak en die homies genooi.

Byna voor ons vertrek, ontvang ons 'n taak om 'n verandering te skep, ons voltooi dit, alles is in orde. Alter geslaag, clickhouse bevestig. Ons gaan reeds kroeg toe, en hulle skryf vir ons dat daar nie genoeg data is nie. Ons het bereken dat alles genoeg blyk te wees. En hulle het vertrek om fees te vier.

Die restaurant was raserig op 'n Vrydag. Nadat ons drankies en kos bestel het, het ons op die banke gaan sit. Al hierdie tyd was my slapheid stadig oorstroom met boodskappe. Hulle het iets geskryf oor 'n gebrek aan data. Ek het gedink – die oggend is wyser as die aand. Veral vandag.

Nader elf begin hulle bel. Dit was die hoof van die maatskappy... “Seker besluit om my geluk te wens,” dink ek baie huiwerig, en tel die foon op.

En ek het iets gehoor soos: “Jy het ons data opgemors! Ek betaal jou, maar niks werk nie! Jy was verantwoordelik vir rugsteun, en jy het niks gedoen nie! Kom ons maak dit reg!" - net nog ruiger.

- Weet jy wat, kry die fok uit! Vandag is my verjaarsdag, en nou sal ek drink, en nie betrokke raak by jou Junie tuisgemaakte produkte van kak en stokke nie!

Dis wat ek nie gesê het nie. In plaas daarvan het ek my skootrekenaar uitgehaal en aan die werk gegaan.

Nee, ek het gebombardeer, ek het soos die hel gebombardeer! Hy het bytende “I told you so” in die chat gegooi - want die rugsteun, wat glad nie 'n rugsteun was nie, het natuurlik niks gestoor nie.

Ek en die seuns het uitgevind hoe om die opname handmatig te stop en alles na te gaan. Ons het eintlik seker gemaak dat sommige van die data nie geskryf is nie.

Ons het opgehou opneem en die aantal gebeurtenisse wat daar was per dag getel. Hulle het meer data opgelaai, waarvan slegs 'n derde nie aangeteken is nie. Drie skerwe met 2 replikas elk. Jy voeg 100.000 33.000 rye in - XNUMX XNUMX word nie aangeteken nie.

Daar was algehele verwarring. Almal het vir mekaar gesê om om die beurt af te fok: Lenya het eerste soontoe gegaan, gevolg deur myself en die stigter van die maatskappy. Slegs die diensstasie wat aangesluit het, het ons skreeuende oproepe en korrespondensie probeer herlei om 'n oplossing vir die probleem te vind.

Niemand het verstaan ​​wat werklik aan die gebeur is nie

Ek en die ouens was eenvoudig weggeblaas toe ons besef dat 'n derde van alle data nie net nie opgeneem is nie, dit is verlore! Dit het geblyk dat die volgorde in die maatskappy soos volg was: na invoeging is die data onherroeplik uitgevee, die gebeure is in bondels vermors. Ek het my voorgestel hoe Sergei dit alles in verlore roebels sou omskep.

My verjaardag is ook in die asblik gegooi. Ons het by die kroeg gesit en idees gegenereer en probeer om die legkaart wat na ons gegooi is, op te los. Die rede vir Clickhouse se val was nie voor die hand liggend nie. Miskien is dit die netwerk, miskien is dit die Linux-instellings. Ja, wat jy ook al wil hê, daar was genoeg hipoteses.

Ek het nie die ontwikkelaar se eed afgelê nie, maar dit was oneerlik om die ouens aan die ander kant van die lyn te laat vaar - al het hulle ons vir alles blameer. Ek was 99% seker dat die probleem nie in ons besluite lê nie, nie aan ons kant nie. Die 1%-kans dat ons opgemors het, brand van angs. Maar maak nie saak aan watter kant die moeilikheid was nie, dit moes reggemaak word. Om kliënte, ongeag wie hulle is, met so 'n verskriklike datalek te laat, is te wreed.

Ons het tot drieuur die oggend by die restauranttafel gewerk. Ons het gebeure bygevoeg, kies ingevoeg, en ons het die gapings gaan vul. Wanneer jy die data opskroef, is dit hoe jy dit doen: jy neem die gemiddelde data vir die vorige dae en voeg dit by die opgeskroefde in.

Na drie-uur die oggend het ek en my vriend na my huis gegaan en 'n bier van die alkoholmark bestel. Ek het met 'n skootrekenaar gesit en Clickhouse-probleme, 'n vriend het my iets vertel. Gevolglik het hy na 'n uur aanstoot gekry dat ek werk en nie saam met hom bier drink nie, en is weg. Klassiek - ek was 'n vriend van Devops.

Teen 6:XNUMX het ek die tabel weer herskep, en die data het begin oorstroom. Alles het sonder enige verliese gewerk.

Toe was dit moeilik. Almal het mekaar die skuld gegee vir die verlies van data. As 'n nuwe gogga gebeur het, is ek seker daar sou 'n skietgeveg gewees het

In hierdie gevegte het ons uiteindelik begin verstaan ​​- die maatskappy het gedink dat ons die ouens is wat met data werk en die struktuur van tabelle monitor. Hulle het admins met handelaars verwar. En hulle het ons iets anders as die admins kom vra.

Hul hoofklag is - wat de hel, jy was verantwoordelik vir die rugsteun en het dit nie behoorlik gedoen nie, jy het aangehou om die data te mors. En dit alles met herwinde matte.

Ek wou geregtigheid hê. Ek het die korrespondensie opgegrawe en skermskote van almal aangeheg, waar Leonid hulle met alle mag dwing om die rugsteun te maak wat gemaak is. Hulle diensstasie het ons kant gestel ná my telefoonoproep. Later het Lenya sy skuld erken.

Die hoof van die maatskappy, inteendeel, wou nie sy eie mense blameer nie. Skermskote en woorde het geen effek op hom gehad nie. Hy het geglo dat aangesien ons hier kenners is, ons almal moes oortuig en aandring op ons besluit. Ons taak was blykbaar om Lenya te leer en boonop hom, wat as die projekbestuurder aangestel is, te omseil om by die hoofsaak uit te kom en persoonlik al ons twyfel oor die konsep van rugsteun aan hom uit te stort.

Die gesels het gespoel met haat, verborge en onverborge aggressie. Ek het nie geweet wat om te doen nie. Alles het tot stilstand gekom. En toe raai hulle my die maklikste manier aan – om ’n persoonlike boodskap aan die bestuurder te skryf en ’n vergadering met hom te reël. Vasya, mense in die werklike lewe is nie so vinnig soos hulle in klets nie. Die baas het op my boodskap geantwoord: kom, geen vraag nie.

Dit was die vreesaanjaendste ontmoeting in my loopbaan. My bondgenoot van die kliënt - STO - kon nie die tyd kry nie. Ek het saam met die baas en Lena na die vergadering gegaan.

Oor en oor het ek ons ​​moontlike dialoog in my kop oorgespeel. Ek het daarin geslaag om baie vroeg op te daag, 'n halfuur voor die tyd. Ek het senuweeagtig begin raak, ek het 10 sigarette gerook.Ek het verstaan, dis dit - ek is fokken alleen. Ek sal hulle nie kan oortuig nie. En hy stap in die hysbak.

Terwyl hy opgestaan ​​het, het hy die aansteker so hard geslaan dat hy dit gebreek het.

Gevolglik was Lenya nie by die vergadering nie. En ons het lekker gesels oor alles met die baas! Sergei het my van sy pyn vertel. Hy wou nie Clickhouse outomatiseer nie - hy wou "navrae laat werk."

Ek het nie 'n bok gesien nie, maar 'n goeie ou, bekommerd oor sy besigheid, gedompel in werk 24/7. Chat trek ons ​​dikwels skurke, skelms en dom mense. Maar in die lewe is dit mense net soos jy.

Sergei het nie 'n paar devops nodig gehad om te huur nie. Die probleem wat hulle gehad het, blyk veel groter te wees.

Ek het gesê dat ek sy probleme kan oplos - dit is net 'n heeltemal ander werk, en ek het 'n vriend wat daarvoor werk. As ons van die begin af geweet het dit is 'n ooreenkoms vir hulle, sou ons baie vermy het. Dit is laat, maar ons het besef die probleem lê in die morsige databestuur, nie in die infrastruktuur nie.

Ons het hand geskud, hulle het ons salaris twee en 'n half keer verhoog, maar op voorwaarde dat ek absoluut die hele gemors met hul data en Clickhouse vir myself vat. In die hysbak het ek met daardie selfde DI-man Max gekommunikeer en hom aan die werk gekoppel. Dit was nodig om die hele tros te skop.

Daar was baie rommel in die aangenome projek. Begin met die genoemde "rugsteun". Dit het geblyk dat dieselfde "rugsteun"-kluster nie geïsoleer was nie. Hulle het alles daarop getoets, soms selfs in produksie geplaas.

Ons interne ontwikkelaars het hul eie persoonlike data-invoeger geskep. Hy het so gewerk: hy het die lêers saamgevoeg, die skrif laat loop en die data in 'n tabel saamgevoeg. Maar die grootste probleem was dat 'n groot hoeveelheid data vir een eenvoudige versoek aanvaar is. Die versoek het elke sekonde by die data aangesluit. Alles ter wille van een nommer - die bedrag per dag.

Interne ontwikkelaars het die ontledingsinstrument verkeerd gebruik. Hulle het na die grafana gegaan en hul koninklike versoek geskryf. Hy het data vir 2 weke opgelaai. Dit het geblyk 'n pragtige grafiek te wees. Maar in werklikheid was die dataversoek elke 10 sekondes. Dit alles het in 'n tou opgehoop omdat Clickhouse eenvoudig nie die verwerking uitgehaal het nie. Dit is waar die hoofrede versteek was. Niks het in Grafana gewerk nie, versoeke het in 'n tou gestaan ​​en ou, irrelevante data het voortdurend aangekom.

Ons het die groep herkonfigureer, die invoeging oorgedoen. Die interne ontwikkelaars het hul "inserter" herskryf en dit het data korrek begin verdeel.

Max het 'n volledige infrastruktuuroudit uitgevoer. Hy het 'n plan uiteengesit vir oorgang na 'n volwaardige backend. Maar dit het nie die maatskappy gepas nie. Hulle het 'n magiese geheim van Max verwag wat hulle in staat sou stel om op die outydse manier te werk, maar net doeltreffend. Lenya was steeds in beheer van die projek, en hy het niks geleer nie. Uit alles wat aangebied is, het hy weer sy alternatief gekies. Soos altyd was dit die mees selektiewe... gewaagde besluit. Lenya het geglo dat sy maatskappy 'n spesiale pad het. Doring en vol ysberge.

Eintlik is dit waar ons geskei het - ons het gedoen wat ons kon.

Vol kennis en wysheid uit hierdie geskiedenis het ons ons eie besigheid geopen en verskeie beginsels vir onsself gevorm. Ons sal nooit nou op dieselfde manier begin werk as wat ons destyds gedoen het nie.

DJ Max het ná hierdie projek by ons aangesluit, en ons werk steeds uitstekend saam. Die Clickhouse-saak het my geleer hoe om 'n volledige en deeglike infrastruktuuroudit uit te voer voordat met werk begin word. Ons verstaan ​​hoe alles werk en aanvaar dan eers die take. En as ons vroeër dadelik sou jaag om die infrastruktuur in stand te hou, doen ons nou eers 'n eenmalige projek, wat ons help verstaan ​​hoe om dit in 'n werkende toestand te bring.

En ja, ons vermy projekte met swak infrastruktuur. Al vir baie geld, al is dit uit vriendskap. Dit is nie winsgewend om siek projekte te bedryf nie. Die besef hiervan het ons gehelp om te groei. Óf ’n eenmalige projek om die infrastruktuur in orde te kry en dan ’n onderhoudskontrak, óf ons vlieg net verby. Verby nog 'n ysberg.

NS So as jy vrae het oor jou infrastruktuur, Dien gerus 'n versoek in.

Ons het 2 gratis oudits per maand, miskien sal jou projek een van hulle wees.

Bron: will.com

Voeg 'n opmerking