みんなが私の誕生日を祝っおいる間、私は朝たでクラスタヌを修正しおいたした - そしお開発者は自分たちのミスを私のせいにしたした

みんなが私の誕生日を祝っおいる間、私は朝たでクラスタヌを修正しおいたした - そしお開発者は自分たちのミスを私のせいにしたした

これは、DevOps 䜜業に察する私のアプロヌチを氞遠に倉えた物語です。コロナ以前の時代、圌らのずっず前、圌らず私が自分たちのビゞネスを蚈画し、ランダムな泚文でフリヌランスずしお働いおいた頃、1぀のオファヌが私のカヌトに萜ちたした。

これを曞いた䌚瀟はデヌタ分析䌚瀟です。圌女は毎日䜕千ものリク゚ストを凊理したした。圌らは次の蚀葉を持っお私たちにやっお来たした皆さん、私たちはClickHouseを持っおいたす、そしお私たちはその構成ずむンストヌルを自動化したいず思っおいたす。 Ansible、Terraform、Docker をすべお Git に保存したいず考えおいたす。それぞれ 2 ぀のレプリカを持぀ 4 ぀のノヌドからなるクラスタヌが必芁です。

これは暙準的なリク゚ストであり、数十ものリク゚ストがあり、同様に優れた暙準゜リュヌションが必芁です。私たちは「わかりたした」ず答え、2〜3週間埌にはすべおの準備が敎いたした。圌らはその仕事を受け入れ、私たちのナヌティリティを䜿甚しお新しい Clickhouse クラスタヌぞの移行を開始したした。

誰もクリックハりスをいじりたいず思っおいたせんでしたし、その方法を知りたせんでした。そしお、これが圌らの䞻な問題であるず私たちは考えたので、䌚瀟のサヌビスステヌションは、私自身が二床ずそこに行かないように、可胜な限り䜜業を自動化するために私のチヌムにゎヌサむンを䞎えたした。

私たちは移動に同行したしたが、バックアップの蚭定や監芖など、他のタスクも発生したした。同時に、この䌚瀟のサヌビスステヌションは別のプロゞェクトず合䜵し、私たち自身のサヌビスステヌションの1぀であるレオニヌドが指揮官ずしお残されたした。レヌニャはそれほど才胜のある男ではありたせんでした。突然クリックハりスの責任者になった地味な開発者。䜕かを管理するずいう任務はこれが圌にずっお初めおの任務だったようで、圧倒的な栄誉に圌は星に打たれたような気分になった。

私たちは䞀緒にバックアップの䜜成に取り掛かりたした。元のデヌタをすぐにバックアップするこずをお勧めしたす。受け取っお、圧瞮しお、゚レガントに C3 に攟り蟌むだけです。生デヌタは金です。もう XNUMX ぀のオプションがありたした。フリヌズずコピヌを䜿甚しお、Clickhouse でテヌブル自䜓をバックアップするずいうものです。しかし、Lenya は独自の解決策を考え出したした。

圌は、2 ぀目の Clickhouse クラスタヌが必芁であるず発衚したした。そしおこれからは、メむンずバックアップの 2 ぀のクラスタヌにデヌタを曞き蟌みたす。私は圌に、レヌニャ、それはバックアップではなく、アクティブなレプリカになるだろうず蚀いたす。たた、運甚環境でデヌタが倱われ始めるず、バックアップでも同じこずが起こりたす。

しかし、レヌニャはハンドルをしっかりず握り、私の䞻匵を聞こうずしたせんでした。私たちはチャットで圌ず長い間話をしたしたが、䜕もするこずがありたせんでした。Lenya がプロゞェクトの責任者であり、私たちは路䞊で雇われた子䟛たちでした。

クラスタヌの状態を監芖し、管理者の䜜業に察しおのみ料金を請求したした。デヌタに関䞎しない玔粋なクリックハりス管理。クラスタヌは利甚可胜で、ディスクもノヌドも正垞でした。

チヌム内のひどい誀解が原因でこの泚文を受けたずはほずんど知りたせんでした

管理者は、Clickhouse が遅く、デヌタが時々倱われるこずに䞍満を抱いおいたした。圌はそれを解明するずいう課題をガ゜リンスタンドに課した。圌はできる限り最善を尜くしおそれを考え出し、クリックハりスを自動化する必芁があるだけである、それだけであるずいう結論に達したした。しかし、すぐに明らかになったように、開発チヌムはたったく必芁ありたせんでした。

これらすべおが非垞に、非垞に苊痛であるこずが刀明したした。そしお最も䞍快だったのは、それが私の誕生日だったずいうこずです。

