Citrix ADC

コンテンツスイッチ仮想サーバの永続性サポート

アプリケーションは、モノリシックアーキテクチャからマイクロサービスアーキテクチャに移行しています。マイクロサービスアーキテクチャでは、同じアプリケーションの異なるバージョンが共存できます。Citrix ADCアプライアンスは、アプリケーションの継続的な展開をサポートする必要があります。これは通常、Canary デプロイメントを実行するプラットフォーム (Spinnaker など) によって実現されます。継続的なデプロイ設定では、アプリケーションの新しいバージョンが自動的にデプロイされ、アプリケーションが安定して完全なトラフィックを取得するまで、段階的にクライアントトラフィックに公開されます。また、クライアントには中断のないサービスが必要です。

Citrix ADCコンテンツスイッチング機能を使用すると、Citrix ADCアプライアンスは、コンテンツスイッチング仮想サーバーにバインドされたポリシーに基づいて、複数の負荷分散仮想サーバーにクライアント要求を分散できます。

継続的な展開では、コンテンツの切り替えを使用して、アプリケーションのさまざまなバージョンを提供する負荷分散仮想サーバーを選択します。

コンテンツスイッチングでは、特定のアプリケーションバージョンに対する負荷分散仮想サーバーの選択は、コンテンツスイッチングポリシーの変更により、実行時に変更されます。この移行中に、一部のセッションが古いバージョンのアプリケーションに存在する場合、そのようなトラフィックは古いバージョンのみで引き続き処理する必要があります。この要件をサポートするために、Citrix ADCアプライアンスは、コンテンツスイッチング仮想サーバーの背後にある複数の負荷分散グループにわたって永続性を維持します。コンテンツスイッチング仮想サーバの永続性により、あるバージョンから別のバージョンへのクライアントのシームレスな移行が可能になります。

コンテンツスイッチング仮想サーバーでサポートされる永続性タイプ

コンテンツスイッチング仮想サーバーでは、次の永続タイプがサポートされています。

持続性タイプ 説明
接続元IP SOURCEIP. 同じクライアント IP アドレスからの接続は、同じ永続性セッションの一部です。詳細については、「送信元 IP アドレスの永続性」を参照してください。
HTTP Cookie COOKIEINSERT. 同じ HTTP Cookie ヘッダーを持つ接続は、同じ永続性セッションの一部です。Citrix ADCアプライアンスが挿入するクッキーの形式は次のとおりです。 **NSC_ <vid_str of CSvserver> = <vid_str of Lbvserver> ここで、NSC_XXXXは仮想サーバー名から派生した仮想サーバーIDです。詳細については、「HTTP クッキーの永続性」を参照してください。
SSL セッション ID SSLSESSION. 同じ SSL セッション ID を持つ接続は、同じ永続性セッションの一部です。詳細については、「SSL セッション ID の永続性」を参照してください。

HTTP Cookieに基づくパーシステンスに対して、タイムアウト値を設定できます。タイムアウト値を 0 に設定すると、使用される HTTP cookie のバージョンに関係なく、ADC アプライアンスは有効期限を指定しません。有効期限はクライアントソフトウェアによって異なり、この Cookie はソフトウェアが実行されている場合にのみ有効です。

構成したパーシステンスの種類に応じて、仮想サーバーでは、Citrix ADCアプライアンスのメモリ容量によって課される制限まで、250,000の同時永続接続または任意の数の永続接続をサポートできます。次の表は、各カテゴリに分類される永続性のタイプを示しています。

持続性タイプ サポートされる同時永続接続の数
送信元 IP、SSL セッション ID 250,000
HTTP Cookie メモリの上限。CookieInsert では、タイムアウトが 0 以外の場合、接続数はメモリによって制限されます。

一部のタイプの永続性は、特定のタイプの仮想サーバに固有のものです。次の表は、各タイプの永続性と、どのタイプの仮想サーバーでサポートされる永続性のタイプを示しています。

持続性タイプ HTTP HTTPS TCP UDP/IP SSL_Bridge SSL_TCP RTSP SIP_UDP
SOURCEIP はい はい はい はい はい はい いいえ いいえ
COOKIEINSERT はい はい いいえ いいえ いいえ いいえ いいえ いいえ
SSLSESSION いいえ はい いいえ いいえ はい はい いいえ いいえ

