ここでは、Alibaba Cloud Container Service for Kubernetes により提供される Ingress 機能を用いた、グレーリリースおよび Blue/Green デプロイの実装方法を解説します。
背景
グレーリリースまたは Blue/Green デプロイにより、対象となるソフトウェアの最新バージョンとそれ以前のバージョンに対する、2 つの全く同じ環境を作成することができます。 以前のバージョンのソフトウェアに影響を与えずに、以前のバージョンから最新バージョンへのトラフィックを再ルーティングするルールを指定することができます。 指定した期間で例外なく最新バージョンのソフトウェアが実行された後、以前のバージョンから最新バージョンへ全てのトラフィックを再ルーティングすることができます。
A/B テストは、比較および増分タイプのグレーリリースです。 特に、A/B テストでは、ユーザーが以前のバージョンのサービスを使い続けることができ、最新バージョンのサービスを使う他のユーザーのトラフィックを再ルーティングすることができます。 最新バージョンのサービスが、指定した期間に、例外なく実行される場合、徐々に全てのユーザーのトラフィックを最新バージョンのサービスへと再ルーティングすることができます。
シナリオ
シナリオ 1
foo=bar
を含んでいたり、または Cookie に foo=bar
を含んだクライアントリクエストがサービス A' に転送されるようにしたいと考えています。 指定した期間、例外なくサービス A' が実行された後に、サービス A からサービス
A' へ再ルーテイングし、スムーズにサービス A をオフラインにしたい場合です。
シナリオ 2

上記のようなアプリケーションリリース要求を満たために、Alibaba Cloud Container Service for Kubernetes は Ingress の機能を利用し、以下の 4 つのトラフィック分配方法を提供しています。
- リクエストヘッダーに応じたトラフィックの分配
- Cookie に応じたトラフィックの分配
- クエリパラメーターに応じたトラフィックの分配
- サービスの weight に応じたトラフィックの分配