Während alle meinen Geburtstag feierten, reparierte ich den Cluster bis zum Morgen - und die Entwickler gossen ihre Fehler auf mich





Hier ist eine Geschichte, die meine Herangehensweise an Devops Arbeit für immer verändert hat. In Zeiten der Werft, lange vor ihnen, als die Jungs und ich nur über unser Geschäft nachdachten und bei zufälligen Bestellungen freiberuflich tätig waren, fiel ein Angebot in meinen Einkaufswagen.



Das Unternehmen, das schrieb, war in der Datenanalyse. Sie verarbeitete jeden Tag Tausende von Anfragen. Sie kamen mit den Worten zu uns: Leute, wir haben ClickHouse und wir wollen seine Konfiguration und Installation automatisieren. Wir möchten, dass Ansible, Terraform, Docker und all dies in der Gita gespeichert werden. Wir wollen einen Cluster von vier Knoten mit jeweils zwei Replikaten.



Bei einer Standardanfrage gibt es Dutzende davon, und Sie benötigen dieselbe gute Standardlösung. Wir sagten "okay" und in 2-3 Wochen war alles fertig. Sie nahmen den Job an und begannen mit unserem Dienstprogramm in den neuen Klickhaus-Cluster zu ziehen.



Niemand mit ihnen wollte oder wusste, wie man mit Klickhaus bastelt. Dann dachten wir, dass dies ihr Hauptproblem sei, und deshalb gab die Tankstelle des Unternehmens meinem Team einfach die Erlaubnis, die Arbeit so weit wie möglich zu automatisieren, um nicht wieder dorthin zu fahren.



Wir begleiteten den Umzug, andere Aufgaben erschienen - Backups einrichten und überwachen. Im gleichen Moment verschmolz die Tankstelle dieser Firma zu einem anderen Projekt und überließ uns dem Kommandeur eines unserer eigenen - Leonid. Lenya war kein sehr begabter Typ. Ein einfacher Entwickler, der plötzlich für Klickhaus verantwortlich war. Es scheint, dass dies sein erster Auftrag war, etwas zu führen, und von der angehäuften Ehre hatte er Sternfieber.



Zusammen haben wir Backups gestartet. Ich habe angeboten, die Originaldaten sofort zu sichern. Nehmen Sie einfach, reißen Sie und werfen Sie elegant in etwas c3. Die Rohdaten sind Gold. Es gab noch eine andere Möglichkeit - die Tische selbst in Klickhaus mit einem Fries zu sichern und zu kopieren. Aber Lenya hat seine eigene Lösung gefunden.



Er kündigte an, dass wir einen zweiten Klickhaus-Cluster brauchen. Und von nun an werden wir Daten in zwei Cluster schreiben - den Haupt- und den Sicherungscluster. Ich sage ihm, sie sagen, Leon, es wird kein Backup sein, sondern eine aktive Nachbildung. Und wenn Daten in der Produktion verloren gehen, ist Ihre Sicherung dieselbe.



Aber Lyonya packte fest das Lenkrad und weigerte sich, auf meine Argumente zu hören. Wir haben lange Zeit mit ihm im Chatroom verbracht, aber es gab nichts zu tun - Lenya hat das Projekt vorangetrieben, wir waren nur angeheuerte Leute von der Straße.



Wir haben den Status des Clusters überwacht und nur die Arbeit der Administratoren in Rechnung gestellt. Saubere Verwaltung von Klickhaus ohne Dateneingang. Der Cluster war verfügbar, die Festplatten waren in Ordnung, die Knoten waren in Ordnung.



Wir hatten immer noch keine Ahnung, dass wir diesen Auftrag aufgrund eines schrecklichen Missverständnisses innerhalb ihres Teams erhalten haben.



Der Manager war unglücklich darüber, dass Klickhaus langsam war und manchmal Daten verloren gingen. Er stellte seinem STO die Aufgabe, es herauszufinden. Er fand es heraus, so gut er konnte, und kam zu dem Schluss, dass man Klickhaus nur automatisieren muss - und das war's. Aber wie sich bald herausstellte, brauchten sie überhaupt kein Team von Entwicklern.



All dies erwies sich als sehr, sehr schmerzhaft. Und am beleidigendsten war es an meinem Geburtstag.






Freitag Abend. Ich buchte einen Tisch in meiner Lieblingsweinbar und rief meine Homies an.



