グーグルのクラウドを支えるテクノロジー > 第103回 Googleの分散ビルドシステムのアーキテクチャー(パート3)

※この記事は読者によって投稿されたユーザー投稿です:
  • 編集部の見解や意向と異なる内容の場合があります
  • 編集部は内容について正確性を保証できません
  • 画像が表示されない場合、編集部では対応できません
  • 内容の追加・修正も編集部では対応できません

CTC教育サービスはコラム「グーグルのクラウドを支えるテクノロジー > 第103回 Googleの分散ビルドシステムのアーキテクチャー(パート3)」を公開しました。

###

はじめに
 前回に続いて、2020年に公開された論文「Scalable Build Service System with Smart Scheduling Service(PDF)」を紹介します。この論文では、Google社内で利用されている「分散ビルドシステム」のアーキテクチャーが解説されています。今回は、このシステムの実際の動作環境について、論文に掲載の性能データなどを含めて紹介します。

コンポーネントの配置とスケーラビリティ
 Google社内の分散ビルドシステムは、前回の図1に示したように、いくつかの独立したサービスが連携するマイクロサービス型のアーキテクチャーになっており、それぞれのサービスは、負荷分散のために複数デプロイされています。また、世界各地の開発者が利用するシステムのため、各サービスは複数のデータセンターに分散配置されており、データセンターを跨いだサービス間の連携も行われます。Googleのデータセンターは、Googleが所有する専用回線で相互接続されており、地理的に離れたデータセンター間でも数ミリ秒以下のレイテンシーで通信することができます。これにより、システム全体の性能を損なうことなく、データセンターを跨いだマイクロサービスの配置が可能になります。
 ただし、特に低レイテンシーでの通信が求められるサービスは、同一のリージョン内で連携します。たとえば、前回の図1にあるスケジューリングサービスは、Spannerデータベースに対するデータの読み書きが大量に発生するので、同一リージョンにあるSpannerを利用します。また、Bazel Workerからのイベント情報をリアルタイムに取得するEvent Serviceも、同一リージョンで連携します。つまり、リージョンAのBazel WorkerのイベントはリージョンAのEvent Serviceが収集して、リージョンBのBazel WorkerのイベントはリージョンBのEvent Serviceが収集するといった動作になります。同様に、Bazel WorkerとExecutor Clusterも同一リージョンでの連携が行われます。

この続きは以下をご覧ください
https://www.school.ctc-g.co.jp/columns/nakai2/nakai2103.html

この記事が役に立ったらシェア!
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!

人気記事トップ10(過去7日間)

今日の用語

ファネル
ファネル(funnel)とは、ろうと、じょうごのこと。主にマーケティング領域で使 ...→用語集へ

インフォメーション

RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]