Google Cloud Build とは?GCP ネイティブの CI/CD
Google Cloud Build は GCP のマネージド build サービスです。パイプラインのステップをコンテナとして実行し、artifact やイメージを生成して GCP 内でデプロイします。
Cloud Build は Google ネイティブの CI/CD runner です。一連のステップ(それぞれコマンドを実行するコンテナ)を記述すると、Cloud Build が Google 管理の compute 上で実行します。イメージを build して Artifact Registry へプッシュし、Cloud Run や GKE へデプロイする用途でよく使われ、すべてがネイティブ IAM とともに GCP 内で完結します。
コンテナとしてのステップ
Cloud Build の config はステップを列挙し、各ステップはコンテナイメージと実行する args を指定します。ステップは workspace を共有するため、あるステップがコードを取得し、次が build し、後のステップがプッシュやデプロイを行えます。コンテナに入れられるものは何でも build ステップにできます。
トリガー
- GitHub、GitLab、Cloud Source からの push や pull-request イベント。
- 手動または定期的な実行。
- 他システムからの API 呼び出し。
GCP とのネイティブ統合
GCP 内で実行されるため、Cloud Build は IAM 権限を持つ service account として認証します。したがって Artifact Registry へのプッシュや Cloud Run へのデプロイに追加の認証情報は不要です。この密な統合が、外部 CI に対する主な魅力です。
Cloud Build vs GitHub Actions
Cloud Build は GCP 中心で、世界がすべて GCP のときに最適です。GitHub Actions はコードとエコシステムの隣にあります。多くのチームは CI を GitHub Actions に置き、GCP ネイティブな特定の build にだけ Cloud Build を呼ぶか、まったく使わずに federation 経由で Actions から GCP へデプロイします。
CI/CD での役割
GCP ファーストの構成では、Cloud Build がパイプライン全体になります。イメージの build、テストの実行、Artifact Registry へのプッシュ、Cloud Run へのデプロイです。GitHub Actions ファーストの構成では、特定のステップだけ Cloud Build をトリガーするか、それを迂回して Actions workflow から gcloud CLI を使います。
重要なポイント
- Cloud Build は各パイプラインステップを Google 管理の compute 上でコンテナとして実行します。
- ネイティブ IAM 統合により、GCP 内でのプッシュやデプロイに追加の認証情報が不要です。
- チームは CI を GitHub Actions に置き、代わりに federation で GCP へデプロイすることがよくあります。