金曜日の倕方。行き぀けのワむンバヌを予玄しお仲間たちを招埅したした。

出発盎前に、オルタを䜜成するタスクを受け取り、それを完了するず、すべお問題ありたせん。 Alter が通過し、クリックハりスが確認されたした。私たちはすでにバヌに行っおいたすが、デヌタが足りないずの手玙が来たした。私たちはすべおが十分であるように芋えるず蚈算したした。そしお圌らは祝うために出発したした。

レストランは金曜日に隒がしかった。飲み物ず食べ物を泚文したので、゜ファでく぀ろぎたした。その間ずっず、私のスラックにはゆっくりずメッセヌゞが溢れおいたした。圌らはデヌタの䞍足に぀いお䜕か曞いおいたした。私は思った - 朝は倕方よりも賢明です。特に今日は。

11時近くになるず電話がかかり始めた。それは䌚瀟の責任者でした...「おそらく私を祝うこずに決めたのだろう」私は非垞にためらいながら思い、電話を取りたした。

そしお、次のようなこずを聞​​きたした。「あなたは私たちのデヌタを台無しにしたした」お金を払っおいるのに、䜕も効果がありたせんあなたはバックアップの責任を負っおいたしたが、䜕もしおいたせんでした。盎したしょう」 -さらに倱瀌です。

- ほら、出お行けよ今日は私の誕生日です、そしお今から私は飲みたす、そしおくだらない棒からの6月の自家補補品には関䞎したせん

それは私が蚀っおいなかったこずです。代わりに、ラップトップを取り出しお仕事に取り掛かりたした。

いや、爆撃したよ、めちゃくちゃ爆撃したよ圌はチャットに「そう蚀ったじゃないか」ず蟛蟣な蚀葉を投げかけた――バックアップはたったくバックアップではなかったからだ――もちろん、䜕も保存されなかった。

少幎たちず私は、手動で録画を停止しおすべおを確認する方法を考え出したした。実際に、䞀郚のデヌタが曞き蟌たれおいないこずを確認したした。

私たちは蚘録を停止し、2 日に発生したむベントの数を数えたした。圌らはさらに倚くのデヌタをアップロヌドしたしたが、そのうちの 100.000 分の 33.000 だけが蚘録されおいたせんでした。それぞれ XNUMX ぀のレプリカを持぀ XNUMX ぀のシャヌド。 XNUMX 行を挿入したすが、XNUMX 行は蚘録されたせん。

完党に混乱がありたした。誰もがお互いに順番にやめようず蚀いたした。レヌニャが最初にそこに行き、次に私ず䌚瀟の創蚭者が続きたした。参加したガ゜リンスタンドだけが、私たちの怒鳎り声ず察応を問題の解決策を芋぀ける方向にそらそうずしたした。

本圓に䜕が起こっおいるのか誰も理解できなかった

党デヌタの 3 分の 1 が蚘録されおいないだけでなく、倱われおいたこずに気づいたずき、私もメンバヌもただただ驚きたした。瀟内での順序は次のずおりであるこずが刀明したした。挿入埌、デヌタは取り消し䞍胜に削陀され、むベントはバッチで無駄になりたした。私はセルゲむがこれをどのようにしお倱われたルヌブルに倉換するかを想像したした。

私の誕生日もゎミ箱に捚おられたした。私たちはバヌに座っおアむデアを出し、投げかけられたパズルを解こうずしたした。クリックハりスの厩壊の理由は明らかではなかった。おそらくそれはネットワヌクであり、おそらくそれは Linux の蚭定です。はい、あなたが望むものは䜕であれ、十分な仮説がありたす。

私は開発者の宣誓に埓わなかったが、電話の向こう偎の人たちを芋捚おるのは䞍誠実だった - たずえ圌らがすべおの責任を私たちに負わせたずしおも。問題は私たちの決断にあるのではなく、私たちの偎にあるのではないず99確信しおいたした。私たちが倱敗した可胜性が 1% あるず䞍安で燃え䞊がっおいたした。しかし、問題がどちら偎にあったずしおも、それは解決されなければなりたせんでした。顧客が誰であろうず、このようなひどいデヌタ挏掩を攟眮するのはあたりにも残酷です。

私たちは午前3時たでレストランのテヌブルで働きたした。むベントを远加し、遞択を挿入し、ギャップを埋めおいきたした。デヌタを台無しにするずきは、次のように行いたす。過去数日間の平均デヌタを取埗し、それを台無しにしたデヌタに挿入したす。

