すべてのプロダクト
Search
ドキュメントセンター

Serverless App Engine:オンラインシナリオ: 自己管理型の Spring Cloud または Zuul ゲートウェイを使用したエンドツーエンドカナリアリリースの実行

最終更新日:Oct 11, 2025

この Topic では、自己管理型の Spring Cloud または Zuul ゲートウェイを使用して Serverless App Engine (SAE) アプリケーションのエンドツーエンドカナリアリリースを実行する方法について説明します。ビジネスコードを変更することなく、エンドツーエンドのトラフィックシェーピングを実行できます。

準備

次のセクションでは、Application Load Balancer (ALB) インスタンスをイングレスゲートウェイとして使用して、エンドツーエンドカナリアリリースを実行する方法について説明します。この例では、アプリケーションアーキテクチャは ALB イングレスゲートウェイとバックエンドマイクロサービスフレームワーク (Spring Cloud) で構成されています。バックエンドサービスの呼び出しには、ショッピングカート (アプリケーション A)、取引センター (アプリケーション B)、在庫センター (アプリケーション C) といったマイクロサービスアプリケーションが含まれます。クライアントまたは HTML を使用して、Nacos レジストリを使用して登録されたバックエンドサービスにアクセスできます。

SAE デモアプリケーションのデプロイ

  1. デモパッケージをダウンロードします。

  2. バックボーンアプリケーションをデプロイします。

    次のバックボーンアプリケーションをデプロイします: アプリケーション A、アプリケーション B、アプリケーション C。詳細については、「アプリケーションのサービス登録と検出を Nacos に変更する」をご参照ください。

  3. 次のカナリアリリースアプリケーションをデプロイします: アプリケーション A-gray、アプリケーション B-gray、アプリケーション C-gray。起動コマンドに -Dalicloud.service.tag=gray を追加して、カナリアリリースアプリケーションとバックボーンアプリケーションを区別します。

説明

アプリケーションをデプロイするときに SAE 組み込みではないサービスレジストリを使用する場合は、次の起動パラメーターを追加する必要があります: -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false

Spring Cloud または Zuul ゲートウェイのデプロイ

同じドメイン名で異なる URL からのリクエストを転送することで、アプリケーションにアクセスできます。詳細については、「CLB インスタンスを使用してアプリケーションのゲートウェイルーティングを設定する」をご参照ください。

リクエストに特定のヘッダーを追加してエンドツーエンドカナリアリリースを実行する

一部のクライアントのドメイン名は変更できません。www.base.com ドメイン名をルートに関連付けて、特定のヘッダーを追加できます。これにより、特定のリクエストをカナリアリリース環境にルーティングできます。次の図では、リクエストに x-mse-tag:gray ヘッダーが追加された後、リクエストはカナリアリリース環境にルーティングされます。

警告

x-mse-tag ヘッダーは、この Topic で説明されているシナリオにのみ適しています。他のシナリオではこのヘッダーを使用しないでください。たとえば、アプリケーションのカナリアリリースルールを設定するときに x-mse-tag ヘッダーを使用しないでください。詳細については、「Java アプリケーションのカナリアリリースルールを管理する」をご参照ください。

dg_implement_end_to_end_canary_release_by_using_self-managed_spring _cloud_or_zuul_gateways

結果を検証します。

  • www.base.com 宛てのトラフィックがベースライン環境にルーティングされるかどうかを確認します。

    • 次の curl コマンドを実行します:

      curl -H"Host:www.base.com" http://106.14.XX.XX/a
    • コマンド出力:

      A[172.18.XX.XX] -> B[172.18.XX.XX] -> C[172.18.XX.XX]
  • リクエストをカナリアリリース環境にルーティングするには、リクエストに x-mse-tag:gray ヘッダーを追加します。

    • 次の curl コマンドを実行します:

      curl -H"Host:www.base.com"  -H"x-mse-tag:gray" http://106.14.XX.XX/a
    • コマンド出力:

      Agray[172.18.XX.XX] -> Bgray[172.18.XX.XX] -> Cgray[172.18.XX.XX]%

      上記の出力は、Classic Load Balancer (CLB) Ingress コントローラーがリクエストをアプリケーション A のカナリアリリース環境にルーティングすることを示しています。