リファレンスアーキテクチャ:Citrix と Red Hat OpenShift によるマイクロサービスベースのアプリケーションデリバリー

概要

CompanyA は、主にオンプレミスでホストされるシステムアプリケーションを開発するために、常にモノリシックアーキテクチャを使用してきました。彼らは、パンデミックの間に悪化した、特にリモートユーザーにとって、アップタイムと一貫性のないパフォーマンスの問題に苦しんでいます。クラウドへの移行の一環として、マイクロサービスアーキテクチャを使用する予定です。このアーキテクチャにより、レジリエンシーとスケーラビリティが向上した新しいアプリケーションを開発できます。

A社は、冗長性のあるマルチクラウドのRed Hat OpenShift (RHOS) クラスターのペアを構築することを決定しました。これらはMicrosoft AzureとAmazon AWSでホストされており、Citrix はマイクロサービスインスタンスの負荷分散を提供しています。これにより、リモートユーザーが一貫して優れたパフォーマンスで重要なビジネス Web サービスにアクセスするための回復力のある環境を提供できます。

このリファレンスアーキテクチャは、A社が新しいアプリケーションを開発したり、レガシーアプリケーションを移行したりするために、クラウドネイティブプラットフォームをホストする環境をどのように計画しているかを説明しています。

はじめに

A社は、企業にいくつかのメリットをもたらし、最終的に生産性を向上させるために、Citrix とRHOSとともにクラウドネイティブのマイクロサービスベースのアプリケーションデリバリーを開発することを決定しました。

クラウドネイティブ

クラウドネイティブアプリケーションは、クラウドの分散型でスケーラブルな性質を利用するために開発されています。これには、企業の生産性、運用効率、およびユーザーエクスペリエンスに関する多くの利点があります。

クラウドネイティブのメリット

  • コンテナ化されたアプリケーションはホストインフラストラクチャ間で移植可能
  • アジャイルで継続的な開発とデリバリーを可能にする
  • クラウドホストインフラストラクチャに合わせて拡張
  • 効率的なソフトウェア開発プロセスをサポート

Red Hat OpenShift

Red Hat OpenShift は、企業がハイブリッドクラウド全体にわたってマイクロサービスアプリケーションをデプロイ、運用、保護するのに役立つ、エンタープライズ Kubernetes コンテナプラットフォームです。

Red Hat OpenShift (RHOS) のメリット

  • ビジネスクリティカルなエンタープライズアプリケーションの開発と運用のためのKubernetesクラウドネイティブ環境を効率的に管理します
  • 開発チームの生産性を向上させる
  • 既存の顧客に新しいサービスを迅速に導入して収益を増やす
  • 管理とサポートに費やす時間を短縮して運用コストを削減

詳細については、「 Red Hat OpenShift とは何ですか?」を参照してください。

Citrix

Citrix は、フルメッシュ、ServiceMesh Lite、シングルティア、デュアルティアなどの要件に応じて、マイクロサービス環境でのトラフィック管理のための柔軟なトポロジーを提供します。

トポロジ:

  • フルメッシュ — フルメッシュクラスターには、クラスター内のマイクロサービス間の East-West 通信とクラスター外の North-South (N-S) 通信を必要とするさまざまなマイクロサービスのサポートが含まれます。
  • Service Mesh Lite-Ingress ソリューションは、通常、南北のトラフィックに対して L7 プロキシ機能を実行します。Service Mesh Lite アーキテクチャは、同じ Ingress ソリューションを使用して East-West (E-W) トラフィックを管理し、Kubernetes 組み込みサービスの制限を克服します。
  • 単一層 — 単一層クラスターには、冗長レプリカとして実行され、外部ロードバランサーによって南北トラフィックが配信されるマイクロサービスが含まれます。
  • 二重層 — 二重層アーキテクチャでは、外部ロードバランサーによって南北のトラフィックも配信されます。しかし、マイクロサービスには、ネイティブクラスタサービスでは提供されない追加のネットワークプロトコルと最適化を使用した通信をサポートするために、ネットワークコンポーネントが接続されています。

詳細については、「 マイクロサービスベースのアプリケーションへの移行を加速する方法」を参照してください。