午前3時過ぎ、友人ず私は自宅に行き、アルコヌル垂堎でビヌルを泚文したした。私はラップトップずクリックハりスの問題を抱えお座っおいたした、そしお友人が私に䜕かを蚀いたした。その結果、1時間埌、圌は私が仕事をしおいお䞀緒にビヌルを飲んでいないこずに腹を立おお立ち去りたした。 Classic - 私は Devops の友人でした。

午前 6 時たでにテヌブルを再床再䜜成するず、デヌタが溢れ始めたした。すべおが損倱なく機胜したした。

それからは倧倉でした。誰もがデヌタ損倱のせいでお互いを責めたした。もし新たなバグが発生しおいたら間違いなく銃撃戊になっおいただろう

こうした戊いの䞭で、私たちはようやく理解し始めたした。䌚瀟は私たちがデヌタを操䜜し、テヌブルの構造を監芖しおいる人たちだず考えおいたのです。圌らは管理者ずディヌラヌを混同したした。そしお圌らは管理者ずは違うこずを私たちに尋ねに来たした。

圌らの䞻な䞍満は、「䞀䜓、あなたにはバックアップの責任があるのに、バックアップを適切に行わず、デヌタを無駄にし続けたのだ。」ずいうものです。これらすべおを巻き戻しマットで行いたす。

正矩が欲しかったのです。私は党員の通信を掘り起こし、スクリヌンショットを添付したした。レオニドは党力を尜くしお、䜜成されたバックアップを䜜成するよう匷制したした。私の電話の埌、圌らのサヌビスステヌションが私たちの味方になっおくれたした。その埌、レヌニャは眪を認めた。

それどころか、䌚瀟の責任者は自分の埓業員を責めたくありたせんでした。スクリヌンショットや蚀葉は圌に圱響を䞎えたせんでした。圌は、私たちがここの専門家である以䞊、党員を説埗し、自分たちの決定を䞻匵しなければならないず信じおいたした。どうやら、私たちの仕事は、Lenya に教えるこず、さらにプロゞェクトマネヌゞャヌに任呜された圌を迂回しお本題に進み、バックアップの抂念に関するすべおの疑問を個人的に圌にぶ぀けるこずでした。

チャットには憎しみ、隠れた、そしお隠されおいない攻撃性がにじみ出おいたした。䜕をすればいいのか分かりたせんでした。すべおが停止しおしたいたした。そしお、圌らは私に最も簡単な方法をアドバむスしたした - マネヌゞャヌに個人的なメッセヌゞを曞いお、圌ずのミヌティングを手配するこずです。ノァシャ、珟実の人々はチャットほど速くはありたせん。䞊叞は私のメッセヌゞに「質問しないで来おください」ず答えたした。

それは私のキャリアの䞭で最も恐ろしい䌚議でした。クラむアントの私の味方である STO は時間を芋぀けるこずができたせんでした。私はボスずレナず䞀緒に䌚議に行きたした。

私は頭の䞭で考えられる察話を䜕床も䜕床も繰り返したした。なんずか10分前にずおも早く到着するこずができたした。緊匵し始めお、タバコをXNUMX本吞っお、わかった、それだけだ、私は䞀人でク゜なんだず。圌らを説埗するこずはできないだろう。そしお圌ぱレベヌタヌに乗り蟌んだ。

圌は立ち䞊がる途䞭、ラむタヌを匷く打ちすぎお壊しおしたいたした。

その結果、レヌニャは䌚議に出垭したせんでした。そしお、私たちはボスずすべおに぀いお玠晎らしい䌚話をしたしたセルゲむは自分の痛みに぀いお私に語った。圌は「クリックハりスを自動化」したかったのではなく、「ク゚リを機胜させる」こずを望んでいたのです。

ダギは芋かけたせんでしたが、自分の仕事のこずを心配しおいお、四六時䞭仕事に没頭しおいる良い男でした。チャットはしばしば私たちを悪者、悪党、愚かな人々に匕き寄せたす。しかし、人生においお、これらはあなたず同じような人々です。

Sergei は Devop を数台雇う必芁はありたせんでした。圌らが抱えおいた問題はさらに倧きなものであるこずが刀明した。

私は圌の問題を解決できるず蚀いたした。それはたったく別の仕事であり、私にはその仕事で働いおいる友人がいたす。これが圌らにずっおの取匕であるず最初から分かっおいたら、私たちは倚くのこずを避けおいただろう。遅くなりたしたが、問題はむンフラストラクチャではなく、デヌタ管理の粗雑さにあるこずに気づきたした。

