コンテンツに移動
アプリケーション開発

Cloud Deploy の新機能により、アプリケーションのデプロイがさらに効率化

2023年5月24日
https://storage.googleapis.com/gweb-cloudblog-publish/images/database-ja.max-2500x2500.png
Google Cloud Japan Team

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

ソフトウェアを定期的にリリースするには、優れた実践方式だけでなく高度なツールも必要です。ソフトウェアを本番環境にリリースすることにおいて、優れたツールには事欠きません。しかし、Cloud Deploy は独自の価値をもたらします。Cloud Deploy は、フルマネージドの独自の継続的デリバリー サービスであり、Google Kubernetes EngineCloud Run などのランタイムに、継続的なソフトウェアのリリースを迅速かつ容易に行えるようにするものです。このたび、この Cloud Deploy に新しい機能が加わってより高度になりました。

Google は、開発当初からデベロッパーのエクスペリエンスを考慮しており、コンソールでの Cloud Deploy の操作方法に重点を置いてきました。GUI ナビゲーション エクスペリエンスはわかりやすく、見た目どおりのものが、そのまま作業すべき内容を表します。可能な限り、コンテキストの切り替えを最小限に抑えてデベロッパーの労力を軽減し、新機能を早くマスターできるようにしています。

Cloud Deploy の豊富な機能と、デプロイがどのように効率化されるのかについて、もう少し詳しく見てみましょう。

リリース プロモーション、ロールバック、承認

ソフトウェア開発ライフサイクルの早い段階で問題を検出できるため、費用のかかるサービス中断が減り、デベロッパーの生産性が向上します。Cloud Deploy は、CI / CD のシフトレフトというアイデアを現実にするものです。不正な承認に対する安全保護対策として、Cloud Deploy では、リリースのプロモーションロールバック承認などのフロー管理機能を活用できます。実際、最近のデベロッパー向け調査において、リリースのプロモーションや承認のような DevOps スタイルの継続的デリバリー タスクの自動化に Cloud Deploy を使用すると、競合するクラウド サービスと比較して 2.4 倍高速になることがわかりました。
https://storage.googleapis.com/gweb-cloudblog-publish/original_images/202305ja01.gif
Google Cloud Deploy におけるプロモーションと承認の手順

リリースがデリバリー パイプラインで定義されたターゲットにデプロイされると、ワンクリックで次のターゲットにプロモーションできます。プロモーションは、操作後にすぐに開始されます。これは、Google Kubernetes クラスタ、Anthos クラスタ、Cloud Run など、どのターゲットでも同じです。

Cloud Deploy では、どのターゲットでも、デプロイされたアプリケーションをロールバックできます。ロールバックは、最後に正常にデプロイされたリリースに対してロールアウトをトリガーするよう構成されています。新しいロールアウトでは、成功したデプロイで使用されたものと同じパラメータが使用され、使い慣れたインターフェース内ですべてを制御できるようになります。

Cloud Deploy は、CI / CD のシフトレフトというアイデアを現実にするものです。承認プロセスがインターフェースに直接組み込まれているため、承認を得るために何人ものプログラム マネージャーやオペレーターに連絡したり、チケットを送信してから長く待たされたりといったことはもう起こりません。任意のターゲットに対して承認を要求できるようになり、そのターゲットへのリリースの承認や拒否を行えるようになりました。Pub/Sub と Google Cloud Deploy API を使用してワークフロー管理システム(ServiceNow など)や他のシステムを Google Cloud Deploy と統合することで、承認をプログラムで管理できるようになります。承認プロセスをインターフェースに組み込むことで、組織はソフトウェアを介してポリシーを維持できるようになり、時間のかかる手動での承認が不要になります。

複数のロケーションへのデプロイ

2022 年に前述の調査を実施して以来、Google は開発の加速化に向けて Cloud Deploy の機能を更新してきました。たとえば、複数のターゲットに同時にデプロイすることでロールアウトの高速化が可能になりますが、Cloud Deploy がまさにそれを実現できることを 3 月にご紹介しました。

以前はすべてのクラスタを更新するために、1 つずつ順番に Cloud Deploy パイプラインを実行して各クラスタを更新する必要があり、最適な状態ではありませんでした。今回の Cloud Deploy の新しい更新により、Google Kubernetes Engine クラスタ、Cloud Run インスタンス、Anthos クラスタのいずれかのグループ内のすべてのメンバーに一度で同時にデプロイできるようになります。クラスタの「並列デプロイ」を行うこの機能によって、グローバルに分散したアプリケーションの全クラスタの更新などが飛躍的に速くなります。

あるアプリケーションがグローバルにデプロイされているシナリオについて考えてみましょう。各リージョンには、複数のクラスタが存在する可能性があります。この例では、アジア リージョンにはクラスタが 4 つあります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/202305ja02.max-800x800.png
パイプラインは、アジアの 4 つのリージョン(asia-east1、asia-east2、asia-east3、asia-east4)にある Google Kubernetes Engine(GKE)ターゲット クラスタを表しています。

Cloud Deploy を使用すると、これら asia-east リージョンの 4 つのクラスタすべてに同時にデプロイできます。問題がなければ、europe-west のクラスタへのプロモーションを開始できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/202305ja03.max-1000x1000.png
ステージ間のデプロイの進行状況を示すパイプラインの図

カナリア(公開プレビュー版)

カナリア デプロイを使用すると、新しいバージョンのアプリケーションを、同じアプリケーションの既存のバージョンとともにデプロイできます。カナリア(新バージョン)は、お客様が定義した割合でロールアウトできます。それぞれの割合の増加はフェーズと呼ばれます。フェーズが終了すると、お客様はロールアウトを次のフェーズに進めるかどうかを選択できます。また、理由を問わずロールバックを選択することもできます。これにより、中断を最小限に抑えつつ、安全かつ段階的なロールアウトを行えるようになります。
https://storage.googleapis.com/gweb-cloudblog-publish/images/202305ja04.max-1200x1200.png

まとめ

Google は、Cloud Deploy を使用することで、Google Cloud ランタイムにワークロードをデプロイする最もシンプルかつ最速の方法を提供したいと考えています。このミッションを引き続き推進する今後のプロダクト アップデートにご期待ください。また、GKE、Cloud Run、Anthos への継続的デリバリーを簡単かつ高度なものにすることにも日々取り組んでいます。以下の Cloud Deploy のトレーニングもぜひご活用ください。


- プロダクト マーケティング マネージャー Brenna Washington
- アウトバウンド プロダクト マネージャー Nate Avery

投稿先