Mens alle feiret bursdagen min, holdt jeg på å fikse klyngen til morgenen - og utviklerne skyldte på meg for feilene sine

Mens alle feiret bursdagen min, holdt jeg på å fikse klyngen til morgenen - og utviklerne skyldte på meg for feilene sine

Her er en historie som for alltid forandret min tilnærming til devops-arbeid. Tilbake i tiden før Covid, lenge, lenge før dem, da gutta og jeg bare planla vår egen virksomhet og frilanserte på tilfeldige bestillinger, falt ett tilbud inn i handlekurven min.

Selskapet som skrev dette var et dataanalyseselskap. Hun behandlet tusenvis av forespørsler daglig. De kom til oss med ordene: folkens, vi har ClickHouse og vi ønsker å automatisere konfigurasjonen og installasjonen. Vi ønsker Ansible, Terraform, Docker og at det hele skal lagres i Git. Vi ønsker en klynge med fire noder med to replikaer hver.

Det er en standardforespørsel, det er dusinvis av dem, og du trenger en like god standardløsning. Vi sa "ok", og etter 2-3 uker var alt klart. De takket ja til jobben og begynte å flytte til en ny Clickhouse-klynge ved å bruke verktøyet vårt.

Ingen ville eller visste hvordan de skulle fikle med Clickhouse. Da tenkte vi at dette var deres hovedproblem, og derfor ga selskapets bensinstasjon rett og slett klarsignal til teamet mitt for å automatisere arbeidet så mye som mulig, for ikke å gå dit selv igjen.

Vi fulgte med på flyttingen, andre oppgaver dukket opp – oppsett av backup og overvåking. I samme øyeblikk fusjonerte bensinstasjonen til dette selskapet med et annet prosjekt, og etterlot oss med en av våre egne - Leonid - som sjef. Lenya var ikke en veldig begavet fyr. En enkel utvikler som plutselig fikk ansvaret for Clickhouse. Det ser ut til at dette var hans første oppdrag for å klare noe, og den overveldende æren fikk ham til å føle seg starstruck.

Sammen satte vi i gang med sikkerhetskopiering. Jeg foreslo å sikkerhetskopiere de opprinnelige dataene med en gang. Bare ta den, zip den og kast den elegant inn i en c3. Rådata er gull. Det var et annet alternativ - å sikkerhetskopiere selve tabellene i Clickhouse, ved å fryse og kopiere. Men Lenya kom med sin egen løsning.

Han kunngjorde at vi trenger en ekstra Clickhouse-klynge. Og fra nå av vil vi skrive data til to klynger - hoved- og sikkerhetskopi. Jeg forteller ham, Lenya, det vil ikke være en sikkerhetskopi, men en aktiv kopi. Og hvis data begynner å gå tapt i produksjonen, vil det samme skje på sikkerhetskopien din.

Men Lenya tok godt tak i rattet og nektet å høre på argumentene mine. Vi pratet lenge med ham i chatten, men det var ingenting å gjøre - Lenya var ansvarlig for prosjektet, vi var bare innleide barn fra gaten.

Vi overvåket tilstanden til klyngen og belastet kun for arbeidet til administratorer. Ren Clickhouse-administrasjon uten å komme inn i dataene. Klyngen var tilgjengelig, diskene var fine, nodene var fine.

Lite visste vi at vi mottok denne bestillingen på grunn av en forferdelig misforståelse i teamet deres

Lederen var misfornøyd med at Clickhouse var treg og at data noen ganger gikk tapt. Han satte sin bensinstasjon i oppgave å finne ut av det. Han skjønte det så godt han kunne og konkluderte med at vi bare trengte å automatisere Clickhouse - det er alt. Men som det snart ble klart, trengte de ikke et team med devops i det hele tatt.

Alt dette viste seg å være veldig, veldig smertefullt. Og det mest støtende var at det var på bursdagen min.

Fredag ​​kveld. Jeg gjorde en reservasjon på min favoritt vinbar og inviterte homiene.

Nesten før vi drar, mottar vi en oppgave om å lage et alter, vi fullfører det, alt er ok. Alter bestått, clickhouse bekreftet. Vi går allerede i baren, og de skriver til oss at det ikke er nok data. Vi regnet ut at alt ser ut til å være nok. Og de dro for å feire.

Restauranten var støyende på en fredag. Etter å ha bestilt drikke og mat, la vi oss i sofaene. Hele denne tiden ble slakken min sakte oversvømmet av meldinger. De skrev noe om mangel på data. Jeg tenkte – morgenen er klokere enn kvelden. Spesielt i dag.

Nærmere elleve begynte de å ringe. Det var sjefen for selskapet... "Har sikkert bestemt meg for å gratulere meg," tenkte jeg veldig nølende, og tok telefonen.

Og jeg hørte noe sånt som: «Du har ødelagt dataene våre! Jeg betaler deg, men ingenting fungerer! Du var ansvarlig for sikkerhetskopiering, og du gjorde ingen ting! La oss fikse det!" - bare enda grovere.

