Azure Service Fabricを使用すると、スケーラブルで信頼性の高いマイクロサービスアプリケーションのデプロイ、管理、パッケージ化が非常に簡単かつ効率的になります。 クラウドアプリケーションの開発と管理を簡素化するだけでなく、サービスを確実にスケーリングおよびオーケストレーションします。 Azure Service Fabricの目的は、分散型クラウドベースアプリケーションの開発に一般的に関連する問題の多くに対処する非常に豊富なプラットフォームを開発者に提供することです。
NCache パフォーマンスと信頼性を強化するために、AzureServiceFabricクラスター内での展開を提供します。 NCache は、データをキャッシュしてアプリケーションの近くに配置することにより、アプリケーションのパフォーマンスとスケーラビリティを向上させるメモリ内分散キャッシュソリューションです。
NCache 詳細 NCache OpenShiftデプロイメント NCache AKSドキュメント
NCache AzureServiceFabricのデプロイアーキテクチャ
の全体的な展開アーキテクチャの概要を見てみましょう NCache AzureServiceFabricで。 インフラストラクチャは、Service Fabricクラスターリソースと、Azureロードバランサーや仮想マシンスケールセットなど、サポートするすべてのAzureリソースで構成されます。 Service Fabricクラスターには、マイクロサービスベースのアーキテクチャで一般的であり、これらの個々のサービスを異なる言語で記述できるため、個々のサービスで作成できる複数の実行中のアプリケーションが含まれる場合があります。 Service Fabricは、アプリケーションとその個々のサービスのスケーラビリティと高可用性を処理します。
このようなエンタープライズアプリケーションでは、次のような分散キャッシングソリューション NCache 高性能を促進するための不可欠な部分です。 NCache コンテナサービスとしてServiceFabricアプリケーション内にデプロイすることもできます。 このシナリオでは、 NCache サーバーは、仮想マシンスキルセットの複数のノード上のコンテナー内で実行され、相互に通信してクラスター化されたキャッシュを形成します。
キャッシュ検出サービスは、のIPアドレスに関するリアルタイム情報を取得します。 NCache サーバーとその情報をクライアントに提供します。 この情報を使用して、クライアントは次の操作を実行できます。 NCache キャッシュクラスター。 これをすべてまとめると、次の図は NCache Service Fabricクラスター内:
の展開の段階的な詳細を見てみましょう NCache それをよりよく理解するために。
NCache 詳細 の展開 NCache サービスファブリッククラスタ内
ステップ1:サービスファブリッククラスターを作成する
最初のステップは、展開するためにサービスファブリッククラスタを作成することです NCache。 キーボールトリソースを使用してリソースグループを作成します。 キーボールトには、ServiceFabricクラスターで使用される証明書が含まれています。 開始するには、指定された5ノードのServiceFabricクラスターのARMテンプレートから始めることができます。 こちら 次に、次の変更を行います。
- JSON ファイル、のデフォルト値を変更します vmImageSku 内のパラメータ パラメータ セクションから 2016-データセンター 〜へ 2016-コンテナ付きデータセンター。 これにより、Docker機能がプリインストールされたVMSSノードがセットアップされます。
- ARMテンプレートを更新して、 オープンネットワーキングモード.
- 公開するロードバランサーポートの中に、値が8251のポートバランサーポートを追加します。これは、 NCache WebManagerが実行されます。 このポートの配布モードをに変更します ソースIP。 これにより、 NCache スティッキーセッションでアクセスされるWebManagerは、キャッシュの作成およびノードの追加の過程でサーバーとクライアント間で一貫した状態を提供します。
これが完了すると、ARMテンプレートをデプロイでき、そのリソースと構成がAzureResourceManagerによってプロビジョニングされます。 インフラストラクチャが整っており、ARMテンプレートで指定されているすべての構成が確認されたら、次の手順に進みます。
ステップ2:作成 NCache クラスターサービス
NCache クラスターサービスは、実行中のメインサービスであり、 NCache サービスFabricVMSSのコンテナー内で実行されているサーバー。 ザ NCache サーバーウィンドウのコンテナイメージは、 Dockerhub。 このサービスが使用する構成モードは、 Open 構成モードとその使用法の詳細については、ブログの後半で説明します。 このサービスの目的は、通信に必要な次のポートを公開することです。
- 管理ポート:キャッシュサーバーがキャッシュ作成などの管理操作をリッスンするポート番号8250。
- クライアントポート: すべてのCRUD操作を実行するためのポート番号9800。
サービスファブリックでは、 オープンネットワーキングモード 複数のコンテナが、実行している仮想マシンのセカンダリIPアドレスプールから個々のIPアドレスを割り当てることにより、同じポートを共有できるようにします。 の場合 NCache サービス、これは許可するという追加の利点があります NCache クラスター化されたキャッシュの一部である場合に、ホストの境界を越えて通信するコンテナー。 これはデフォルトでは不可能です NAT モード。
以下にサンプルを示します NCache クラスターサービスマニフェストファイル:
1 2 3 4 5 6 7 |
<ContainerHost> <ImageName>alachisoft/ncache</ImageName> </ContainerHost> <Endpoints> <Endpoint Name="cache-management" Protocol="tcp" UriScheme="tcp" Port="8250" CodePackageRef="Code" /> <Endpoint Name="cache-client" Protocol="tcp" UriScheme="tcp" Port="9800" CodePackageRef="Code" /> </Endpoints> |
ステップ3:作成 NCache 管理サービス
NCache 管理サービスもコンテナサービスであり、と同じDockerイメージを使用します。 NCache クラスターサービス。 このサービスの目的は、にアクセスすることにより、管理および監視の目的でポート8251を公開することです。 NCache Webマネージャ。 分離する理由 NCache からの管理サービス NCache クラスタサービスでは、オープン構成モードでは、ホストからポートへのマッピングは許可されません。 NCache ホストポートを提供してWebManagerにアクセスする必要があります。このために、 NCache 管理サービスはで作成されます NAT モード。 以下に、のサンプルサービスマニフェストファイルを示します。 NCache 管理サービス。
1 2 3 4 5 6 |
<ContainerHost> <ImageName>alachisoft/ncache</ImageName> </ContainerHost> <Endpoints> <Endpoint Name="web-management" Protocol="http" UriScheme="http" Port="8251" Type="Input" CodePackageRef="Code" /> </Endpoints> |
ステップ4:作成 NCache ディスカバリーサービス
NCache ディスカバリーサービスはステートレスで信頼性の高いASPです.NET Core Service Fabricネーミングサービスと相談し、によって登録されたエンドポイントを取得するWeb API NCache クラスターサービス。 エンドポイントにアクセスして取得した情報は、HTTP応答としてクライアントに提供されます。
クライアントアプリケーションは、次の操作を実行できます。 NCache 取得したIPアドレス情報を使用してキャッシュ接続を作成することにより、クラスター化されたキャッシュ。 のサービスマニフェスト NCache ディスカバリーサービスを以下に示します。
1 2 3 4 5 6 7 |
<EnvironmentVariables> <EnvironmentVariable Name="ASPNETCORE_ENVIRONMENT" Value="" /> </EnvironmentVariables> <Endpoints> <!-- This endpoint is used by the communication listener to obtain the port on which to listen. --> <Endpoint Protocol="http" Name="ServiceEndpoint" UriScheme="http" Port="55100" Type="Input" /> </Endpoints> |
ステップ5:キャッシュクラスターを作成する
この部分は、実際のキャッシュ作成が行われる場所です。 まず、 NCache ディスカバリーサービスが稼働しています。 検出サービスから、クラスター化されたDNSで構成されるURIと、キャッシュ検出サービスがリッスンしているポートにアクセスします。 URIに続いてDNSを開くと、各エンドポイントのIPアドレスが表示されます。 NCache サービス。
サービスが稼働していることを確認したら、次のサービスにアクセスできます。 NCache 作成するWebマネージャー NCache クラスター化されたキャッシュ。 アクセスするには NCache Web Manager、DNSに続いてポート番号8251を使用してアクセスします。これにより、のメインウィンドウが表示されます。 NCache Webマネージャー。 の[キャッシュクラスターの作成]セクションの手順に従って、キャッシュクラスターを作成します。 ドキュメント.
ステップ6:クライアントアプリケーションサービスを作成する
異なる NCache クライアントサービスはHTTPリクエストをに送信します NCache クライアントにコンテナのIPアドレスを提供するディスカバリサービス NCache 応答して実行されています。 その後、クライアントはIPアドレスを使用して、通信するキャッシュ接続を作成できます。 NCache クラスター化されたキャッシュ。
の監視が必要な場合 クライアント側 NCache パフォーマンスカウンター および/またはout-procが必要 クライアントキャッシュ クライアントサービスでは、クライアントアプリケーションをコンテナサービスとしてデプロイする必要があります。コンテナサービスのソースイメージには、 NCache キャッシュクライアントモードでのインストール。 この場合、クライアントサービスもオープンネットワーキングモードを使用します。
以下に、クライアントアプリケーションサービスのサンプルサービスマニフェストファイルを示します。 NCache クライアントのインストール:
1 2 3 4 5 6 |
<EntryPoint><ContainerHost><ImageName>ncache/apps:sfclient</ImageName></ContainerHost></EntryPoint> <EnvironmentVariables> <EnvironmentVariable Name="ASPNETCORE_ENVIRONMENT" Value="Development"/> <EnvironmentVariable Name="Cache_Name" Value="democache"/> <EnvironmentVariable Name="Cache_DiscoveryService_URL" Value="<Cache Discovery Service URL>"/> <!-- Other environmental variables --> |
NCache 詳細 NCache OpenShiftデプロイメント NCache ドッカーコンテナ
ステップ7:クライアントアプリケーションを実行する
キャッシュが起動して実行されると、クライアント側からCRUD操作の実行を開始できます。 クライアントアプリケーションは、最初に、のIPアドレスを取得することから始まります。 NCache からのサーバーコンテナ NCache ディスカバリーサービスを使用して、キャッシュとの接続を確立します。 接続が確立されると、キャッシュ管理とCRUD操作を続行できます。
を使用してクライアント接続を検証できます NCache Webマネージャーと NCache 次のステップで説明するWebモニター。
ステップ8:監視 NCache クラスタ
NCache Webマネージャ 埋め込まれています NCache Webモニター キャッシュクラスターの監視に役立つツール。 キャッシュクラスターを監視すると、キャッシュクラスターの状態、キャッシュアクティビティ、実行された操作の数などに関するリアルタイムの情報が得られます。 キャッシュクラスターを監視すると、メモリのオーバーヘッドなどの問題に対して適切な対策を講じることができます。
ドキュメントの手順に従って、キャッシュクラスターを監視します。 レポートダッシュボードやグラフィカルダッシュボードなどのさまざまなダッシュボードと、クライアントおよびサーバーのカウンターが表示されます。
ステップ9:スケーリング NCache クラスタ
NCache 本質的に非常にスケーラブルであるため、 キャッシュクラスターにサーバーを追加する 実行時。 NCache Web Managerを使用すると、キャッシュクラスターにサーバーを追加できます。 単にスケーリングします NCache 必要な多くのインスタンスへのクラスターサービス。 一度新しい NCache サーバーコンテナが実行されている場合は、キャッシュクラスターを停止せずにそれらをキャッシュクラスターに追加できます。
次に、キャッシュクラスターを監視して、追加されたサーバーノードでのアクティビティを確認できます。
まとめ
記事全体をまとめるために、AzureServiceFabricの展開について説明しました。 NCache. NCache は非常にスケーラブルなキャッシングソリューションであり、高性能と非常に高速なトランザクションを保証します。 これらの利点は、いくつかの簡単な手順に従って展開することで実現できます。 NCache コンテナー化された環境でAzureServiceFabricを使用します。