Citrix Ingress Controller (CIC) の利点

  • 標準のKubernetes Ingress ソリューションは、レイヤー7(HTTPまたはHTTPSトラフィック)でのみ負荷分散を提供し、CICはTCP、TCP-SSL、およびUDPトラフィックもサポートします
  • CICは、複数のクラウドまたはオンプレミスのデータセンターでシームレスに機能します

Citrix ADC VPX メリット

  • Citrix ADC VPXは、Kubernetesが提供していないレイヤー7でトラフィックを効率的に負荷分散するために、書き換えポリシーやレスポンダーポリシーなどのエンタープライズグレードのトラフィック管理ポリシーを提供します
  • Citrix ADC VPXは、グローバルサーバー負荷分散(GSLB)もサポートしています

Citrix CPXのメリット

  • Citrix CPXを使用すると、Citrix ADCをデータプレーンプロキシとして、IngressゲートウェイまたはXDSベースのサービスメッシュのサイドカーとして展開できます。
  • Kubernetesクラスタ内のマイクロサービス間のレイヤー7トラフィック管理を提供しますが、Kubernetesはレイヤー4のみをサポートします。

詳しくは、「 Citrix Developer ドキュメント」を参照してください。

成功基準

A社は、包括的な設計の基礎となる成功基準のリストを定義しました。

注:A社は、リモートユーザー検証のために本番パイロットにApache Webサービスをデプロイします。

成功基準

概念アーキテクチャ

前述の要件に基づいて、CompanyA は次のような高レベルの概念アーキテクチャを作成しました。このアーキテクチャは初期要件をすべて満たしながら、CompanyAに将来より多くのユースケースに拡張するための基盤を提供します。

概念アーキテクチャ

アーキテクチャフレームワークは、複数の層に分かれています。このフレームワークは、マイクロサービスインフラストラクチャの技術アーキテクチャを理解するための基盤を提供します。すべてのレイヤーが一緒にフローし、完全なエンドツーエンドソリューションを作成します。

おおまかなレベルでは、

ユーザーレイヤー: ユーザーレイヤーは、リソースへの接続に使用されるエンドユーザー環境とエンドポイントデバイスを記述します。

ユーザーは、Citrix Workspace アプリを使用してWebサービスに安全に接続できます。あるいは、ユーザーは http/HTTPS トランスポートを備えた標準ブラウザを使用して Web サービスに接続できます。

アクセスレイヤー: アクセスレイヤーは、ユーザーがどのようにウェブサービスにアクセスし、南北フローが配信されるかを記述します。

  • WebサービスのプライマリFQDNは、Citrix ADC VPXでホストされているネームサーバーに解決されます。
  • GSLBを実行しているCitrix ADC VPXEは、接続数が最も少ないコンテンツスイッチ仮想サーバーのパブリックIPアドレスを使用してドメインネームサービス(DNS)クエリに応答します。
  • 仮想サーバーは、Citrix Ingress Controller によって、接続数が最も少ないクラスターでホストされているCitrix CPXに接続を転送するように構成されます。
  • クラスターでホストされているCitrix CPXは、接続を受け入れ、Citrix ADC VPXに応答します。これにより、ペイロードが配信される Web サービスへのフローが確立されます。

リソースレイヤー: リソースレイヤーは、このリファレンスアーキテクチャのマイクロサービスの形式でユーザーに提供されるアプリケーションを指定します。

  • 4 つの Apache ウェブサービスが RHOS ポッドとしてホストされています。それらはRHOSオペレーターハブを介して展開されます。

制御層: 制御層は、リソースの管理方法と監視方法を定義します。

  • Red Hat OpenShift は、クラスターを構築し、マイクロサービスリソースをデプロイ、管理、監視するために使用されます。

ホストレイヤー: ホストレイヤーは、メモリ、ストレージ、コンピューティングなどのリソースをホストする基盤となるインフラストラクチャを定義します。

  • Microsoft Azure と Amazon AWS は、RHOS クラスターとマイクロサービスをホストするために使用されるパブリック IaaS です。

次のセクションでは、Citrix と Red Hat OpenShift を使用した CompanyAS のマイクロサービスベースのアプリケーションデリバリーに関する具体的な設計上の決定について詳しく説明します。