- Vet du hva, kom deg ut! I dag har jeg bursdag, og nå skal jeg drikke, og ikke engasjere meg i juni hjemmelagde produkter fra dritt og pinner!

Det var det jeg ikke sa. I stedet tok jeg frem den bærbare datamaskinen og begynte å jobbe.

Nei, jeg bombet, jeg bombet som faen! Han helte etsende "jeg fortalte deg det" i chatten - fordi sikkerhetskopien, som ikke var en sikkerhetskopi i det hele tatt, - selvfølgelig, lagret ikke noe.

Guttene og jeg fant ut hvordan vi manuelt kunne stoppe opptaket og sjekke alt. Vi sørget faktisk for at noen av dataene ikke ble skrevet.

Vi sluttet å registrere og telte antall hendelser som var der per dag. De lastet opp flere data, hvorav bare en tredjedel ikke ble registrert. Tre skår med 2 kopier hver. Du setter inn 100.000 33.000 rader - XNUMX XNUMX blir ikke registrert.

Det var full forvirring. Alle ba hverandre om å knulle etter tur: Lenya dro dit først, etterfulgt av meg selv og grunnleggeren av selskapet. Bare bensinstasjonen som ble med prøvde å viderekoble våre ropende samtaler og korrespondanse mot å finne en løsning på problemet.

Ingen forsto hva som egentlig skjedde

Gutta og jeg ble rett og slett imponert da vi innså at en tredjedel av all data ikke bare ikke ble registrert, den gikk tapt! Det viste seg at rekkefølgen i selskapet var som følger: etter innsetting ble dataene slettet ugjenkallelig, hendelsene ble kastet bort i partier. Jeg så for meg hvordan Sergei ville konvertere alt dette til tapte rubler.

Bursdagen min ble også kastet i søpla. Vi satt i baren og genererte ideer, og prøvde å løse gåten som hadde blitt kastet mot oss. Årsaken til Clickhouses fall var ikke åpenbar. Kanskje er det nettverket, kanskje er det Linux-innstillingene. Ja, hva du enn vil, det har vært nok hypoteser.

Jeg avla ikke utviklerens ed, men det var uærlig å forlate gutta på den andre enden av linjen - selv om de beskyldte oss for alt. Jeg var 99 % sikker på at problemet ikke lå i våre beslutninger, ikke på vår side. 1% sjansen for at vi hadde skrudd opp var brennende av angst. Men uansett hvilken side trøbbelet var på, måtte det fikses. Å etterlate kunder, uansett hvem de er, med en så forferdelig datalekkasje er for grusomt.

Vi jobbet ved restaurantbordet til tre om morgenen. Vi la til hendelser, satte inn valg, og vi gikk for å fylle ut hullene. Når du skrur opp dataene, er det slik du gjør det: du tar gjennomsnittsdataene for de foregående dagene og setter dem inn i de ødelagte.

Etter tre om morgenen dro vennen min og jeg hjem til meg og bestilte en øl fra alkoholmarkedet. Jeg satt med en bærbar PC og Clickhouse-problemer, en venn fortalte meg noe. Som et resultat ble han etter en time fornærmet over at jeg jobbet og ikke drakk øl med ham, og dro. Klassisk – jeg var en venn av Devops.

Klokken 6 gjenskapte jeg tabellen igjen, og dataene begynte å flomme. Alt fungerte uten tap.

Da var det vanskelig. Alle ga hverandre skylden for datatapet. Hvis en ny feil hadde skjedd, er jeg sikker på at det hadde vært en skuddveksling

I disse kampene begynte vi endelig å forstå – selskapet trodde at vi var gutta som jobber med data og overvåker strukturen til tabeller. De forvekslet administratorer med forhandlere. Og de kom for å spørre oss om noe annet enn administratorene.

Hovedklagen deres er - hva i helvete, du var ansvarlig for sikkerhetskopiene og gjorde dem ikke ordentlig, du fortsatte å kaste bort dataene. Og alt dette med spolematter.

Jeg ville ha rettferdighet. Jeg gravde opp korrespondansen og la ved skjermbilder av alle, der Leonid med all kraft tvinger dem til å ta sikkerhetskopien som ble laget. Bensinstasjonen deres tok vår side etter telefonsamtalen min. Senere innrømmet Lenya sin skyld.

Lederen for selskapet ville tvert imot ikke skylde på sine egne folk. Skjermbilder og ord hadde ingen effekt på ham. Han mente at siden vi var eksperter her, måtte vi overbevise alle og insistere på avgjørelsen vår. Tilsynelatende var oppgaven vår å lære Lenya og dessuten omgå ham, som ble utnevnt til prosjektleder, å komme til det viktigste og personlig helle ut all vår tvil om konseptet med sikkerhetskopiering til ham.

Praten oset av hat, skjult og skjult aggresjon. Jeg visste ikke hva jeg skulle gjøre. Alt har gått i stå. Og så rådet de meg den enkleste måten - å skrive en personlig melding til lederen og avtale et møte med ham. Vasya, folk i det virkelige liv er ikke så raske som de er i chatten. Sjefen svarte på meldingen min: kom, ingen spørsmål.