Fast bevor wir gehen, bekommen wir die Aufgabe, etwas zu ändern, wir tun es, alles ist in Ordnung. Alter bestanden, Clickhouse bestätigt. Wir haben uns bereits in einer Bar versammelt und sie schreiben uns, dass es nicht genügend Daten gibt. Sie zählten - alles scheint genug zu sein. Und sie gingen los, um zu feiern.



Das Restaurant war an einem Freitagabend laut. Nachdem sie Getränke und Essen bestellt hatten, saßen sie auf den Sofas. Während dieser ganzen Zeit wurde mein Durchhang langsam mit Nachrichten überschwemmt. Sie haben etwas über Datenmangel geschrieben. Ich dachte - der Morgen ist weiser als der Abend. Besonders heute.



Kurz vor elf riefen sie an. Es war der Leiter der Firma ... "Wahrscheinlich hat er beschlossen, mir zu gratulieren" - ich dachte sehr zögernd und nahm den Hörer ab.



Und ich hörte so etwas wie: „Du hast unsere Daten versaut! Ich bezahle dich, aber nichts funktioniert! Sie waren für Backups verantwortlich und haben keine Scheiße gemacht! Lass es uns reparieren! " - nur noch rauer.



- Weißt du was, geh und fick dich! Heute habe ich Geburtstag, und jetzt werde ich trinken und nicht deine hausgemachte Scheiße und Stöcke im Juni machen!



Das habe ich nicht gesagt. Stattdessen holte er seinen Laptop heraus und machte sich an die Arbeit.



Nein, ich habe bombardiert, ich habe höllisch bombardiert! Ich habe ätzendes "Ich habe es dir gesagt" in den Chat gegossen - weil das Backup, das natürlich kein Backup war, nichts gespeichert hat.



Die Jungs und ich haben herausgefunden, wie man die Aufnahme manuell stoppt und alles überprüft. Stellen Sie wirklich sicher, dass einige der Daten nicht geschrieben werden.



Wir haben die Aufzeichnung gestoppt und die Anzahl der Ereignisse pro Tag gezählt. Sie warfen mehr Daten ein, von denen nur ein Drittel nicht aufgezeichnet wurde. Drei Scherben von 2 Repliken. Sie fügen 100.000 Zeilen ein - 33.000 werden nicht geschrieben.



Es gab völlige Verwirrung. Alle schickten sich gegenseitig zum Ficken: Lenya ging zuerst dorthin, gefolgt von mir und dem Gründer der Firma. Nur die verbundene SRT versuchte, unsere Anrufe mit Rufen und Korrespondenz in Richtung einer Lösung des Problems zu bringen.



Was wirklich geschah - niemand verstand



Die Jungs und ich sind gerade ausgeflippt, als wir feststellten, dass ein Drittel aller Daten nicht nur nicht aufgezeichnet wurde - sie gingen verloren! Es stellte sich heraus, dass die Bestellung im Unternehmen wie folgt lautete: Nach dem Einfügen wurden die Daten unwiderruflich gelöscht, die Ereignisse wurden stapelweise vernichtet. Ich stellte mir vor, wie Sergei all dies in verlorene Rubel umwandelt.



Mein Geburtstag ging auch auf den Müllhaufen. Wir saßen an der Bar und generierten Ideen, um das geworfene Rätsel zu lösen. Der Grund für Klickhaus 'Sturz war nicht offensichtlich. Vielleicht ist es ein Netzwerk, vielleicht geht es um die Linux-Einstellungen. Ja, Hypothesen klangen genug.



Ich habe den Entwicklungsschwur nicht geleistet, aber es war unehrlich, die Jungs am anderen Ende der Leitung zu lassen - auch wenn sie uns für alles verantwortlich gemacht haben. Ich war mir zu 99% sicher, dass das Problem nicht in unseren Entscheidungen lag, nicht auf unserer Seite. Die 1% ige Chance, dass wir es vermasselt haben, brannte immer noch vor Angst. Aber egal auf welcher Seite das Problem lag, es musste behoben werden. Kunden, was auch immer sie sind, mit solch einem schrecklichen Datenleck zu belassen, ist zu grausam.



Bis drei Uhr morgens arbeiteten wir an einem Restauranttisch. Ereignisse auslösen, Auswahl einfügen - und losfahren, um die Lücken zu füllen. Wenn Sie die Daten vermasselt haben, geschieht dies folgendermaßen: Sie nehmen die durchschnittlichen Daten der letzten Tage und fügen sie in die Daten ein, die vermasselt wurden.



