Mentre chì tutti celebravanu u mo anniversariu, aghju riparatu u cluster finu à a matina - è i sviluppatori mi culpiscenu i so sbagli.

Mentre chì tutti celebravanu u mo anniversariu, aghju riparatu u cluster finu à a matina - è i sviluppatori mi culpiscenu i so sbagli.

Eccu una storia chì hà cambiatu per sempre u mo approcciu à u travagliu di devops. Torna in i tempi pre-Covid, assai, assai prima di elli, quandu i picciotti è eiu stavamu solu pianificendu a nostra propria attività è freelance nantu à ordini casuali, una offerta hè cascata in u mo carrettu.

A cumpagnia chì hà scrittu questu era una cumpagnia di analisi di dati. Ella trattava migliaia di dumande ogni ghjornu. Ci sò ghjunti cù e parolle: ragazzi, avemu ClickHouse è vulemu automatizà a so cunfigurazione è a stallazione. Vulemu Ansible, Terraform, Docker è per tuttu per esse guardatu in Git. Vulemu un cluster di quattru nodi cù duie replicate ognunu.

Hè una dumanda standard, ci sò decine di elli, è avete bisognu di una suluzione standard ugualmente bona. Avemu dettu "ok", è dopu à 2-3 simane tuttu era prontu. Anu accettatu u travagliu è cuminciaru à trasfurmà in un novu cluster Clickhouse utilizendu a nostra utilità.

Nimu hà vulsutu o sapia cum'è scaccià cù Clickhouse. Allora avemu pensatu chì questu era u so prublema principali, è per quessa a stazione di serviziu di a cumpagnia hà datu solu u passu à a mo squadra per automatizà u travagliu quant'è pussibule, per ùn vultà mai più.

Avemu accumpagnatu a mossa, altri travaglii sò ghjunti - stallà backups è monitoraghju. À u listessu mumentu, a stazione di serviziu di sta cumpagnia fusiona cù un altru prughjettu, lassannu cù unu di i nostri - Leonid - cum'è cumandante. Lenya ùn era micca un omu assai talentu. Un sviluppatore simplice chì di colpu hè statu messu in capu di Clickhouse. Sembra chì questu era a so prima missione per gestisce qualcosa, è l'onore eccessiva l'hà fattu sentu starstruk.

Inseme avemu principiatu à fà una copia di salvezza. Aghju suggeritu di fà una copia di salvezza di i dati originali subitu. Basta à piglià, zip è eleganti lanciate in qualchi c3. I dati crudi sò oru. Ci era una altra opzione - per fà una copia di salvezza di e tavule stessu in Clickhouse, utilizendu un freeze è copia. Ma Lenya hè stata cun a so propria suluzione.

Hà annunziatu chì avemu bisognu di un secondu cluster Clickhouse. È da avà scriveremu dati à dui clusters - u principale è a copia di salvezza. Li dicu, Lenya, ùn serà micca una copia di salvezza, ma una replica attiva. È se i dati cumincianu à esse persu in a produzzione, u listessu accadrà in a vostra copia di salvezza.

Ma Lenya afferrò u volante strettamente è ricusò di sente i mo argumenti. Avemu parlatu cun ellu per un bellu pezzu in u chat, ma ùn ci era nunda di fà - Lenya era incaricata di u prugettu, eramu solu i zitelli assuciati da a strada.

Avemu monitoratu u statu di u cluster è caricate solu per u travagliu di l'amministratori. Pure Clickhouse amministrazione senza entre in i dati. U cluster era dispunibule, i dischi eranu bè, i nodi eranu bè.

Pocu sapemu chì avemu ricevutu questu ordine per via di un terribili malintesi in a so squadra

U manager ùn era cuntentu chì Clickhouse era lentu è e dati eranu qualchì volta persu. Hà stabilitu à a so stazione di serviziu u compitu di capiscenu. Hà capitu u megliu ch'ellu pudia è hà cunclusu chì avemu solu bisognu di automatizà u Clickhouse - questu hè tuttu. Ma cum'è prestu prestu chjaru, ùn avianu micca bisognu di una squadra di devops à tutti.

Tuttu chistu hè diventatu assai, assai doloroso. È a cosa più offensiva era chì era u mo anniversariu.

