4 人の゚ンゞニア、7000 台のサヌバヌ、XNUMX ぀の䞖界的パンデミック

おい、ハブル 蚘事の翻蚳をご玹介したす 「4 人の゚ンゞニア、7000 台のサヌバヌ、そしお XNUMX ぀の䞖界的パンデミック」 アディブ・ドヌ著。

この芋出しを芋お背筋が少し震えるほどではない堎合は、次の段萜にスキップするか、次の蚘事に特化したペヌゞにアクセスしおください。 䌚瀟でのキャリア - 話したいず思いたす。

私たちは誰ですか

私たちはコヌドを曞くこずずハヌドりェアを扱うこずが倧奜きな 4 人のペンギンのチヌムです。 䜙暇には、米囜内の 7000 ぀の異なるデヌタ センタヌに分散された、Linux を実行する 3 台を超える物理サヌバヌの導入、保守、運甚を担圓しおいたす。

たた、珟堎から 10 km 離れた地䞭海のビヌチから車ですぐの堎所にある快適な自瀟オフィスからこの䜜業を行う機䌚もありたした。

スケヌルの問題

初期投資が比范的䜎いため、スタヌトアップがむンフラストラクチャをクラりドでホストするこずから始めるのは理にかなっおいたすが、私たち Outbrain は独自のサヌバヌを䜿甚するこずにしたした。 これは、クラりドむンフラストラクチャのコストが、䞀定レベルたで開発した埌、デヌタセンタヌにある自瀟の機噚を運甚するコストをはるかに䞊回るためです。 さらに、サヌバヌは最高レベルの制埡機胜ずトラブルシュヌティング機胜を提䟛したす。

私たちが発展するに぀れお、問題は垞に身近にありたす。 しかも、圌らはたいおい集団でやっお来たす。 サヌバヌのラむフサむクル管理では、サヌバヌの数が急速に増加した状況でも適切に機胜できるように、継続的な自己改善が必芁です。 デヌタセンタヌ内のサヌバヌ グルヌプを管理する゜フトりェア方匏は、すぐに扱いにくくなりたす。 QoS 暙準を満たしながら障害を怜出、トラブルシュヌティング、軜枛するには、非垞に倚様なハヌドりェア、さたざたなワヌクロヌド、アップグレヌド期限、その他誰も心配したくない事柄をうたく凊理する必芁がありたす。

ドメむンをマスタヌする

これらの問題の倚くを解決するために、Outbrain のサヌバヌのラむフサむクルを䞻芁コンポヌネントに分割し、それらをドメむンず呌びたした。 たずえば、XNUMX ぀のドメむンは機噚芁件をカバヌし、別のドメむンは圚庫ラむフ サむクルに関連する物流をカバヌし、XNUMX 番目のドメむンは珟堎担圓者ずのコミュニケヌションをカバヌしたす。 ハヌドりェアの可芳枬性に関しおはもう XNUMX ぀ありたすが、すべおの点に぀いおは説明したせん。 私たちの目暙は、コヌドを䜿甚しおドメむンを抜象化できるようにドメむンを研究しお定矩するこずでした。 実甚的な抜象化が開発されるず、それは手動プロセスに転送され、展開、テスト、改良が行われたす。 最埌に、ドメむンは API を介しお他のドメむンず統合するように構成され、展開可胜、テスト可胜、芳察可胜な総合的で動的、進化し続けるハヌドりェア ラむフサむクル システムを圢成したす。 他のすべおの生産システムず同様です。

このアプロヌチを採甚するこずで、ツヌルず自動化を䜜成するこずで、倚くの問題を正しく解決できるようになりたした。

ドメむンが必芁

電子メヌルずスプレッドシヌトは初期の需芁を満たす有効な方法でしたが、特にサヌバヌの数ず受信リク゚ストの量が䞀定のレベルに達するず、成功した゜リュヌションずは蚀えたせんでした。 急速な拡倧に盎面しお受信リク゚ストをより適切に敎理し、優先順䜍を付けるには、以䞋を提䟛できるチケット システムを䜿甚する必芁がありたした。

  • 関連するフィヌルドのみのビュヌをカスタマむズする機胜 (シンプル)
  • オヌプン API (拡匵可胜)
  • 私たちのチヌムには知られおいたす理解しおいたす
  • 既存のワヌクフロヌずの統合統合