ユーザーレイヤー

ユーザーレイヤーは、ユーザーがサポートされているエンドポイント上のターゲットリソースを要求してアクセスする場所です。

ユーザーレイヤー

ユーザーは、Citrix Workspace アプリを使用してWebサービスに安全に接続できます。

  • Citrix Workspace — ウェブサービスはアプリケーションとしてCitrix Workspace で公開されます。ユーザーのエンドポイントにインストールされたCitrix Workspace アプリは、Citrix Cloud の公開アプリケーションへのプロキシ接続を開始します。
  • Citrix Secure Internet Access — クラウドホスト型のCitrix ADC VPXへの接続は、Citrixセキュアインターネットアクセスによってプロキシされ、SWG、DLP、CASB、NGFWなどのフルスタック検査が行われます。
  • Citrix WebアプリケーションとAPIの保護 — クラウドでホストされているCitrix ADC VPXへの接続は、Citrix WebアプリケーションおよびAPI保護Webアプリケーションのファイアウォール署名によってプロキシおよび検査されます。

アクセスレイヤー

アクセスレイヤーは、ネットワーク配信コンポーネントがホストされ、ユーザーセッション要求を調整し、コントロールコンポーネントとリソースコンポーネントに転送する場所です。

概要

Citrix CPX

A社は、2層アーキテクチャを実装し、Citrix CPXを使用してクラスタ内のサービストラフィックの配信を管理することを決定しました。CPXは、クラウドホストされているCitrix ADC VPXからユーザートラフィック要求を受信し、マイクロサービスインスタンス間のトラフィック負荷を分散します。Citrix CPXは、クラスター管理者によって、RHOSコントロールを使用したYAMLファイル構成を通じて展開されます。Citrix CPXは、AWSクラスターとAzureクラスターの両方に同じ方法でデプロイされます。

Citrix Ingress Controller

A社は、Citrix Ingress Controller(CIC)を使用して、RHOSクラスター内のCitrix クラウドネイティブネットワークを管理することにしました。Citrix Ingress Controller は、イングレスクラスタのトラフィックフローを管理するために使用されます。グローバルクラスタのカスタムリソースドメイン(CRD)を使用して、Citrix CPXとサービスのステータスを取得および監視します。この情報に基づいて、Citrix ADC VPXを動的に構成して、負荷を分散し、クラスター内のCitrix CPXEにトラフィックをルーティングします。

Citrix ADC VPX

A社は、Citrix ADC VPXを使用して南北トラフィックフローを管理し、AzureクラスターとAWSクラスター間でグローバルサーバー負荷分散(GSLB)を実装することを決定しました。

南北のトラフィックは 、それぞれAWSおよびAzureクラスターサイトでホストされているCitrix ADC VPXeによって管理されます。IP アドレス情報とアクセスシークレットは CIC セットアップで提供され、負荷分散およびコンテンツスイッチングポリシーを設定できます。