Nach drei Uhr morgens gingen mein Freund und ich zu meinem Haus und bestellten Pivasik vom Alkoholmarkt. Ich saß mit einem Laptop und Klickhausproblemen, ein Freund erzählte mir etwas. Infolgedessen war er eine Stunde später beleidigt, dass ich arbeitete und kein Bier mit ihm trank, und ging. Classic - war ein Freund von Devops.



Um 6 Uhr morgens habe ich die Tabelle neu erstellt und die Daten füllten sich. Alles hat ohne Verlust funktioniert.






Dann war es schwer. Alle beschuldigten sich gegenseitig, Daten verloren zu haben. Wenn es einen neuen Fehler gäbe, würde sicher eine Schießerei beginnen



In diesen Srachs begannen wir endlich zu verstehen, dass das Unternehmen dachte, wir wären die Leute, die mit Daten arbeiten und die Struktur von Tabellen überwachen. Sie haben Admins mit Dibieys verwechselt. Und sie kamen, um uns nicht wie Administratoren zu fragen.



Ihre Hauptbeschwerde ist - was zum Teufel, Sie waren für Backups verantwortlich und haben sie nicht normal erstellt, Sie haben die Daten fortgesetzt. Und das alles mit zurückspulenden Kumpels.



Ich wollte Gerechtigkeit. Ich habe die Korrespondenz ausgegraben und alle mit Screenshots versehen, in denen Leonid mit aller Kraft das Backup erstellt hat. Ihr STO hat sich nach meinem Anruf auf unsere Seite gestellt. Danach gab Lenya seine Schuld zu.



Der Firmenchef wollte im Gegenteil nicht seine eigenen Leute beschuldigen. Bildschirme und Wörter funktionierten nicht bei ihm. Er glaubte, da wir hier Experten waren, mussten wir alle überzeugen und auf unserer Entscheidung bestehen. Anscheinend bestand unsere Aufgabe darin, Lenya zu unterrichten und ihn, vom Projektmanager ernannt, zu umgehen, um den Hauptpunkt zu erreichen und alle unsere Zweifel am Konzept der Sicherungen persönlich auszuräumen.



Chatik strotzte vor Hass, versteckter und unverhohlener Aggression. Ich wusste nicht was ich tun sollte. Alles ist zum Stillstand gekommen. Und dann wurde mir der einfachste Weg geraten - dem Manager in einer persönlichen Notiz zu schreiben und einen Termin mit ihm zu vereinbaren. Vasya, Menschen im Leben sind nicht so Windhunde wie im Chat. Der Chef antwortete auf meine Nachricht: Komm, keine Frage.






Es war das lustigste Treffen meiner Karriere. Der Verbündete meines Kunden - STO - konnte die Zeit nicht finden. Ich ging zum Treffen mit dem Chef und Lyona.



Immer wieder wiederholte ich unseren möglichen Dialog in meinem Kopf. Ich habe es geschafft, viel im Voraus anzukommen, eine halbe Stunde im Voraus. Nervös begann ich 10 Zigaretten zu rauchen. Ich verstand alles - ich fickte alleine. Ich werde sie nicht überzeugen können. Und trat in den Fahrstuhl.



Während er kletterte, schlug er mit einem Feuerzeug, so dass er es brach.



Infolgedessen war Lenya nicht bei dem Treffen. Und wir hatten ein tolles Gespräch über alles mit dem Haupt! Sergei erzählte mir von seinen Schmerzen. Er wollte "Clickhouse nicht automatisieren" - er wollte, dass die Abfragen funktionieren.



Ich sah keine Ziege, sondern einen guten Mann, der sich Sorgen um sein Geschäft machte und rund um die Uhr in die Arbeit eintauchte. Chat zieht uns oft Bösewichte, Schurken und Dummköpfe an. Aber im Leben sind das Menschen wie Sie.



Sergei brauchte kein paar Devops zum Mieten. Das Problem, mit dem sie konfrontiert waren, stellte sich als viel größer heraus.



Ich sagte, dass ich seine Probleme lösen könnte - es ist nur ein ganz anderer Job und ich habe eine DIBI-Freundin für sie. Wenn wir anfangs herausgefunden hätten, dass dies ein Deal für sie ist, hätten wir viel vermieden. Spät, aber wir haben festgestellt, dass das Problem in der beschissenen Arbeit mit den Daten und nicht in der Infrastruktur liegt.