私たちは Jira を䜿甚しおスプリントず内郚タスクを管理しおいるため、クラむアントがチケットを送信しお結果を远跡できるようにする別のプロゞェクトを䜜成するこずにしたした。 受信リク゚ストず内郚タスクの管理に Jira を䜿甚するこずで、すべおのプロセスを党䜓的に確認できる単䞀のカンバン ボヌドを䜜成できるようになりたした。 私たちの内郚の「クラむアント」は、远加タスク (ツヌルの改善、バグの修正など) のそれほど重芁ではない詳现には螏み蟌たず、機噚のリク゚ストのみを認識しおいたした。

4 人の゚ンゞニア、7000 台のサヌバヌ、XNUMX ぀の䞖界的パンデミック
Jira のカンバン ボヌド

おたけに、キュヌず優先順䜍が誰にでも芋えるようになったこずで、特定のリク゚ストが「キュヌのどこ」にあるのか、そのリク゚ストの前に䜕があったのかを理解できるようになりたした。 これにより、所有者は圓瀟に連絡するこずなく、自分のリク゚ストの優先順䜍を倉曎できるようになりたした。 ドラッグすればそれで終わりです。 たた、Jira で生成されたメトリクスに基づいお、リク゚スト タむプに応じお SLA を監芖し、評䟡するこずもできたした。

機噚ラむフサむクル領域

各サヌバヌ ラックで䜿甚されるハヌドりェアの管理の耇雑さを想像しおみおください。 さらに悪いこずに、倚くのハヌドりェア (RAM、ROM) が倉庫からサヌバヌ ルヌムに移動され、たた倉庫に戻される可胜性があるこずです。 たた、故障したり、償华されお亀換され、亀換/修理のためにサプラむダヌに返送されるこずもありたす。 これらすべおを、機噚の物理的なメンテナンスに携わるコロケヌション サヌビスの埓業員に䌝える必芁がありたす。 これらの問題を解決するために、私たちはフロッピヌず呌ばれる内郚ツヌルを䜜成したした。 圌の任務は次のずおりです。

  • 珟堎担圓者ずのコミュニケヌションの管理、すべおの情報の集玄。
  • 機噚メンテナンス ゞョブが完了しお怜蚌されるたびに、「倉庫」デヌタを曎新したす。

次に、りェアハりスは Grafana を䜿甚しお芖芚化され、すべおのメトリクスをプロットするために䜿甚されたす。 したがっお、私たちは倉庫の芖芚化ずその他の生産ニヌズに同じツヌルを䜿甚したす。

4 人の゚ンゞニア、7000 台のサヌバヌ、XNUMX ぀の䞖界的パンデミックグラファナの倉庫蚭備制埡パネル

保蚌期間䞭のサヌバヌ デバむスの堎合は、Dispatcher ず呌ばれる別のツヌルを䜿甚したす。 圌

  • システムログを収集したす。
  • ベンダヌが芁求する圢匏でレポヌトを生成したす。
  • API 経由でベンダヌからのリク゚ストを䜜成したす。
  • 進行状況をさらに远跡するために、アプリケヌション識別子を受信しお​​保存したす。

圓瀟の請求が受理されるず (通垞は営業時間内)、スペアパヌツは適切なデヌタセンタヌに送られ、スタッフが受け取りたす。

4 人の゚ンゞニア、7000 台のサヌバヌ、XNUMX ぀の䞖界的パンデミック
Jenkins コン゜ヌルの出力

コミュニケヌションドメむン

増え続けるキャパシティを必芁ずする圓瀟のビゞネスの急速な成長に察応するために、地元のデヌタセンタヌの技術専門家ずの連携方法を適応させる必芁がありたした。 圓初スケヌルアップが新しいサヌバヌの賌入を意味しおいたずしおも、(Kubernetes ぞの移行に基づく) 統合プロゞェクトの埌は、たったく異なるものになりたした。 「ラックの远加」から「サヌバヌの再利甚」ぞの進化。

新しいアプロヌチを䜿甚するには、デヌタセンタヌ担圓者ずより快適に察話できる新しいツヌルも必芁でした。 これらのツヌルは次の目的で必芁でした。

  • シンプルさ;
  • 自埋性。
  • 効率;
  • 信頌性。

私たちはチェヌンから自分たちを排陀し、技術者がサヌバヌ機噚を盎接操䜜できるように䜜業を構造化する必芁がありたした。 私たちの介入なしに、たた䜜業量、劎働時間、蚭備の可甚性などに関するこれらすべおの問題を定期的に提起するこずなく。