GSLBトラフィックは 、それぞれAWSおよびAzureクラスターサイトでホストされているCitrix ADC VPXeによっても管理されます。

  • Apache マイクロサービスの DNS は、会社のグローバル DNS サービス AWS Route 53を通じて設定されます。
  • CNAMEレコードは、それぞれAzureおよびAWSのCitrix ADC VPXeでホストされているそれぞれの権限のあるDNS(ADNS)サービスにマップされます。
    • ApacheService.companya.com
    • ApacheService.aws.companya.com
    • ApacheService.azure.companya.com
  • GSLB負荷分散方法 — Citrix ADC GSLBは、さまざまな負荷分散方法をサポートしています。A社は、継続的な開発サイクルで高い稼働時間をサポートするために、主にCanary方式を使用することを決定しました。メソッドオプション:
    • ローカルファースト:ローカルファーストデプロイメントでは、アプリケーションが別のアプリケーションと通信する場合、同じクラスター内のローカルアプリケーションを優先します。アプリケーションがローカルで利用できない場合、リクエストは他のクラスターまたはリージョンに転送されます
    • Canary: Canary リリースは、最初に一部のユーザーに変更をロールアウトすることで、新しいソフトウェアバージョンが実稼働環境に導入されるリスクを軽減する手法です。このソリューションでは、Canary Deployment は、アプリケーションを本番環境に移行する前に、選択したクラスターにアプリケーションの新しいバージョンをロールアウトする場合に使用できます。
    • フェイルオーバー:フェイルオーバーデプロイメントは、アクティブ/アクティブモードでデプロイできないアプリケーションをアクティブ/パッシブ構成でデプロイするために使用されます。
    • ラウンドトリップ時間 (RTT): RTT 展開では、ネットワークのリアルタイムステータスが監視され、クライアント要求が RTT 値が最も低いデータセンターに動的に転送されます。
    • 静的近接性:静的近接展開では、IPアドレスベースの静的近接データベースを使用して、クライアントのローカルDNSサーバーとGSLBサイト間の近接性を判断します。リクエストは、近接基準に最も一致するサイトに送信されます
    • ラウンドロビン:ラウンドロビン展開では、GSLB デバイスはバインドされているサービスのリストを継続的にローテーションします。要求を受信すると、接続をリスト内の最初のサービスに割り当てて、そのサービスをリストの一番下に移動します。
  • GSLBサービス — Citrix ADC VPXは、各サイトで、それぞれのクラスター内でホストされているCitrix CPXインスタンスへのトラフィック分散を監視および管理します。

詳しくは、「 Citrix Ingress Controllerを使用したマルチクラスターイングレスおよび負荷分散ソリューション」を参照してください。

リソースレイヤー

リソースには、RHOS Operator Hub を通じて利用可能なさまざまなマイクロサービスアプリケーションが含まれます。これらのアプリケーションは、要件に応じて社内で開発することも、サードパーティベンダーから入手することもできます。A社は、Apache Webアプリケーションを配備することを決定しました。

詳細については、「 RHOS オペレーターハブについて」を参照してください。

制御レイヤー

コントローラーレイヤーには、マイクロサービスの提供を調整するための重要な管理コンポーネントが含まれています。

Red Hat OpenShift CompanyA は、Kubernetes クラスターのデプロイと管理に Red Hat OpenShift バージョン 4.7 を使用することを選択しました。

ホストレイヤー

RHOS クラスタは、オンプレミス、クラウド、またはハイブリッドクラウドのさまざまなホスティングプラットフォームでサポートされています。

Azure

A社は、自社のRHOS環境の1つをMicrosoft Azureテナントでホストすることを決定しました。RHOS クラスターは、Azure CLI を使用してクラスターを構築しました。

主な要件:

  • Azure Red Hat OpenShift では、OpenShift クラスターを作成して実行するために最低 40 個のコアが必要です
  • Azure Red Hat OpenShift クラスターは、3 つのマスターノードと 3 つ以上のワーカーノードで構成されています。
  • Azure CLI バージョン 2.6.0 以降

詳細については、 Azure Openshift クラスターを参照してください

AWS

A社は、AWSテナントで2つ目のRHOS環境をホストすることを決定しました。RHOS クラスターは AWS クイックスタートプロセスを使用してクラスターを構築しました。

主な要件:

  • クイックスタートプロセスには Red Hat サブスクリプションが必要です。テナントは Amazon EC2 M4.xlarge インスタンスのプロビジョニングを許可する必要があります
  • Red Hat のエンタイトルメント制限と AWS インスタンス制限は、3 つのマスターインスタンスと 3 つのワーカーノードのデプロイをサポートするように設定されました。

詳細については、「 Red Hat OpenShift on AWS — リファレンスデプロイメント」を参照してください

参照ドキュメント

Citrix クラウドネイティブネットワークの概念、Kubernetesマイクロサービス、およびRed Hat OpenShiftプラットフォームをよりよく理解するために、多くのドキュメントリンクが利用可能です。

関連する Red Hat リファレンスへのリンクは、こちらで見つけてください。

関連する Citrix リファレンスへのリンクは、次の場所にあります。

付録

用語

RHOS とマイクロサービスの一般的な用語の説明を検索します。 RHOS リファレンス

リファレンスアーキテクチャ:Citrix と Red Hat OpenShift によるマイクロサービスベースのアプリケーションデリバリー