Web App
フロントエンドにアクセスできて、サイロ01、サイロ02にアクセスできなければデプロイ成功です。
フロントエンド | パブリックアクセス可 | ![]() |
サイロ01 | パブリックアクセス不可 | ![]() |
サイロ02 | パブリックアクセス不可 | ![]() |
Azure Table
サイロ01、サイロ02のインスタンスのステータスが Active になっていればデプロイ成功です。
フロントエンドにアクセスできて、サイロ01、サイロ02にアクセスできなければデプロイ成功です。
フロントエンド | パブリックアクセス可 | ![]() |
サイロ01 | パブリックアクセス不可 | ![]() |
サイロ02 | パブリックアクセス不可 | ![]() |
サイロ01、サイロ02のインスタンスのステータスが Active になっていればデプロイ成功です。
ARM版 Visual Studio 2022 Preview 17.6.0 Preview 1.0 でついに MAUI がサポートされました!
詳細は後日レポート予定です。
記事はこちらです。
hiro128.hatenablog.jp
記事はこちらです。
hiro128.hatenablog.jp
記事はこちらです。
hiro128.hatenablog.jp
記事はこちらです。
hiro128.hatenablog.jp
記事はこちらです。
hiro128.hatenablog.jp
記事はこちらです。
hiro128.hatenablog.jp
記事はこちらです。
hiro128.hatenablog.jp
記事はこちらです。
hiro128.hatenablog.jp
記事はこちらです。
hiro128.hatenablog.jp
Orleans の構成は以下のようになっています。
Orleans のクラスターは1つの巨大なコンピューターのように取り扱われます。
スケールアウトやアップグレードによるインスタンス追加や、障害時のインスタンスの突然停止に対応するため、
サイロは、Container Apps、App Service、マネージド k8s などの SaaS にデプロイする前提となっています。
Orleans の基本的な動作は、以下の通りです。
Orleans の全体像を把握するために、重要な構成要素はフロントエンド、グレイン、サイロの3つです。
プリミティブ | 概要 |
---|---|
Frontend | Orleans の世界と外部とのゲートウェイ HTTP Request/Response と Grain Call/Response の変換を行います。 |
Grain | フロントエンドから呼び出す際のID(identity)、業務ロジック実装(behavior)、インメモリの状態(state)で構成されるエンティティ クラスターでホストされているグレインは、1 つのプロセス内にあるかのように相互に通信できます。 |
Silo | グレインをホストするインスタンス クラスターとして実行され、サイロ同士は互いに連携して作業を分散し、失敗を検出して復旧できます。 |
次の記事はこちらです。
hiro128.hatenablog.jp
構成では、フロントエンドのみパブリックアクセス可能、2つのサイロとストレージはプライベートアクセスのみ可能としますが、プライベートアクセスはリージョン VNet 統合とプライベートエンドポイントで実現します。
そのための VNet の設定は以下のようになります。
次の記事はこちらです。
hiro128.hatenablog.jp
問題は軽減しているが、インフラを追加して厄介ごとをオフロードしているだけなので根本的な解決ではない…
スケーラビリティも確保できていない
これによって
が確保できることをねらって開発されました。
Orleans は、アプリケーションのフロントエンド と永続化ストレージ(DBなど)の間のステートフルでスマートな中間層を提供するフレームワークです。
分散アプリケーションを開発するときに発生するいろいろな面倒なことについて、
いい感じで面倒を見てくれるので、メリットだけを享受することができます。
Teams など超大規模サービスでの実績もある安定したフレームワークです
次の記事はこちらです。
hiro128.hatenablog.jp
Orleans の基本的な構成のデプロイを App Service にデプロイしてみましょう。
基本的な方針を以下の通りとします
実際の構成は以下のようになります。
それぞれのリソースが Orleans のどの構成要素に相当するか分かりやすくするため概念図との対比にしました。
役割 | リソース | パブリック アクセスの受信 |
プライベート アクセスの受信 |
プライベート エンドポイント |
リージョン VNet 統合 |
WebSocket |
フロントエンド | App Service | ○ | X | X | ○ | ○(ポート数:2) |
サイロ01 | App Service | X | ○ | ○ | ○ | ○(ポート数:2) |
サイロ02 | App Service | X | ○ | ○ | ○ | ○(ポート数:2) |
永続化ストレージ | Table Storage | X | ○ | ○ | ーーー | ーーー |
次の記事はこちらです。
hiro128.hatenablog.jp