変更要約: Professional Cloud DevOps Engineer 第2章を新規作成(ドメイン2「CI/CD」: Cloud Build(CI)/Cloud Deploy(CD・Skaffold/Kustomize)/Artifact Registry/トリガー/承認フロー、デプロイ戦略=カナリア/ブルー・グリーン/ローリング/トラフィック分割/フィーチャーフラグ+テレメトリ成功メトリクス、Cloud Audit Logs/Cloud KMS/Secret Manager/Workload Identity Federation、Artifact Analysis/Binary Authorization/SLSA/環境別 IAM)。
2.1CI/CD パイプラインの設計とデプロイ戦略
Cloud Build による継続的インテグレーション(CI)、Cloud Deploy による継続的デリバリー(CD・Skaffold/Kustomize)、Artifact Registry でのアーティファクト管理、ハイブリッド/マルチクラウド(GKE)へのデプロイ、パイプライントリガーと承認フロー、デプロイ戦略(カナリア/ブルー・グリーン/ローリング/トラフィック分割/フィーチャーフラグ)と成功メトリクスを理解します。
CI/CD は、コードの変更を安全かつ繰り返し本番へ届ける自動化された道です。ビルド・テスト・成果物管理・デプロイをパイプラインでつなぎ、リスクの小さいデプロイ戦略で出します。
2.1.1CI と CD とアーティファクト管理
継続的インテグレーション(CI)は Cloud Build でビルドとテストを自動化します。継続的デリバリー(CD)は Cloud Deploy でステージング→本番へ段階的にプロモートし、Kubernetes 構成は Skaffold/Kustomize で扱います。ビルド成果物(コンテナイメージ/パッケージ)は Artifact Registry に保存・バージョン管理します。パイプラインは トリガー(コミット/タグ/PR)で起動し、本番前に 承認フロー を挟みます。「ビルド/テスト=Cloud Build」「段階的デプロイ=Cloud Deploy」「成果物保管=Artifact Registry」を結びます。
2.1.2デプロイ戦略と成功メトリクス
| 戦略 | 要点 |
|---|---|
| カナリア | 一部のトラフィックに先行公開し問題を早期検知 |
| ブルー・グリーン | 新旧 2 環境を切替え、即時ロールバック可能 |
| ローリング | インスタンスを順次置き換え |
| トラフィック分割/フィーチャーフラグ | 割合で配分・機能を動的に切替 |
リスクを抑えて出すために戦略を選びます:カナリア(少量に先行公開)、ブルー・グリーン(新旧切替で即時ロールバック)、ローリング(順次置換)、トラフィック分割/フィーチャーフラグ(割合配分・機能の動的切替)。出した後は、アプリや ML パイプラインの テレメトリ から 成功メトリクス を定義し、悪化したら自動でロールバック/中断します。「即時ロールバックしたい=ブルー・グリーン」「一部で様子見=カナリア」を押さえます。
「要件 → 手段」が頻出。例:「ビルド/テストの自動化」=Cloud Build、「ステージング→本番の段階的プロモート」=Cloud Deploy、「コンテナイメージの保管/バージョン」=Artifact Registry、「一部ユーザーで先行検証」=カナリア、「即時に切り戻したい」=ブルー・グリーン、「機能を動的に ON/OFF」=フィーチャーフラグ、「本番前に人手の承認」=承認フロー。
混同に注意:
①Cloud Build(CI=ビルド/テスト)と Cloud Deploy(CD=段階デプロイ)を取り違えない。
②カナリア(一部に先行)とブルー・グリーン(環境ごと切替)は別。
③デプロイ成功は主観でなくテレメトリの成功メトリクスで判定。
2.1.3この節のまとめ
- CI=Cloud Build、CD=Cloud Deploy(Skaffold/Kustomize)、成果物=Artifact Registry
- トリガーで起動・本番前に承認フロー、デプロイは要件で戦略を選ぶ
- カナリア/ブルー・グリーン/ローリング/トラフィック分割/フィーチャーフラグ+テレメトリの成功メトリクス
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. コミットごとにビルドとテストを自動実行したい。最適なのはどれですか?
Q2. ステージングから本番へ段階的にプロモートする継続的デリバリーを実現したい。最適なのはどれですか?
Q3. ビルドしたコンテナイメージを保管し、バージョン管理・脆弱性スキャンと連携したい。最適なのはどれですか?
Q4. 新バージョンをまず少量のトラフィックに公開し、問題なければ拡大したい。どのデプロイ戦略ですか?
Q5. 問題発生時に即座に旧バージョンへ切り戻せるようにしたい。最適なデプロイ戦略はどれですか?
Q6. デプロイが成功したかを客観的に判断したい。最も適切な基準はどれですか?

