デプロイ方式を整理する


デプロイについて

サービス実行環境の扱いとデプロイ方式の組み合わせで整理してみます。

サービス実行環境の扱い

mutable deploymentとimmutable deployment

mutable deployment

サービス実行環境は同じものを使ったまま実行するアプリケーションのみを入れ替えるデプロイ方法。
アプリケーションだけを入れ替えるのでデプロイが早い。

immutable deployment

サービス実行環境ごと新しく作成し、新旧を入れ替えるデプロイ方式。
デプロイ後、サービス実行環境は削除される。
サービス実行環境ごと新しく作成する分mutable deploymentと比べてデプロイが遅くなる。

InPlace deploymentとBlue/Green deployment

InPlace deployment

稼働中のサービス実行環境に対しアプリケーションのみを入れ替えるデプロイ方法。
一定台数ずつ順番にデプロイしていく方式をRollingUpdate deploymentという。
ロールバックの際は再度デプロイを実行する必要があるのでロールバックまでの時間がBlue/Green deploymentに比べて遅くなる。

Blue/Green deployment

稼働中のサービス実行環境に対しては何もせず、新しいアプリケーションを実行したサービス実行環境を用意してルーターで切り替えを行う方法を、Blue/Green deploymentと言う。
ロールバックの際は元のサービス実行環境に再度切り替えを行うだけなのでロールバックまでの時間がInPlace deploymentに比べて速い。

Blue/Green deploymentの内、この場合は新旧のアプリケーションが一瞬でも共存しうるデプロイ方式をBlue/Green deploymentと、サービス実行環境全てを一度に切り替える方法をRed/Black deploymentと使い分ける。

Red/Black deploymentをBlue/Green deploymentと全く同じとするか、上記の様に細分化して使い分けるかは曖昧で、人や組織によって内容が違う様です。

参考