Mentre tothom celebrava el meu aniversari, vaig estar arreglant el clúster fins al matí, i els desenvolupadors em van culpar dels seus errors.

Mentre tothom celebrava el meu aniversari, vaig estar arreglant el clúster fins al matí, i els desenvolupadors em van culpar dels seus errors.

Aquí teniu una història que va canviar per sempre el meu enfocament del treball de devops. A l'època anterior a la Covid, molt, molt abans que ells, quan els nois i jo només estàvem planejant el nostre propi negoci i treballant com a autònom amb comandes aleatòries, una oferta va caure al meu carretó.

L'empresa que va escriure això era una empresa d'anàlisi de dades. Va processar milers de sol·licituds diàriament. Ens van arribar amb les paraules: nois, tenim ClickHouse i volem automatitzar-ne la configuració i instal·lació. Volem que Ansible, Terraform, Docker i que tot s'emmagatzemi a Git. Volem un clúster de quatre nodes amb dues rèpliques cadascun.

És una sol·licitud estàndard, n'hi ha desenes i necessiteu una solució estàndard igual de bona. Vam dir "d'acord", i després de 2-3 setmanes tot estava llest. Van acceptar la feina i van començar a traslladar-se a un nou clúster de Clickhouse mitjançant la nostra utilitat.

Ningú volia ni sabia com jugar amb Clickhouse. Aleshores vam pensar que aquest era el seu principal problema i, per tant, l'estació de servei de l'empresa es va limitar a donar el vistiplau al meu equip per automatitzar al màxim la feina, per no anar-hi jo mateix mai més.

Vam acompanyar el trasllat, van sorgir altres tasques: configurar còpies de seguretat i monitoritzar. Al mateix moment, l'estació de servei d'aquesta empresa es va fusionar amb un altre projecte, deixant-nos un dels nostres, Leonid, com a comandant. Lenya no era un noi molt dotat. Un desenvolupador senzill que de sobte es va posar a càrrec de Clickhouse. Sembla que aquesta va ser la seva primera missió per gestionar alguna cosa, i l'honor aclaparador el va fer sentir sorprès.

Junts ens hem proposat fer còpies de seguretat. Vaig suggerir fer una còpia de seguretat de les dades originals immediatament. Només cal agafar-lo, cremar-lo i llençar-lo elegantment a un c3. Les dades en brut són or. Hi havia una altra opció: fer una còpia de seguretat de les taules a Clickhouse, utilitzant una congelació i còpia. Però Lenya va trobar la seva pròpia solució.

Va anunciar que necessitem un segon clúster de Clickhouse. I a partir d'ara escriurem dades a dos clústers: el principal i el de còpia de seguretat. Li dic, Lenya, que no serà una còpia de seguretat, sinó una rèplica activa. I si les dades es comencen a perdre en producció, el mateix passarà amb la vostra còpia de seguretat.

Però la Lenya va agafar el volant amb força i es va negar a escoltar els meus arguments. Vam xerrar amb ell durant molt de temps al xat, però no hi havia res a fer: la Lenya s'encarregava del projecte, només vam contractar nens del carrer.

Vam supervisar l'estat del clúster i vam cobrar només pel treball dels administradors. Administració pura de Clickhouse sense entrar a les dades. El clúster estava disponible, els discos estaven bé, els nodes estaven bé.

No sabíem que vam rebre aquesta comanda a causa d'un terrible malentès dins del seu equip

El gerent no estava content que Clickhouse fos lent i que de vegades es perdien dades. Va posar a la seva estació de servei la tasca d'esbrinar-ho. Ho va descobrir com va poder i va concloure que només calia automatitzar el Clickhouse, això és tot. Però com aviat va quedar clar, no necessitaven gens un equip de devops.

Tot això va resultar molt, molt dolorós. I el més ofensiu va ser que va ser el meu aniversari.

divendres al vespre. Vaig fer una reserva a la meva vinoteca preferida i vaig convidar els amics.

Gairebé abans de marxar, rebem una tasca per crear un alter, el completem, tot està bé. Alter passat, clickhouse confirmat. Ja anem al bar, i ens escriuen que no hi ha prou dades. Hem calculat que tot sembla ser suficient. I se'n van anar a celebrar.

El restaurant era sorollós un divendres. Després d'haver demanat begudes i menjar, ens vam descansar als sofàs. Durant tot aquest temps, el meu fluix es va inundar lentament de missatges. Van escriure alguna cosa sobre la manca de dades. Vaig pensar: el matí és més savi que el vespre. Sobretot avui.

Més a prop de les onze van començar a trucar. Era el cap de l'empresa... "Probablement va decidir felicitar-me", vaig pensar amb molta vacil·lació, i vaig agafar el telèfon.

I vaig escoltar una cosa així com: “Ens has fotut les dades! Et pago, però no funciona res! Ets responsable de les còpies de seguretat i no has fet res! Arreglem-ho!" - només més groller.

- Ja saps què, ves a la merda! Avui és el meu aniversari, i ara beuré, i no em dedicaré als vostres productes casolans de juny de merda i pals!

