Citrix ADC

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

アプリケーションは、モノリシックアーキテクチャからマイクロサービスアーキテクチャに移行しています。同じアプリケーションの異なるバージョンがマイクロサービスアーキテクチャに共存できます。Citrix ADCアプライアンスは、アプリケーションの継続的な展開をサポートする必要があります。これは、カナリア展開を実行するプラットフォーム(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の永続性タイプを使用するようにコンテンツスイッチング仮想サーバーを構成できます。これは、マイクロサービスアーキテクチャでのカナリア展開に役立ちます。 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. [基本設定]で、永続性の詳細を設定します。