Skip to content
Latchkey

デプロイメント戦略とは?

デプロイメント戦略とは、リスクとdowntimeを制御するために選ばれる、ソフトウェアの新しいバージョンをロールアウトする方法です。

実行中のバージョンを新しいものに置き換える方法は1つではありません。選んだ戦略が、どれだけのリスクを取るか、どれだけ速く回復できるか、ユーザーが気づくかどうかを決めます。うまく選ぶことが、本番のdeployを安全にするのです。

デプロイメント戦略とは

デプロイメント戦略とは、新しいバージョンが古いものからどのように引き継ぐかの計画です: 一度に、段階的に、あるいは並行して。異なる戦略は速度、リソースコスト、リスクをトレードオフします。目標は通常、不良リリースにさらされるユーザー数と、それを取り消せる速さを制限することです。

一般的な戦略

  • Recreate: 古いバージョンを停止し、新しいものを起動する(シンプルだがdowntimeが発生する)。
  • Rolling: インスタンスを段階的に、少しずつ置き換える。
  • Blue-green: 2つの環境を実行し、それらの間でトラフィックを切り替える。
  • Canary: まず少量のトラフィックを新しいバージョンに送る。

あるチームがcanary戦略を使います: 新しいバージョンがトラフィックの5パーセントを受け取り、残りは古いものに留まります。モニタリングが10分間エラー率を監視します。リグレッションが見られないので、チームは残りのトラフィックを移行します。もしエラーが急増していたら、影響を受けたのはユーザーの5パーセントだけだったでしょう。

なぜ選択が重要なのか

戦略はblast radius、つまり不良deployがもたらしうる被害の大きさと、回復速度を直接制御します。Recreateは最もシンプルですが最もリスクが高く; canaryとblue-greenはコストがかかりますが障害を封じ込め、ほぼ即座のrollbackを可能にします。サービスの重要度に戦略を合わせることは、重要な信頼性の判断です。

戦略が依存するもの

段階的な戦略は、health checks、モニタリング、そしてトラフィックを移動させ素早くrollbackする能力に依存します。また、新旧のバージョンを並行して実行できることを前提とし、これはstatelessなサービスとよく管理されたインフラで最も容易です。

重要なポイント

  • デプロイメント戦略とは、新しいバージョンが古いものをどう置き換えるかです。
  • rolling、blue-green、canaryは、それぞれ異なる方法でリスクを制限します。
  • 選択がblast radiusと回復速度を制御します。

関連ガイド