Blue/Green デプロイを使用してデプロイのリスクを低減する

このページでは、アプリの新しいバージョンをデプロイし、古いバージョンから新しいバージョンにトラフィックを移行する方法について説明します。

初期アプリの push

Kf CLI を使用して、任意のルートでアプリの初期バージョンを push します。

$ kf push app-v1 --route my-app.my-space.example.com

更新したアプリの push

Kf CLI を使用して、ルートなしでアプリの新しいバージョンを push します。

$ kf push app-v2 --no-route

更新したアプリへのルートの追加

Kf CLI を使用して、更新したアプリに既存のルートをすべてバインドし、ウェイトを 0 に設定して、リクエストを受信しないようにします。

$ kf map-route app-v2 my-space.example.com --hostname my-app --weight 0

トラフィック移行

ルートのウェイトを更新して、古いアプリから更新したアプリへのトラフィック移行を開始します。

$ kf map-route app-v1 my-space.example.com --hostname my-app --weight 80
$ kf map-route app-v2 my-space.example.com --hostname my-app --weight 20

デプロイが順調に進んでいる場合は、ウェイトを再度更新してトラフィックをさらに移行できます。

$ kf map-route app-v1 my-space.example.com --hostname my-app --weight 50
$ kf map-route app-v2 my-space.example.com --hostname my-app --weight 50

トラフィック移行の完了

新しいサービスで回帰が導入されていないことを確認したら、すべてのトラフィックを新しいインスタンスに移行してロールアウトを完了します。

$ kf map-route app-v1 my-space.example.com --hostname my-app --weight 0
$ kf map-route app-v2 my-space.example.com --hostname my-app --weight 100

オリジナル アプリの停止

クイック ロールバックが不要になったら、オリジナル ルートを削除してアプリを停止します。

$ kf unmap-route app-v1 myspace.example.com --hostname my-app
$ kf stop app-v1

または、アプリと関連するすべてのルート マッピングを削除します。

$ kf delete app-v1