Google Cloud
ソリューション ガイド : Spinnaker、Container Engine、Container Builder で信頼性の高いデプロイ体制を構築
2017年10月20日
Google Cloud Japan Team
Kubernetes にはアプリケーションのデプロイを支援するすばらしいプリミティブがあります。これによって Kubernetes は、コンテナ化されたアプリケーションのロールアウトという大変な仕事をこなします。
Google Container Engine のもとでは、わずか数分で Kubernetes クラスタをセットアップし、アプリケーションをデプロイできる状態にすることが可能です。ただし、この精妙なデプロイ エンジンがいかに優秀だとしても、やるべきことは他にたくさんあり、それが終わらなければデプロイを始めることさえできません。そして、いったんデプロイを開始したら、安全かつタイムリーな形で確実に完了させる必要があります。
この隙間を埋めるべく、デベロッパーたちはしばしば、Google Cloud Container Builder や Spinnaker といったツールを使用して継続的デリバリのパイプラインを作ろうと考えます。


私たち Google は先ごろ、継続的デリバリ パイプラインを Container Builder と Spinnaker によってゼロから作る方法を解説したソリューション ガイドを公開しました。以下に示すのは、ソフトウェアの正しさをチェックしたうえで、ビルドして慎重にロールアウトする継続的デリバリ パイプラインの例です。
アプリケーションがテストに合格すると、Container Builder はアプリケーションのイミュータブルな Docker イメージにタグを付けて Google Container Registry にプッシュします。すると、今度は Spinnaker が Container Registry から Docker イメージを取り出し、デプロイ プロセスを開始します。
Spinnaker のパイプライン ステージは、更新のロールアウトをサポートする複雑なフローを作れるようになっています。上記の例では、カナリア デプロイを使って一部のユーザーにだけソフトウェアをロールアウトし、アプリケーションの機能チェックを行っています。
カナリア環境でのチェックが終了すると、Spinnaker はデプロイ パイプラインを一時的に停止させ、人間の手による承認を待ってから、ユーザー全体にアプリケーションをロールアウトします。
ロールアウトの許可を Spinnaker に与えるためには、主要なパフォーマンス指標をチェックし、アプリケーションのトラフィックが落ち着くのを待つか、もしくはカナリア環境を手作業で検証します。そして満足できる結果が得られたら、そこで初めてリリースを承認します。すると、Spinnaker がソフトウェアのロールアウトを完了させます。
もちろん、誰もがこのフローに満足できるわけではないでしょう。しかし、少なくとも Spinnaker と Container Builder は、組織のニーズを満たした形でリリース プロセスを自動化できるよう、柔軟できめ細かいステージを提供してくれます。
まずはこちらのソリューション ガイドをチェックしてみてください。もしくは、Spinnaker のパイプライン ステージについて詳しく解説したドキュメントをご覧ください。
* この投稿は米国時間 10 月 9 日、Cloud Solutions Architect である Vic Iglesias によって投稿されたもの(投稿はこちら)の抄訳です。
- By Vic Iglesias, Cloud Solutions Architect