Vennari sera. Aghju fattu una riservazione à u mo vinu preferitu è ​​invitatu i homies.

Quasi prima di lascià, ricevemu un compitu per creà un alter, compiemu, tuttu hè bè. Alter passò, clickhouse cunfirmatu. Avemu digià andatu à u bar, è ci scrivenu chì ùn ci hè micca abbastanza dati. Avemu calculatu chì tuttu pare basta. È sò partuti per festighjà.

U ristorante era rumoroso un venneri. Dopu avè urdinatu bevande è cibo, ci stendemu nantu à i divani. Tuttu stu tempu, a mo slack hè stata lentamente inundata di missaghji. Hanu scrittu qualcosa nantu à a mancanza di dati. Pensu - a matina hè più sàvia chè a sera. In particulare oghje.

Più vicinu à l'undici cuminciaru à chjamà. Era u capu di a cumpagnia ... "Probabilmente decisu di felicità cù mè", aghju pensatu assai esitante, è hà pigliatu u telefunu.

È aghju intesu qualcosa cum'è: "Avete sguassatu i nostri dati! Ti pagu, ma nunda ùn funziona ! Eri rispunsevuli di i backups, è ùn avete micca fattu una cosa! Riparamu!" - solu ancu più rude.

- A sapete, và cazzo ! Oghje hè u mo anniversariu, è avà beie, è micca impegnà in i vostri prudutti casalinghi di ghjugnu da crap and sticks!

Hè ciò chì ùn aghju micca dettu. Invece, aghju pigliatu u mo laptop è mi misi à travaglià.

Innò, aghju bombardatu, bombardatu cum'è l'infernu ! Hà versatu caustic "Ti dissi cusì" in u chat - perchè a copia di salvezza, chì ùn era micca una copia di salvezza, - sicuru, ùn hà micca salvatu nunda.

I picciotti è aghju capitu cumu per piantà manualmente a registrazione è verificate tuttu. Avemu veramente assicuratu chì alcune di e dati ùn sò micca scritte.

Avemu cessatu di arregistrà è cuntò u numeru di avvenimenti chì ci eranu per ghjornu. Caricà più dati, di quale solu un terzu ùn hè micca registratu. Trè frammenti cù 2 repliche ognunu. Inserisce 100.000 33.000 fila - XNUMX XNUMX ùn sò micca arregistrati.

Ci era una cunfusione cumpleta. Tuttu u mondu hà dettu à l'altru di fuck off in turns: Lenya andò prima, seguita da mè è u fundatore di a cumpagnia. Solu a stazione di serviziu chì s'hè unitu hà pruvatu à svià i nostri gridamenti è a currispundenza per truvà una suluzione à u prublema.

Nimu hà capitu ciò chì era veramente accadutu

I picciotti è eiu sò stati simpricimenti sbulicati quandu avemu capitu chì un terzu di tutti i dati ùn era micca solu micca arregistratu, ma era persu! Risultava chì l'ordine in a cumpagnia era a siguenti: dopu l'inserimentu, i dati sò stati sguassati irrevocabilmente, l'avvenimenti sò stati perditi in batch. Aghju imaginatu cumu Sergei cunvertisce tuttu questu in rubli persi.

U mo anniversariu hè statu ancu ghjittatu in a basura. Avemu pusatu à u bar è generatu idee, circandu di risolve u puzzle chì era statu ghjittatu à noi. U mutivu di a caduta di Clickhouse ùn era micca evidenti. Forse hè a reta, forse hè a paràmetra di Linux. Iè, ciò chì vulete, ci sò abbastanza ipotesi.

Ùn aghju micca pigliatu u ghjuramentu di u sviluppatore, ma hè stata disonesta per abbandunà i picciotti à l'altru finale di a linea - ancu s'ellu ci anu culpèvule per tuttu. Eru 99% sicuru chì u prublema ùn era micca in e nostre decisioni, micca da a nostra parte. A probabilità di l'1% chì avemu sguassatu era brusgiata d'ansietà. Ma ùn importa micca da quale latu era u prublema, avia da esse riparatu. Lascià i clienti, ùn importa quale sò, cù una fuga di dati cusì terribili hè troppu crudele.

