デプロイ戦略を解説:ブルーグリーン・カナリア・ローリング等の比較

ブルーグリーン・カナリア・ローリング・リクリエイトなどのデプロイ戦略を比較。ダウンタイムを最小化するための選び方と使い分けを解説します。

Read in: en
デプロイ戦略を解説:ブルーグリーン・カナリア・ローリング等の比較

概要

デプロイ戦略についてまとめる。

デプロイ・リリース・ロールバックの定義

デプロイ戦略の前提知識として言葉の定義を明確にしておく。

デプロイとは、「実行環境に実行可能なプログラムを配置すること」 リリースとは、「ユーザーがアクセスできる状態にすること」 ロールバックとは、「古いバージョンのリリースをリリースすること」

デプロイ戦略の種類

代表的と思われるものを取り上げる。

インプレースデプロイ

既存環境に新しいバージョンを直接デプロイする手法。

余談だが、bmf-tech.comはdocker-composeを使っているのだが、デプロイはインプレースデプロイである...。 cf. [bmf-techを支える技術(https://bmf-tech.com/posts/bmf-tech%e3%82%92%e6%94%af%e3%81%88%e3%82%8b%e6%8a%80%e8%a1%93#5-%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4)

シンボリックリンクデプロイメント

シンボリックリンクを使って、新旧バージョンを切り替える手法。

ブルーグリーンデプロイ

環境をブルーとグリーンの2つを用意し、新バージョンを片方にデプロイし、新旧バージョンの両方を一時的に展開する手法。 新バージョンに問題がなければ、旧バージョンから新バージョンにトラフィックを切り替える。 ブルーとグリーンそれぞれの環境は保たれる。

イミュータブルデプロイ

ブルーグリーンと概ね同じ手法だが、トラフィック切り替え後に旧環境の方を削除する点が異なる。

ローリングデプロイメント

一定数ずつ新しいバージョンをデプロイ、リリースしていく手法。 全数完了するまでは新旧両方の環境へのトラフィックが有効な状態が続く。

カナリアデプロイ

一部のユーザーやトラフィックに対してのみ新しいバージョンを展開することができるような形で、一部だけ新しいバージョンをデプロイ、リリースする手法。

デプロイ戦略の観点表

それぞれのデプロイ戦略について、選定する際に重要となりそうな観点をピックアップし、表にまとめる。

デプロイ手法 ゼロダウンタイム 本番環境のテスト ロールバック時間 運用コスト
インプレースデプロイ × ×
シンボリックリンクデプロイ ×
ブルーグリーンデプロイ 低(トラフィック切り替え前後でも低)
イミュータブルデプロイ 低(旧環境削除するまでに限る)
ローリングデプロイ ×
カナリアデプロイ

リリース戦略

Tags: デプロイ
Share: 𝕏 Post Facebook Hatena
✏️ View source / Discuss on GitHub
☕ サポート

このブログを応援していただける方は、以下からサポートをお願いします。いただいたサポートはブログ運営・技術研鑽に活用します。


関連記事