Wir haben uns die Hand geschüttelt, die Gebühr wurde zweieinhalb Mal erhöht, aber unter der Bedingung - ich nehme absolut den ganzen Schmutz mit ihren Daten und Klickhaus für mich. Im Aufzug kontaktierte ich den gleichen Dibieyschik Max und verband ihn mit der Arbeit. Es war notwendig, den gesamten Cluster zu schaufeln.






Treshak war in dem angenommenen Projekt in großen Mengen vertreten. Beginnend mit dem erwähnten "Backup". Es stellte sich heraus, dass derselbe "Backup" -Cluster nicht isoliert war. Sie haben alles darauf getestet, manchmal haben sie es sogar in Produktion genommen.



Mitarbeiterentwickler haben ihre eigenen benutzerdefinierten Daten "Einfügen" zusammengestellt. Es funktionierte wie folgt: Batch-Dateien, Ausführen eines Skripts und Zusammenführen von Daten zu einer Platte. Das Hauptproblem war jedoch, dass eine große Datenmenge für eine einfache Anfrage akzeptiert wurde. Verbundene Datenanforderung pro Sekunde. Alles um einer Zahl willen - der Menge pro Tag.



Interne Entwickler haben das Analysetool falsch verwendet. Sie gingen nach Grafana und schrieben ihre königliche Bitte. Es hat Daten in 2 Wochen ausgegeben. Es stellte sich heraus, dass es eine schöne Grafik war. Tatsächlich wurde die Datenanforderung jedoch alle 10 Sekunden ausgeführt. All dies sammelte sich in einer Warteschlange, da Klickhaus die Verarbeitung einfach nicht herausnahm. Hier war der Hauptgrund. In Grafan funktionierte nichts, Anfragen standen in einer Warteschlange, alte irrelevante Daten kamen ständig an.



Wir haben den Cluster neu konfiguriert und die Einfügung neu gestaltet. Die hauseigenen Entwickler haben ihre "Einfügung" neu geschrieben und die Daten wurden korrekt gesplittert.



Max führte eine vollständige Prüfung der Infrastruktur durch. Er skizzierte einen Plan für den Wechsel zu einem vollwertigen Backend. Dies passte aber nicht zum Unternehmen. Sie erwarteten von Max ein magisches Geheimnis, das es ihnen ermöglichen würde, auf altmodische Weise zu arbeiten, aber nur effektiv. Lenya war immer noch für das Projekt verantwortlich, die nichts gelernt hatte. Aus all dem, was vorgeschlagen wurde, wählte er erneut seine Alternative. Wie immer war es die selektivste ... gewagte Entscheidung. Lyonya glaubte, dass seine Firma einen besonderen Weg hatte. Dornig und voller Eisberge.



Eigentlich haben wir uns getrennt - wir haben getan, was wir konnten.






Mit vielen Zapfen, weise mit dieser Geschichte, eröffneten wir unser eigenes Geschäft und formulierten mehrere Prinzipien für uns. Wir werden nie so gut wie damals mit der Arbeit beginnen.



Nach diesem Projekt kam Max, der Debian-Spieler, zu uns und wir arbeiten immer noch großartig zusammen. Fall mit Klickhaus lehrte, wie man eine vollständige und gründliche Prüfung der Infrastruktur vor Beginn der Arbeit durchführt. Wir beschäftigen uns mit der Funktionsweise und nehmen erst dann die Aufgaben an. Und wenn wir uns früher sofort beeilten, die Infrastruktur zu warten, führen wir jetzt zuerst ein einmaliges Projekt durch, um zu verstehen, wie man es in Betrieb nimmt.



Und ja, wir umgehen Projekte mit beschissener Infrastruktur. Auch wenn für viel Geld, auch wenn durch Freundschaft. Es ist nicht rentabel, kranke Projekte zu leiten. Diese Erkenntnis hat uns geholfen zu wachsen. Entweder ein einmaliges Projekt, um die Infrastruktur in Ordnung zu bringen, und dann ein Servicevertrag, oder wir fliegen einfach vorbei. An einem anderen Eisberg vorbei.



PS Wenn Sie Fragen zu Ihrer Infrastruktur haben, können Sie gerne eine Anfrage hinterlassen .



Wir haben 2 kostenlose Audits pro Monat, vielleicht gehört Ihr Projekt dazu.



All Articles