Avemu travagliatu à a tavola di u ristorante finu à trè ore di mane. Avemu aghjustatu l'avvenimenti, inserite a selezzione, è andemu à cumpiendu e lacune. Quandu sguassate i dati, questu hè cumu si fate: pigliate i dati medii di i ghjorni precedenti è inserisci in quelli sbulicati.

Dopu à trè ore di a matina, u mo amicu è aghju andatu à a mo casa è hà urdinatu una biera da u mercatu di l'alcohol. Eru à pusà cù un laptop è prublemi Clickhouse, un amicu mi diceva qualcosa. In u risultatu, dopu à una ora hè stata offesa chì aghju travagliatu è ùn beie a biera cun ellu, è si n'andò. Classic - Eru un amicu di Devops.

À 6 am, aghju recreatu a tavula di novu, è i dati cuminciaru à inundazioni. Tuttu hà travagliatu senza pèrdite.

Allora era dura. Tuttu u mondu hà culpèvule per a perdita di dati. Se un novu bug era accadutu, sò sicuru chì ci saria statu un shootout

In questi cumbattimenti, avemu principiatu infine à capisce - a cumpagnia hà pensatu chì eramu i picciotti chì travaglianu cù dati è monitoranu a struttura di e tavule. Anu cunfunditu l'amministratori cù i venditori. È sò ghjunti à dumandà qualcosa di sfarente di l'amministratori.

A so lagnanza principale hè - chì diavule, erate rispunsevuli di i backups è ùn l'avete micca fattu bè, avete continuatu à perdi i dati. È tuttu questu cù stuoie rewinding.

Vuliu ghjustizia. I dug up a currispundenza è appiccicate screenshots di tutti, induve Leonid cù tutte e so forza li forze à fà a copia di salvezza chì hè stata fatta. A so stazione di serviziu hà pigliatu u nostru latu dopu a mo telefonata. Più tardi Lenya ammissu a so culpabilità.

U capu di a cumpagnia, à u cuntrariu, ùn vulia micca culpisce u so propiu populu. I screenshots è e parolle ùn avianu micca effettu nantu à ellu. Hà cridutu chì, postu chì eramu esperti quì, duvemu cunvince tutti è insistia nantu à a nostra decisione. Apparentemente, u nostru compitu era di insignà à Lenya è, in più, bypass ellu, chì hè statu numinatu cum'è u capu di prughjettu, per arrivà à a cosa principalu è persu personalmente tutti i nostri dubbii nantu à u cuncettu di backups à ellu.

A chat sboccava d'odiu, d'aggressioni ammucciate è scunnisciute. Ùn sapia micca chì fà. Tuttu hè ghjuntu à un fermu. È dopu m'anu cunsigliatu u modu più faciule - per scrive un missaghju persunale à u manager è urganizà una reunione cun ellu. Vasya, e persone in a vita reale ùn sò micca cusì veloci cum'è in chat. U patronu hà rispostu à u mo missaghju : venite, senza quistione.

Hè stata a riunione più spaventosa in a mo carriera. U mo alleatu da u cliente - STO - ùn pudia truvà u tempu. Aghju andatu à a riunione cù u capu è Lena.

Una volta è più volte aghju tornatu u nostru pussibule dialogu in a mo testa. Aghju riesciutu à ghjunghje assai prima, una meza ora in anticipu. Aghju cuminciatu à esse nervoso, aghju fumatu cigarettes 10. Aghju capitu, hè questu - sò cazzo solu. Ùn puderaghju micca cunvince. È si n'andò in l'ascensore.

Mentre ch'ellu s'alzava, hà colpitu cusì forte l'accenditore chì l'hà ruttu.

In u risultatu, Lenya ùn era micca à a riunione. È avemu avutu una bella cunversazione annantu à tuttu cù u capu! Sergei m'hà dettu di u so dulore. Ùn vulia micca "automatizà Clickhouse" - vulia "fà chì e dumande funzionanu".

Ùn aghju micca vistu un caprettu, ma un bonu omu, preoccupatu per i so affari, immersi in u travagliu 24/7. A chat ci attira spessu i cattivi, i furfanti è i stupidi. Ma in a vita queste sò persone cum'è voi.

Sergei ùn avia micca bisognu di un paru di devops per affittu. U prublema ch'elli avianu fattu esse assai più grande.