Det var det skumleste møtet i min karriere. Min allierte fra klienten - STO - fant ikke tiden. Jeg dro på møtet med sjefen og Lena.

Om og om igjen spilte jeg vår mulige dialog i hodet mitt. Jeg klarte å komme veldig tidlig, en halvtime i forveien. Jeg begynte å bli nervøs, jeg røykte 10 sigaretter. Jeg forsto, det var det - jeg er jævla alene. Jeg klarer ikke å overbevise dem. Og han gikk inn i heisen.

Mens han reiste seg, slo han lighteren så hardt at han brakk den.

Som et resultat var ikke Lenya på møtet. Og vi hadde en god samtale om alt med sjefen! Sergei fortalte meg om smerten hans. Han ønsket ikke å «automatisere Clickhouse» – han ønsket å «få spørringer til å fungere».

Jeg så ikke en geit, men en flink fyr, bekymret for virksomheten sin, fordypet i arbeid 24/7. Chat trekker oss ofte skurker, skurker og dumme mennesker. Men i livet er dette mennesker akkurat som deg.

Sergei trengte ikke et par devops for utleie. Problemet de hadde viste seg å være mye større.

Jeg sa at jeg kunne løse problemene hans - det er bare en helt annen jobb, og jeg har en venn som jobber for den. Hadde vi visst fra starten av at dette var en avtale for dem, hadde vi unngått mye. Det er sent, men vi innså at problemet lå i dårlig databehandling, ikke i infrastrukturen.

Vi håndhilste, de hevet lønnen vår to og en halv gang, men under forutsetning av at jeg tar absolutt hele rotet med dataene deres og Clickhouse for meg selv. I heisen kommuniserte jeg med den samme DI-fyren Max og koblet ham til jobben. Det var nødvendig å måke hele klyngen.

Det var mye søppel i det vedtatte prosjektet. Starter med den nevnte "backupen". Det viste seg at denne samme "backup"-klyngen ikke var isolert. De testet alt på den, noen ganger satt den i produksjon.

Våre interne utviklere har laget sin egen tilpassede datainnlegger. Han jobbet slik: han batchet filene, kjørte skriptet og slo sammen dataene til en tabell. Men hovedproblemet var at en enorm mengde data ble akseptert for en enkel forespørsel. Forespørselen ble med dataene hvert sekund. Alt for ett talls skyld - beløpet per dag.

Interne utviklere brukte analyseverktøyet feil. De gikk til grafana og skrev sin kongelige anmodning. Han lastet opp data i 2 uker. Det viste seg å være en vakker graf. Men i virkeligheten var dataforespørselen hvert 10. sekund. Alt dette hopet seg opp i kø fordi Clickhouse rett og slett ikke tok ut behandlingen. Det var her hovedårsaken var skjult. Ingenting fungerte i Grafana, forespørsler sto i kø, og gamle, irrelevante data kom hele tiden.

Vi rekonfigurerte klyngen, gjorde om innsettingen. De interne utviklerne skrev om "innleggeren", og den begynte å dele data på riktig måte.

Max gjennomførte en fullstendig infrastrukturrevisjon. Han skisserte en plan for overgang til en fullverdig backend. Men dette passet ikke selskapet. De forventet en magisk hemmelighet fra Max som ville tillate dem å jobbe på den gamle måten, men bare effektivt. Lenya var fortsatt ansvarlig for prosjektet, og han lærte ingenting. Av alt som ble tilbudt, valgte han igjen sitt alternativ. Som alltid var dette den mest selektive... dristige avgjørelsen. Lenya mente at selskapet hans hadde en spesiell vei. Tornefull og full av isfjell.

Det var faktisk der vi skiltes – vi gjorde det vi kunne.

Fulle av kunnskap og visdom fra denne historien, åpnet vi vår egen virksomhet og dannet flere prinsipper for oss selv. Vi vil aldri begynne å jobbe på samme måte nå som vi gjorde da.

DJ Max ble med oss ​​etter dette prosjektet, og vi jobber fortsatt bra sammen. Clickhouse-saken lærte meg hvordan jeg gjennomfører en fullstendig og grundig infrastrukturrevisjon før arbeidet startet. Vi forstår hvordan alt fungerer og først da godtar vi oppgavene. Og hvis vi tidligere umiddelbart ville skynde oss for å vedlikeholde infrastrukturen, gjør vi nå først et engangsprosjekt, som hjelper oss å forstå hvordan vi skal bringe den i fungerende stand.

Og ja, vi unngår prosjekter med elendig infrastruktur. Selv om det er for mye penger, selv om det er av vennskap. Det er ulønnsomt å drive syke prosjekter. Å innse dette hjalp oss å vokse. Enten et engangsprosjekt for å få orden på infrastrukturen og deretter en vedlikeholdskontrakt, eller så flyr vi bare forbi. Forbi et annet isfjell.

PS Så hvis du har spørsmål om infrastrukturen din, Send gjerne inn en forespørsel.

Vi har 2 gratis revisjoner per måned, kanskje prosjektet ditt blir en av dem.

Kilde: www.habr.com

Legg til en kommentar