バックアップ永続性のサポート

cookie 永続性タイプが失敗したときに、バックアップ永続性タイプとしてソース IP 永続性タイプを使用するように、コンテンツスイッチング仮想サーバを設定できます。これは、マイクロサービスアーキテクチャでの canary デプロイメントに役立ちます。 Cookie パーシステンスタイプが失敗した場合、アプライアンスはクライアントブラウザが要求に Cookie を返さない場合にのみ、ソース IP ベースのパーシステンスにフォールバックします。ただし、ブラウザがクッキー(必ずしも永続性クッキーではない)を返す場合、ブラウザはクッキーをサポートしているとみなされるため、バックアップパーシステンスはトリガーされません。 バックアップ永続性のタイムアウト値を設定することもできます。「タイムアウト」は、持続性セッションが有効になる期間です。

コンテンツスイッチング仮想サーバーの永続性の仕組み

シナリオ 1: 永続性のないコンテンツスイッチング仮想サーバー

次の例は、永続性のないコンテンツスイッチング仮想サーバーを使用した複数バージョンのアプリケーションのデプロイを示しています。

persistence-cs1

クライアントC1がアプリケーションに要求を送信すると、その要求はCitrix ADCアプライアンスのコンテンツスイッチ仮想サーバーに送信されます。コンテンツスイッチ仮想サーバーは、ポリシーを評価し、アプリケーションのバージョン v1 を提供する負荷分散仮想サーバー (LB1) に要求を転送します。

persistence-cs2

アプリケーションの新しいバージョン v2 がデプロイされ、ユーザーのサブセットに公開する必要があるとします。v2 バージョンを提供する新しい負荷分散仮想サーバー (LB2) は、適切なコンテンツスイッチングポリシーによって、コンテンツスイッチング仮想サーバーにバインドされます。

クライアント C1 が新しい要求を送信すると、ポリシーが再度評価され、要求が負荷分散仮想サーバー LB2 に転送されます。したがって、ステートフルアプリケーションのトランザクションは、アプリケーションの複数のバージョンがデプロイされると、失敗します。

シナリオ 2: 永続性を持つコンテンツスイッチング仮想サーバー

次の例は、永続性を持つコンテンツスイッチング仮想サーバーを使用した複数バージョンのアプリケーションのデプロイを示しています。

persistence-cs3

クライアントC1がアプリケーションに要求を送信すると、その要求はCitrix ADCアプライアンスのコンテンツスイッチ仮想サーバーに送信されます。コンテンツスイッチング仮想サーバーは、ポリシーを評価し、永続性セッションエントリを作成し、アプリケーションのバージョン v1 を提供する負荷分散仮想サーバー LB1 に要求を転送します。

persistence-cs4

同じクライアントC1がアプリケーションに対して再度要求し、その要求がCitrix ADCアプライアンスのコンテンツスイッチ仮想サーバーに送信されます。永続性セッションのルックアップが行われ、負荷分散仮想サーバー LB1 が既存の永続性セッションから取得され、要求が LB1 に転送されます。このソリューションでは、既存のトランザクションの破損は発生しません。したがって、アプリケーションのステートフルな性質を維持します。

persistence-cs5

新しいクライアントC2を考えてみましょう。このクライアントには既存の永続性セッションが存在しないため、新しい要求 C2 はポリシー評価によって新しいバージョンのアプリケーションに送信されます。これにより、ステートフル性を損なうことなく、新しいバージョンのアプリケーションのロールアウトが成功します。

永続性サポートにより、お客様は既存のトランザクション(特にステートフルなアプリケーションの場合)に影響を与えることなく、複数のコンテンツまたは異なるバージョンのアプリケーションをシームレスにデプロイできます。これは、画像に永続性なしでは不可能でした.

CLI を使用してコンテンツスイッチ仮想サーバで永続性タイプを構成する

コマンドプロンプトで、次のように入力します。

set cs vserver <name> -PersistenceType <type> [-timeout <integer>]

例:

set cs vserver Vserver-CS-1 -persistenceType SOURCEIP -timeout 60

GUI を使用したコンテンツスイッチング仮想サーバーのパーシステンスタイプの構成

  1. [トラフィック管理] > [コンテンツスイッチング] > [仮想サーバー] に移動し、[追加] をクリックします。

  2. [基本設定]で、永続性の詳細を設定します。