ブルーグリーンデプロイメントとは

ブルーグリーンデプロイメントは、現在公開中の環境(Blue)を残したまま、新版(Green)を別に用意してからトラフィックを切り替える方法です。切り替えで停止時間を小さくできる可能性はありますが、無条件にゼロダウンタイムや即時ロールバックを保証するものではありません。
基本の流れ
- Greenへ新しいアプリを配置する
- ヘルスチェック、主要な操作、監視をGreenで確認する
- ルーティングやロードバランサーを切り替える
- エラー率、遅延、主要な業務指標を観測する
- 互換性が保たれる期間だけBlueを残す
ロールバックで戻せるもの・戻せないもの
アプリのトラフィックはBlueへ戻せても、データベースへの書き込み、外部メール送信、決済、キューの消費は自動では元に戻りません。Greenが新しい形式でデータを書いた後にBlueへ戻すなら、Blueもそのデータを読める必要があります。
そのため、データベース変更は新旧アプリが共存できるExpand/Contractで先に行います。アプリ切り替えと破壊的なスキーマ削除を同じタイミングにしません。
切り替え前に確認すること
- Greenが本番に近い設定、秘密情報、権限、外部接続を持つか
- セッション、キャッシュ、アップロード先をどう共有または分離するか
- 接続を維持している利用者をどう扱うか
- Greenで作成されたデータをBlueが読めるか
- どの指標で中止または切り戻しを判断するか
カナリアリリースとの違い
Blue/Greenは環境を切り替える方法、カナリアは利用者の一部へ段階的に配る方法です。二つを組み合わせることもできます。環境を二重化するコストと、利用者ごとに段階配信したいかで選びます。
まとめ
Blue/Greenは、切り替える前に新環境を検証できる点が強みです。真の難しさは状態を持つデータと外部副作用にあるため、データ互換性、監視、切り戻せない操作を先に設計します。