Això és el que no vaig dir. En canvi, vaig treure el meu ordinador portàtil i vaig començar a treballar.

No, vaig bombardejar, vaig bombardejar com l'infern! Va abocar un "ja t'ho vaig dir" càustic al xat, perquè la còpia de seguretat, que no era en absolut una còpia de seguretat, per descomptat, no va desar res.

Els nois i jo vam descobrir com aturar manualment la gravació i comprovar-ho tot. De fet, ens vam assegurar que algunes de les dades no s'havien escrit.

Vam deixar de gravar i vam comptar el nombre d'esdeveniments que hi havia per dia. Van pujar més dades, de les quals només un terç no es va registrar. Tres fragments amb 2 rèpliques cadascun. Inseriu 100.000 files; 33.000 no s'enregistren.

Hi havia una confusió total. Tothom es deia que es fotessin per torns: la Lenya hi va anar primer, seguida per mi i el fundador de l'empresa. Només l'estació de servei que s'hi va unir va intentar desviar les nostres trucades de crits i correspondència per trobar una solució al problema.

Ningú no entenia què estava passant realment

Els nois i jo ens vam quedar bocabadats quan ens vam adonar que un terç de totes les dades no només no es van enregistrar, sinó que es van perdre! Va resultar que l'ordre a l'empresa era el següent: després de la inserció, les dades es van suprimir de manera irrevocable, els esdeveniments es van perdre per lots. Em vaig imaginar com en Sergei convertiria tot això en rubles perduts.

El meu aniversari també es va llençar a les escombraries. Ens vam asseure al bar i vam generar idees, intentant resoldre el trencaclosques que ens havien llançat. El motiu de la caiguda de Clickhouse no era evident. Potser és la xarxa, potser és la configuració de Linux. Sí, el que vulguis, hi ha hagut prou hipòtesis.

No vaig prendre el jurament del desenvolupador, però va ser deshonest abandonar els nois de l'altre extrem de la línia, fins i tot si ens culpaven de tot. Estava segur al 99% que el problema no residia en les nostres decisions, no del nostre costat. L'1% de possibilitats que havíem enganxat estava cremant d'ansietat. Però no importava de quin costat fos el problema, s'havia de solucionar. Deixar els clients, siguin qui siguin, amb una filtració de dades tan terrible és massa cruel.

Vam treballar a la taula del restaurant fins a les tres de la matinada. Hem afegit esdeveniments, hem inserit la selecció i hem anat a omplir els buits. Quan emboliqueu les dades, ho feu així: agafeu les dades mitjanes dels dies anteriors i les introduïu a les emboscades.

Passades les tres de la matinada, el meu amic i jo vam anar a casa meva i vam demanar una cervesa al mercat d'alcohol. Estava assegut amb un ordinador portàtil i problemes de Clickhouse, un amic em deia alguna cosa. Com a resultat, al cap d'una hora es va ofendre perquè treballava i no begués cervesa amb ell, i se'n va anar. Clàssic: era amic de Devops.

A les 6 del matí, vaig tornar a recrear la taula i les dades van començar a inundar-se. Tot va funcionar sense cap pèrdua.

Llavors va ser dur. Tothom es culpava mútuament de la pèrdua de dades. Si hagués passat un error nou, estic segur que hi hauria hagut un tiroteig

En aquestes baralles, finalment vam començar a entendre: l'empresa pensava que nosaltres érem els que treballem amb dades i controlem l'estructura de les taules. Van confondre els administradors amb els distribuïdors. I ens van venir a preguntar una cosa diferent als administradors.

La seva principal queixa és: què dimonis, sou responsable de les còpies de seguretat i no les vau fer correctament, vau continuar malbaratant les dades. I tot això amb estores rebobinadores.

Jo volia justícia. Vaig desenterrar la correspondència i vaig adjuntar captures de pantalla de tothom, on Leonid amb totes les seves forces els obliga a fer la còpia de seguretat que es va fer. La seva estació de servei es va posar del nostre costat després de la meva trucada telefònica. Més tard, Lenya va admetre la seva culpa.

El cap de l'empresa, al contrari, no va voler culpar a la seva pròpia gent. Les captures de pantalla i les paraules no van tenir cap efecte sobre ell. Creia que com que aquí érem experts, havíem de convèncer tothom i insistir en la nostra decisió. Pel que sembla, la nostra tasca era ensenyar a la Lenya i, a més, eludir-lo, que va ser designat com a director del projecte, a arribar al més important i abocar-li personalment tots els nostres dubtes sobre el concepte de còpies de seguretat.

La xerrada es respirava d'odi, d'agressivitat oculta i no oculta. No sabia què fer. Tot s'ha aturat. I després em van aconsellar la manera més senzilla: escriure un missatge personal al gerent i organitzar una reunió amb ell. Vasya, la gent a la vida real no és tan ràpida com ho són al xat. El cap va respondre al meu missatge: vinga, cap pregunta.