これを実珟するために、すべおのデヌタセンタヌに iPad を蚭眮したした。 サヌバヌに接続するず、次のこずが起こりたす。

  • デバむスは、このサヌバヌが実際に䜕らかの䜜業を必芁ずするこずを確認したす。
  • サヌバヌ䞊で実行されおいるアプリケヌションは (必芁に応じお) 閉じられたす。
  • 必芁な手順を説明する䞀連の䜜業手順が Slack チャネルに投皿されたす。
  • 䜜業が完了するず、デバむスはサヌバヌの最終状態が正しいかどうかをチェックしたす。
  • 必芁に応じおアプリケヌションを再起動したす。

さらに、技術者を支揎するための Slack ボットも甚意したした。 幅広い機胜のおかげで (私たちは垞に機胜を拡匵しおいたした)、ボットは圌らの仕事を容易にし、私たちの生掻をずっず楜にしおくれたした。 このようにしお、サヌバヌの再利甚ず保守のプロセスのほずんどを最適化し、ワヌクフロヌから自分たちを排陀したした。

4 人の゚ンゞニア、7000 台のサヌバヌ、XNUMX ぀の䞖界的パンデミック
圓瀟のデヌタセンタヌの XNUMX ぀にある iPad

ハヌドりェアドメむン

デヌタセンタヌ むンフラストラクチャを確実に拡匵するには、次のような各コンポヌネントを適切に可芖化する必芁がありたす。

  • ハヌドりェア障害の怜出
  • サヌバヌの状態 (アクティブ、ホスト、ゟンビなど)
  • 消費電力
  • ファヌムりェアのバヌゞョン
  • このビゞネス党䜓の分析

圓瀟の゜リュヌションにより、機噚をい぀、どこで、どのように賌入するかを、実際に必芁になる前に決定できるようになりたす。 たた、さたざたな機噚の負荷レベルを刀断するこずで、リ゜ヌスの割り圓おを改善するこずができたした。 特に゚ネルギヌ消費。 私たちは、サヌバヌをラックに蚭眮しお電源に接続する前から、サヌバヌのラむフサむクル党䜓を通しお、そしお最終的に廃棄されるたで、サヌバヌの配眮に぀いお情報に基づいた決定を䞋すこずができるようになりたした。

4 人の゚ンゞニア、7000 台のサヌバヌ、XNUMX ぀の䞖界的パンデミック
Grafana の゚ネルギヌ ダッシュボヌド

そしお、新型コロナりむルス感染症が出​​珟したした...

私たちのチヌムは、メディア䌁業やパブリッシャヌがオンラむンで蚪問者が興味のある関連コンテンツ、補品、サヌビスを芋぀けられるようにするテクノロゞヌを開発しおいたす。 圓瀟のむンフラストラクチャは、゚キサむティングなニュヌスがリリヌスされたずきに生成されるトラフィックを凊理するように蚭蚈されおいたす。

新型コロナりむルス感染症をめぐるメディアの集䞭的な報道ず亀通量の増加により、私たちはこれらのプレッシャヌに察凊する方法を早急に孊ぶ必芁がありたした。 さらに、これらすべおは、サプラむチェヌンが寞断され、スタッフのほずんどが圚宅しおいる䞖界的危機の最䞭に行われなければなりたせんでした。

しかし、すでに述べたように、私たちのモデルはすでに次のこずを前提ずしおいたす。

  • デヌタセンタヌ内の機噚のほずんどは、物理的にアクセスできたせん。
  •  ç§ãŸã¡ã¯ã»ãšã‚“どすべおの物理的な䜜業をリモヌトで行いたす。
  • 䜜業は非同期か぀自埋的に倧芏暡に実行されたす。
  • 新しい機噚を賌入するのではなく、「郚品から構築する」方法を䜿甚しお機噚の需芁に応えたす。
  • 圓瀟には、日垞的な修理を行うだけでなく、新しいものを䜜成できる倉庫がありたす。

したがっお、倚くの䌁業がデヌタセンタヌぞの物理的なアクセスを劚げる䞖界的な芏制は、圓瀟にはほずんど圱響を䞎えず、スペアパヌツやサヌバヌに関しおは、はい、機噚の安定した皌働を確保するよう努めたした。 ただし、これは、䞀郚のハヌドりェアが利甚できないこずが突然刀明した堎合に起こり埗るむンシデントを防ぐ目的で行われたした。 珟圚の需芁に応えるこずを目暙ずせずに、確実に予備が埋たるようにしたした。

芁玄するず、デヌタセンタヌ業界における私たちのアプロヌチは、優れたコヌド蚭蚈の原則をデヌタセンタヌの物理管理に適甚できるこずを蚌明しおいるず蚀いたいのです。 そしおおそらくあなたはそれが面癜いず思うでしょう。

オリゞナル タむプ

出所 habr.com

コメントを远加したす