Mímisbrunnr知恵の泉

← クラウドインフラ 一覧

🎓 レベル:標準 | 重要度:A(必須)

📎 前提:CI/CDとは・パイプライン | 関連:Pod・Deployment・ReplicaSet監視とアラート設計

要点(BLUF)

概念 ── 3つの戦略

flowchart TB
    subgraph rolling["ローリング"]
      r["旧を1つずつ新に置換(常に最低数は稼働)"]
    end
    subgraph bg["ブルーグリーン"]
      b["旧(Blue)と新(Green)を並行用意 → LBで一気に切替"]
    end
    subgraph canary["カナリア"]
      c["新へ5%だけ流す → 問題なければ徐々に100%へ"]
    end
戦略切替ロールバックコストリスク
ローリング段階的やや遅い(逆ローリング)低(追加環境不要)中(新旧混在)
ブルーグリーン一気即(LBを戻すだけ)高(2環境分)
カナリア段階的+計測即(少数だけ影響)最低

仕組み ── それぞれの動き

ローリング:K8s の Deployment 既定(Pod・Deployment・ReplicaSet)。Podを少しずつ新へ。追加環境が要らず省コストだが、切替中は新旧が混在する(DBスキーマ互換などに注意)。

ブルーグリーン:現行(Blue)と同等の新環境(Green)をまるごと別に用意し、検証後にロードバランサ(Service・Ingress)を一気に Green へ向ける。問題が出たらLBを Blue に戻すだけで即ロールバック。Immutable Infrastructure(構成管理とImmutable Infrastructure)と好相性。コストは2環境分。

カナリア:新バージョンにごく一部(例:5%)のトラフィックだけ流し、エラー率・レイテンシ(監視とアラート設計)を見ながら段階的に拡大。問題があっても影響は少数に限定。メトリクス監視が前提で、自動で進める/戻す(プログレッシブデリバリ)も可能。

flowchart LR
    lb["ロードバランサ / ルーティング"] -->|"95%"| stable["安定版 v1"]
    lb -->|"5%"| canary["カナリア v2"]
    canary -->|"メトリクス良好"| promote["徐々に100%へ"]
    canary -->|"エラー増"| rollback["即ロールバック(少数だけ影響)"]

なぜ戦略を使い分けるのか

⚠️ よくある誤解・落とし穴

対応ラボ

なし(戦略トピック)。ローリング更新の実挙動は Pod・Deployment・ReplicaSetkubectl rollout ラボで観察できる。カナリアは Service の重み付け/Ingress や専用ツール(要最新確認)で実装。

関連

第6章 CI/CD 目次