個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Microsoft MVP for Developer Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

Orleans の基本的な構成を App Service にデプロイする(4)動作確認

目次

 
前の記事はこちらです。
hiro128.hatenablog.jp
 

Web App

 
フロントエンドにアクセスできて、サイロ01、サイロ02にアクセスできなければデプロイ成功です。

フロントエンド パブリックアクセス可
サイロ01 パブリックアクセス不可
サイロ02 パブリックアクセス不可

 
 

Azure Table

サイロ01、サイロ02のインスタンスのステータスが Active になっていればデプロイ成功です。

 

Orleans の概要と基本構成のデプロイまで(目次)

Orleans は何を解決するために生まれ、どのようなフレームワークなのか

記事はこちらです。
hiro128.hatenablog.jp
 

Orleans の 構成と重要なプリミティブ(構成要素)

記事はこちらです。
hiro128.hatenablog.jp
 

Orleans の構成要素:フロントエンド

記事はこちらです。
hiro128.hatenablog.jp
 

Orleans の構成要素:グレイン

記事はこちらです。
hiro128.hatenablog.jp
 

Orleans の構成要素:サイロ

記事はこちらです。
hiro128.hatenablog.jp
 

Orleans の基本的な構成を App Service にデプロイする(1)構成の確認

記事はこちらです。
hiro128.hatenablog.jp
 

Orleans の基本的な構成を App Service にデプロイする(2)VNet の設定

記事はこちらです。
hiro128.hatenablog.jp
 

Orleans の基本的な構成を App Service にデプロイする(3)App Service の プライベートポート

記事はこちらです。
hiro128.hatenablog.jp
 

Orleans の基本的な構成を App Service にデプロイする(4)動作確認

記事はこちらです。
hiro128.hatenablog.jp
 
 

Orleans の 構成と重要なプリミティブ(構成要素)

Orleans の構成

Orleans の構成は以下のようになっています。

Orleans のクラスターは1つの巨大なコンピューターのように取り扱われます。
スケールアウトやアップグレードによるインスタンス追加や、障害時のインスタンスの突然停止に対応するため、
サイロは、Container Apps、App Service、マネージド k8s などの SaaS にデプロイする前提となっています。
 
Orleans の基本的な動作は、以下の通りです。

  • REST API が定義されたエンドポイントであるフロントエンドで、HTTP リクエストを受信します
  • リクエストは適切なグレインにルーティングされグレインのメソッドが呼び出され、データがメモリ内にない場合はDBから取得し、レスポンスを返します

 
 

Orleans の重要なプリミティブ(構成要素)

Orleans の全体像を把握するために、重要な構成要素はフロントエンド、グレイン、サイロの3つです。


 

プリミティブ 概要
Frontend Orleans の世界と外部とのゲートウェイ
HTTP Request/Response と Grain Call/Response の変換を行います。
Grain フロントエンドから呼び出す際のID(identity)、業務ロジック実装(behavior)、インメモリの状態(state)で構成されるエンティティ
クラスターでホストされているグレインは、1 つのプロセス内にあるかのように相互に通信できます。
Silo グレインをホストするインスタンス
クラスターとして実行され、サイロ同士は互いに連携して作業を分散し、失敗を検出して復旧できます。

 
 
次の記事はこちらです。
hiro128.hatenablog.jp
 
 

Orleans の基本的な構成を App Service にデプロイする(2)VNet の設定

構成図

構成では、フロントエンドのみパブリックアクセス可能、2つのサイロとストレージはプライベートアクセスのみ可能としますが、プライベートアクセスはリージョン VNet 統合とプライベートエンドポイントで実現します。
そのための VNet の設定は以下のようになります。
 

アドレス空間


 

接続デバイス(プライベートエンドポイント)


 

サブネット


 
 
次の記事はこちらです。
hiro128.hatenablog.jp