コンテンツに移動
DevOps & SRE

ソフトウェアを一度にどこにでも配布 - Cloud Deploy マルチターゲットの概要

2023年4月5日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 3 月 29 日に、Google Cloud blog に投稿されたものの抄訳です。

開発者として、私は長い間、一度に複数のターゲットにリリースすることを夢見てきました。それができれば物事がスピーディに進み、運用がシンプルになります。それがついに実現します。

最新の Cloud Deploy 公開プレビューで可能になります。リリースのパフォーマンスを向上させようとしている方も、デプロイ フェーズのターゲットを整理しようとしている方も、すべてのクラスタにリリースが届くまで何時間も待つ必要はもうありません。

新機能について

今後は、Google Kuberentes Engine クラスタ、Cloud Run インスタンス、Anthos clusters のいずれかのグループのすべてのメンバーに対し、同時かつ即時のデプロイが可能になります。

グローバルに分散されたアプリケーションの場合、複数のリージョンに複数のクラスタを配置するのが一般的です。これまで、すべてのクラスタを更新する場合は、Cloud Deploy パイプラインを順次実行し、各クラスタが一度に 1 つずつ更新されるのを待つ必要がありましたが、これは最適ではありませんでした。多くの場合、次のようになります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_Cloud_Deploy.max-800x800.jpg

Cloud Deploy の新しい並列デプロイ機能を使用すると、次のように「グループ」内のすべてのクラスタを同時に更新できるようになります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_Cloud_Deploy.max-1200x1200.jpg

実際の作業の詳細

この機能は、複数のクラスタやリージョンにまたがるリリースのロールアウトを管理するためによくリクエストされます。ゲーム業界で多くのユーザーが使用する人気のクラウド ゲームサーバー オーケストレーション システムである Agones のユーザーに特に当てはまります。Cloud Deploy は Skaffold を利用しているため、あらゆる種類の Kubernetes YAML リソース(カスタム リソースの定義も含む)を処理でき、Agones との完全な互換性を実現しています。

多くの場合、リリース(または新しい Agones フリート)は、まず世界の特定の地域で実施されます。たとえば、オーストラリアの複数の Google Kubernetes Engine クラスタなどです(どのリージョンでもかまいませんが、最初にテストするリージョンを 1 つ選択します)。リリースがうまくいくことを前提として、ヨーロッパ リージョンのすべてのクラスタ、次に北米といったように昇格されることがあります。各リージョンは、独自の multiTarget 対応の Target を Agones フリートの DeliveryPipeline に保有できます。世界のある地域における単一の デリバリー パイプライン ステージの仕組みは次のようなものです。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_Cloud_Deploy.max-600x600.jpg

これを既存の Cloud Deploy セットアップで使い始めるにあたり行うべきことは、あまりありません。Google Cloud は、multiTarget と呼ばれる Cloud Deploy の Target リソース内に新しい構成オプションを導入しました。次のように、新しい Target リソース「グループ」の一部にしたい multiTarget の下に既存のターゲットを指定するだけで済みます。

読み込んでいます...

multiTarget に子として参照する既存の Target がない場合は、次のように指定できます。

読み込んでいます...

2 つ目の Target は次のとおりです。

読み込んでいます...

試すことができる例

既存の Agones GKE クラスタがある場合は、次の構成を使用して、上で説明した新しい multiTarget 機能で並列デプロイ機能をテストできます。
読み込んでいます...

skaffold.yaml

読み込んでいます...

fleet.yaml

Agones GKE クラスタをまだ実行していなくても心配はいりません。ここでのポイントは、skaffold.yaml に特別なことは何もないということです。Agones オブジェクトの操作は、他の Kubernetes オブジェクトと同じです。同様に、並列デプロイを活用するために Skaffold 構成を変更する必要もありません。

ここまでお読みいただきありがとうございます。Google Kubernetes Engine で Cloud Deploy を使用する方法について詳しくは、こちらのチュートリアルをご覧ください。Cloud Deploy と新しい並列デプロイ機能に関する詳細は、以下のリンクからご確認いただけます。

関連情報


- DevOps 担当デベロッパーリレーションズ エンジニア Mia Villasenor
投稿先