ソフトウェアを一度にどこにでも配布 - Cloud Deploy マルチターゲットの概要
Google Cloud Japan Team
※この投稿は米国時間 2023 年 3 月 29 日に、Google Cloud blog に投稿されたものの抄訳です。
開発者として、私は長い間、一度に複数のターゲットにリリースすることを夢見てきました。それができれば物事がスピーディに進み、運用がシンプルになります。それがついに実現します。
最新の Cloud Deploy 公開プレビューで可能になります。リリースのパフォーマンスを向上させようとしている方も、デプロイ フェーズのターゲットを整理しようとしている方も、すべてのクラスタにリリースが届くまで何時間も待つ必要はもうありません。
新機能について
今後は、Google Kuberentes Engine クラスタ、Cloud Run インスタンス、Anthos clusters のいずれかのグループのすべてのメンバーに対し、同時かつ即時のデプロイが可能になります。
グローバルに分散されたアプリケーションの場合、複数のリージョンに複数のクラスタを配置するのが一般的です。これまで、すべてのクラスタを更新する場合は、Cloud Deploy パイプラインを順次実行し、各クラスタが一度に 1 つずつ更新されるのを待つ必要がありましたが、これは最適ではありませんでした。多くの場合、次のようになります。
Cloud Deploy の新しい並列デプロイ機能を使用すると、次のように「グループ」内のすべてのクラスタを同時に更新できるようになります。
実際の作業の詳細
この機能は、複数のクラスタやリージョンにまたがるリリースのロールアウトを管理するためによくリクエストされます。ゲーム業界で多くのユーザーが使用する人気のクラウド ゲームサーバー オーケストレーション システムである Agones のユーザーに特に当てはまります。Cloud Deploy は Skaffold を利用しているため、あらゆる種類の Kubernetes YAML リソース(カスタム リソースの定義も含む)を処理でき、Agones との完全な互換性を実現しています。
多くの場合、リリース(または新しい Agones フリート
)は、まず世界の特定の地域で実施されます。たとえば、オーストラリアの複数の Google Kubernetes Engine クラスタなどです(どのリージョンでもかまいませんが、最初にテストするリージョンを 1 つ選択します)。リリースがうまくいくことを前提として、ヨーロッパ リージョンのすべてのクラスタ、次に北米といったように昇格されることがあります。各リージョンは、独自の multiTarget
対応の Target
を Agones フリートの DeliveryPipeline
に保有できます。世界のある地域における単一の デリバリー パイプライン ステージの仕組みは次のようなものです。
これを既存の 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