コンテンツに移動
DevOps & SRE

Google Cloud Deploy の継続的デリバリーの効率が向上

2022年8月17日
Google Cloud Japan Team

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

2022 年 1 月に Google Cloud Deploy一般提供されて以来、Google は Google Kubernetes Engine 環境へのソフトウェアの継続的デリバリーの確立と運用を容易にするという主要ミッションに注力してきました。

デベロッパー、DevOps エンジニア、ビジネス意思決定者との継続的な会話を通じて、オンボーディングのスピード、デリバリー パイプラインの管理、エンタープライズ向け機能の拡張についてフィードバックをいただいています。本日は、これらの分野で Google Cloud Deploy に追加される多数の機能をご紹介します。

迅速なオンボーディング

Skaffold は、継続的な開発、継続的インテグレーション(CI)、継続的デリバリー(CD)をオーケストレートするオープンソース ツールで、Google Cloud Deploy に不可欠です。Skaffold と Google Cloud Deploy によって、アプリケーションのローカル開発ループが継続的デリバリーにシームレスに接続され、エンドツーエンドのソフトウェア デリバリーのライフサイクル ツールに整合性がもたらされます。

初めて Skaffold を使用するチームを想定して、Google Cloud Deploy では、単一マニフェストのアプリケーションに Skaffold 構成が存在しない場合に、構成を生成できるようになりました。

リリースを作成すると、新しい「gcloud deploy releases create … --from-k8s-manifest」コマンドによりアプリケーションのマニフェストが提供され、Skaffold 構成が生成されます。これにより、アプリケーション開発チームや継続的デリバリー オペレーターは Google Cloud Deploy についての理解を深めることができ、継続的デリバリー機能を確立するにあたって初期段階における構成や習得の負荷が軽減されます。

このオプションを使用すると生成された Skaffold 構成を確認でき、さらに Skaffold 構成と Google Cloud Deploy に慣れてくると、特定のデリバリー パイプラインのニーズに合わせて独自の Skaffold 構成を開発できるようになります。

デリバリー パイプラインの管理

継続的デリバリー パイプラインは、常に使用されている状態です。新たなリリースが作成されると、本番環境ターゲットに向けた段階的なシーケンスが始まります。しかし、この過程は必ずしもスムーズではなく、デリバリー パイプラインと関連リソースの詳細な管理が必要になる場合があります。

このたび、デリバリー パイプラインの停止機能が追加されたことで、問題があるデリバリー パイプラインを一時的に停止し、すべてのリリースとロールアウトのアクティビティを制限できるようになりました。アクティビティを停止することで、調査を行い、問題や根本的な原因を特定できます。

問題があるのはデリバリー パイプラインではなく、リリースである場合もあります。リリースの放棄により、機能の不具合、古いライブラリなどの既知の問題が含まれるアプリケーション リリースがデプロイされるのを防ぐことができます。リリースの放棄は、望ましくないリリースがその後使用されるのを防ぐ一方で、問題の確認やトラブルシューティングのために利用可能な状態に維持します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/suspended_pipeline_blog.max-2200x2200.jpg

停止したデリバリー パイプラインと放棄されたリリース

リリース アプリケーションのマニフェストの問題を確認する際やトラブルシューティングの際に、リリース間や移行先の環境間でアプリケーション マニフェストを比較して、アプリケーション構成が変更された時間と理由を判断したい場合があります。しかし、アプリケーション マニフェストを比較するには、コマンドラインを使用して複数のファイルの差分を確認する必要があり、実施が難しい場合があります。

これを解決するため、Google Cloud Deploy にリリース インスペクタが追加され、アプリケーション マニフェストの確認や、デリバリー パイプライン内のリリース間、ターゲット間での比較が簡単にできるようになりました。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/release-inspector.gif
リリース インスペクタを使用したアプリケーション マニフェストの確認と比較

Google Cloud Deploy コンソール内のロールアウトの一覧は、これまで特定のリリースやターゲットに限定されてきました。このたび、以前からご要望のあった完全なデリバリー パイプライン ロールアウトの一覧をデリバリー パイプラインの詳細ページでご確認いただけるようになり、フィルタ機能も追加されました。

https://storage.googleapis.com/gweb-cloudblog-publish/images/rollouts_tab_blog.max-2200x2200.jpg

デリバリー パイプラインの詳細に完全なロールアウトの一覧を追加

実行環境は、カスタム レンダリングとデプロイ環境の構成に重要な役割を果たします。カスタム ワーカープール、Cloud Storage バケット、サービス アカウントを指定する機能に加え、実行タイムアウトが追加され、長時間実行されるデプロイをより適切にサポートできるようになりました。

拡張されたエンタープライズ向け機能

通常、エンタープライズ環境では、セキュリティ管理、ロギング、Terraform のサポート、利用可能なリージョンなど、運用を実現するための要件が数多くあります。

以前のプログ記事では、VPC Service Controls(VPC-SC)をプレビュー版でサポートすることを発表しました。このたびは、Google Cloud Deploy VPC-SC の一般提供を開始したことをお知らせします。Google Cloud Deploy が依存するサービスで顧客管理の暗号鍵(CMEK)を構成する方法についても文書化しました。

また、マニフェストのレンダリングやアプリケーションのデプロイのログを確認するだけではトラブルシューティングに不十分な場合もあります。そのような場合のために、Google Cloud Deploy サービス プラットフォーム ログが追加され、問題解決のためのさらなる情報を確認できるようになりました。

Terraform は Google Cloud のリソースをデプロイするうえで重要な役割を担っています。Google Cloud Platform の Terraform プロバイダを使用して、Google Cloud Deploy デリバリー パイプラインターゲット リソースをデプロイできるようになりました。これにより、Google Cloud Deploy のリソースをより広範な Google Cloud Platform のリソース デプロイの一部としてデプロイできるようになりました。

各リージョンでの利用環境は、さまざまなリージョンでのサービス提供が必要なビジネスにとって重要です。Google Cloud Deploy は、さらに 9 つのリージョンで利用可能となり、Google Cloud Deploy が利用できるリージョンは世界で 15 か所になりました。

今後の計画

包括的で使いやすく、費用対効果に優れた DevOps ツールは、効率的なソフトウェア デリバリー機能を構築するうえで重要な存在です。Google は、Google Cloud Deploy が完全な CI / CD パイプラインの実装を実現するうえで皆様のお役に立つことを願っています。この取り組みはまだ始まったばかりです。今後数か月にわたって Google Cloud Deploy に魅力的な機能を導入してまいりますので、引き続きご注目ください。

また、プロダクト ページドキュメントクイックスタートチュートリアルもご参照いただけます。最後に、こちらから Google Cloud Deploy に関するフィードバックをぜひお寄せください。皆さまからのご意見やご感想をお待ちしております。


- プロダクト マネージャー S. Bogdan 
投稿先