私たちは握手を亀わし、圌らは私たちの絊料を2.5倍䞊げたしたが、その条件は、私が圌らのデヌタずクリックハりスに関するすべおの混乱を私自身のために完党に匕き受けるこずでした。゚レベヌタヌの䞭で、私は同じ DI 担圓の Max ず通信し、圌を仕事に぀なぎたした。クラスタヌ党䜓をシャベルする必芁がありたした。

採択されたプロゞェクトにはゎミが倚かった。たずは前述の「バックアップ」から。この同じ「バックアップ」クラスタヌが分離されおいないこずが刀明したした。圌らはその䞊ですべおをテストし、時には本番環境に移すこずもありたした。

圓瀟の瀟内開発者は独自のカスタム デヌタ むンサヌタヌを䜜成したした。圌は次のように䜜業したした。ファむルをバッチ凊理し、スクリプトを実行し、デヌタをテヌブルにマヌゞしたした。しかし、䞻な問題は、1 ぀の単玔なリク゚ストに察しお膚倧な量のデヌタが受け入れられたこずでした。リク゚ストは毎秒デヌタを結合したした。すべおは、1 日あたりの量ずいう 1 ぀の数字のためです。

瀟内開発者は分析ツヌルを誀っお䜿甚したした。圌らはグラファナに行き、王宀の芁望を曞きたした。圌は 2 週間分のデヌタをアップロヌドしたした。綺麗なグラフになりたした。しかし実際には、デヌタ芁求は 10 秒ごずでした。 Clickhouse が単玔に凊理を実行しなかったため、これらすべおがキュヌに積み重なっおいたした。ここに最倧の理由が隠されおいたした。 Grafana では䜕も機胜せず、リク゚ストはキュヌに埅機し、叀くお無関係なデヌタが絶えず到着しおいたした。

クラスタヌを再構成し、挿入をやり盎したした。瀟内開発者が「むンサヌタヌ」を曞き換えたずころ、デヌタが正しくシャヌディングされるようになりたした。

Max はむンフラストラクチャ党䜓の監査を実斜したした。同氏は、本栌的なバック゚ンドぞの移行蚈画の抂芁を説明したした。しかし、これは䌚瀟には合わなかったのです。圌らはマックスから、昔ながらの方法で、しかし効率的に働くこずを可胜にする魔法の秘密を期埅しおいたした。レヌニャは䟝然ずしおプロゞェクトの責任者でしたが、䜕も孊びたせんでした。提瀺されたすべおの䞭から、圌は再び自分の遞択肢を遞びたした。い぀ものように、これは最も遞択的で倧胆な決定でした。レヌニャは、自分の䌚瀟には特別な道があるず信じおいたした。ずげがあり、氷山がいっぱいです。

実際、それが私たちの別れの堎所でした。私たちはできる限りのこずをしたした。

この歎史から埗た知識ず知恵に満ちた私たちは、自分たちのビゞネスを開き、自分たちでいく぀かの原則を確立したした。今も圓時ず同じように仕事を始めるこずは決しおありたせん。

このプロゞェクトの埌、DJ Max が私たちに加わり、今でも䞀緒に玠晎らしい仕事をしおいたす。クリックハりスの事䟋から、䜜業を開始する前に完党か぀培底したむンフラストラクチャ監査を実斜する必芁があるこずがわかりたした。私たちはすべおがどのように機胜するかを理解し、それから初めおタスクを受け入れたす。たた、以前であればむンフラストラクチャのメンテナンスにすぐに取り掛かっおいたずしおも、珟圚ではたず 1 回限りのプロゞェクトを実行するこずで、むンフラストラクチャを皌働状態に戻す方法を理解するこずができたす。

そしお、はい、私たちは粗悪なむンフラストラクチャを備えたプロゞェクトを避けたす。たずえ倧金であっおも、友情からであっおも。問題のあるプロゞェクトを実行するのは䞍利益です。このこずに気づくこずで、私たちは成長するこずができたした。むンフラストラクチャを敎備するための 1 回限りのプロゞェクトずその埌のメンテナンス契玄を結ぶか、あるいは単に通り過ぎおしたうかのどちらかです。もう䞀぀の氷山を通過したした。

远䌞むンフラストラクチャに぀いお質問がある堎合は、 お気軜にリク゚ストを残しおください.

匊瀟では月に 2 回の無料監査を行っおおり、おそらくあなたのプロゞェクトもそのうちの XNUMX ぀ずなるでしょう。

出所 habr.com

コメントを远加したす