Va ser la reunió més espantosa de la meva carrera. El meu aliat del client, STO, no va trobar el moment. Vaig anar a la reunió amb el cap i la Lena.

Una i altra vegada vaig repetir el nostre possible diàleg al meu cap. Vaig aconseguir arribar molt d'hora, mitja hora abans. Vaig començar a posar-me nerviós, vaig fumar 10 cigarrets, ho vaig entendre, això és tot: estic fotut sol. No els podré convèncer. I va entrar a l'ascensor.

Mentre s'aixecava, va colpejar l'encenedor amb tanta força que el va trencar.

Com a resultat, Lenya no era a la reunió. I vam tenir una gran conversa sobre tot amb el cap! Sergei em va parlar del seu dolor. No volia "automatitzar Clickhouse", sinó que volia "fer que les consultes funcionin".

No vaig veure cap cabra, sinó un bon paio, preocupat pel seu negoci, immers en la feina les 24 hores del dia. El xat sovint ens atrau vilans, canalla i gent estúpida. Però a la vida aquestes són persones com tu.

Sergei no necessitava un parell de devops de lloguer. El problema que havien resultat era molt més gran.

Li vaig dir que podria resoldre els seus problemes: només és una feina completament diferent, i tinc un amic que hi treballa. Si haguéssim sabut des del principi que això era un tracte per a ells, hauríem evitat molt. És tard, però ens vam adonar que el problema rau en la mala gestió de dades, no en la infraestructura.

Ens vam donar la mà, ens van augmentar el sou dues vegades i mitja, però amb la condició que m'emporti absolutament tot l'embolic amb les seves dades i Clickhouse. A l'ascensor, em vaig comunicar amb el mateix DI Max i el vaig connectar amb la feina. Va ser necessari paladar tot el cúmul.

Hi havia moltes escombraries en el projecte adoptat. Començant per l'esmentada "còpia de seguretat". Va resultar que aquest mateix clúster de "còpia de seguretat" no estava aïllat. Ho van provar tot, de vegades fins i tot posant-lo en producció.

Els nostres desenvolupadors interns han creat el seu propi inseridor de dades personalitzat. Va treballar així: va agrupar els fitxers, va executar l'script i va fusionar les dades en una taula. Però el principal problema va ser que s'acceptaven una gran quantitat de dades per a una sol·licitud senzilla. La sol·licitud s'uneix a les dades cada segon. Tot pel bé d'un número: la quantitat per dia.

Els desenvolupadors interns van utilitzar l'eina d'anàlisi de manera incorrecta. Van anar a la grafana i van escriure la seva petició reial. Va pujar dades durant 2 setmanes. Va resultar ser un gràfic preciós. Però, en realitat, la sol·licitud de dades era cada 10 segons. Tot això s'amuntegava en una cua perquè Clickhouse simplement no va treure el processament. Aquí és on s'amagava el motiu principal. A Grafana no funcionava res, les sol·licituds estaven a la cua i constantment arribaven dades antigues i irrellevants.

Hem reconfigurat el clúster, hem tornat a fer la inserció. Els desenvolupadors interns van reescriure el seu "insertor" i va començar a compartir dades correctament.

Max va realitzar una auditoria completa de la infraestructura. Va descriure un pla per a la transició a un backend complet. Però això no s'adaptava a l'empresa. Esperaven un secret màgic de Max que els permetés treballar a la manera antiga, però només de manera eficient. La Lenya encara estava al capdavant del projecte i no va aprendre res. De tot el que se li va oferir, va tornar a escollir la seva alternativa. Com sempre, aquesta va ser la decisió més selectiva... atrevida. Lenya creia que la seva empresa tenia un camí especial. Espinós i ple d'icebergs.

De fet, aquí ens vam separar: vam fer el que vam poder.

Plens de coneixement i saviesa d'aquesta història, vam obrir el nostre propi negoci i vam formar diversos principis per a nosaltres mateixos. Mai començarem a treballar de la mateixa manera que ara.

DJ Max es va unir a nosaltres després d'aquest projecte i seguim treballant molt bé junts. El cas Clickhouse em va ensenyar a realitzar una auditoria completa i exhaustiva de la infraestructura abans de començar a treballar. Entenem com funciona tot i només llavors acceptem les tasques. I si abans ens afanyàvem de seguida a mantenir la infraestructura, ara primer fem un projecte puntual, que ens ajuda a entendre com posar-lo en condicions de funcionament.

I sí, evitem projectes amb infraestructures de merda. Encara que sigui per molts diners, encara que sigui per amistat. No és rendible portar a terme projectes malalts. Adonar-nos d'això ens va ajudar a créixer. O un projecte puntual per posar en ordre la infraestructura i després un contracte de manteniment, o simplement passem volant. Passat un altre iceberg.

PS Per tant, si teniu preguntes sobre la vostra infraestructura, No dubteu a enviar una sol·licitud.

Tenim 2 auditories gratuïtes al mes, potser el vostre projecte serà una d'elles.

Font: www.habr.com

Afegeix comentari