Aghju dettu chì puderia risolve i so prublemi - hè solu un travagliu completamente diversu, è aghju un amicu chì travaglia per questu. S'è no aviamu cunnisciutu da u principiu chì questu era un affare per elli, avariamu evitatu assai. Hè tardu, ma avemu capitu chì u prublema si trova in a gestione di dati crappy, micca in l'infrastruttura.

Avemu stringhjendu a manu, anu risuscitatu a nostra paga duie volte è mezu, ma à a cundizione chì aghju pigliatu assolutamente tuttu u mess cù i so dati è Clickhouse per mè stessu. In l'elevatore, aghju cumunicatu cù quellu stessu tippu DI Max è cunnessu à u travagliu. Era necessariu di scaccià tuttu u cluster.

Ci era assai basura in u prugettu aduttatu. Partendu cù u "backup" mintuatu. Hè risultatu chì stu stessu cluster di "backup" ùn era micca isolatu. Pruvavanu tuttu nantu à questu, qualchì volta ancu mettendu in produzzione.

I nostri sviluppatori interni anu creatu u so propiu inseritore di dati persunalizati. Hà travagliatu cusì: hà batched the files, run the script and merged the data in a table. Ma u prublema principali era chì una quantità enorme di dati hè stata accettata per una dumanda simplice. A dumanda hà unitu i dati ogni seconda. Tuttu per un numeru - a quantità per ghjornu.

I sviluppatori interni anu utilizatu l'uttellu analiticu in modu incorrectu. Andavanu à a grafana è scrivevanu a so dumanda reale. Hà caricatu dati per 2 settimane. Hè diventatu un bellu graficu. Ma in realtà, a dumanda di dati era ogni 10 seconde. Tuttu chistu s'acumulava in una fila perchè Clickhouse simpricimenti ùn hà micca pigliatu u prucessu. Questu hè induve u mutivu principalu era oculatu. Nunda hà travagliatu in Grafana, e dumande stavanu in una fila, è vechji dati irrilevanti arrivavanu constantemente.

Avemu ricunfiguratu u cluster, rifattu l'inserimentu. I sviluppatori interni anu riscritto u so "insertore", è hà cuminciatu à sparghje i dati in modu correttu.

Max hà realizatu un auditu cumpletu di l'infrastruttura. Hà delineatu un pianu per a transizione à un backend cumpletu. Ma questu ùn hè micca adattatu à a cumpagnia. Aspittavanu un sicretu magicu da Max chì li permetterà di travaglià in modu anticu, ma solu in modu efficace. Lenya era sempre in carica di u prugettu, è ùn hà amparatu nunda. Da tuttu ciò chì hè stata pruposta, hà sceltu novu a so alternativa. Cum'è sempre, questa era a decisione più selettiva ... audacia. Lenya hà cridutu chì a so cumpagnia avia una strada speciale. Spinosa è piena di icebergs.

In verità, hè quì chì avemu parte - avemu fattu ciò chì pudemu.

Pienu di cunniscenza è saviezza da sta storia, avemu apertu a nostra propria attività è formate parechji principii per noi stessi. Ùn avemu mai principiatu à travaglià a listessa manera avà cum'è allora.

DJ Max hà unitu à noi dopu à stu prughjettu, è avemu sempre travagliatu bè inseme. U casu Clickhouse m'hà amparatu cumu fà un auditu cumpletu è cumpletu di l'infrastruttura prima di inizià u travagliu. Capemu cumu tuttu funziona è solu dopu accettà i travaglii. E s'è prima avemu prestu subitu à mantene l'infrastruttura, ora facemu prima un prughjettu unicu, chì ci aiuta à capisce cumu si mette in cundizione di travagliu.

È iè, evitemu prughjetti cù infrastruttura di merda. Ancu s'ellu per assai soldi, ancu per amicizia. Ùn hè micca prufittu per eseguisce prughjetti malati. Realizà questu ci hà aiutatu à cresce. O un prughjettu di una volta per mette l'infrastruttura in ordine è dopu un cuntrattu di mantenimentu, o vulemu solu. Dopu un altru iceberg.

PS Allora s'è vo avete dumande nantu à a vostra infrastruttura, sentite liberu di lascià una dumanda.

Avemu 2 auditi gratuiti per mese, forsi u vostru prughjettu serà unu di elli.

Source: www.habr.com

Add a comment