This repository contains a simple solution with an Orleans Silo and an Orleans Client project. Both are deployed to Azure App Services running in a regional virtual network, using Azure Storage clustering. The folders off of the root are described below:
- Orleans.Azure.Infrastructure - an experimental project designed to support hosting Orleans Silos in Azure App Service or Container Apps with little wire-up.
- OrleansOnAppService.Abstractions - project containing the Grain interfaces.
- OrleansOnAppService.Grains - project containing the Grain implementations.
- OrleansOnAppService.Silo - a simple ASP.NET Core project that hosts the Orleans silo.
- OrleansOnAppService.Client - a simple ASP.NET Core Razor project that serves as a client to the silo and provides a simple user interface.
deploy
folder - this folder contains a series of Azure Bicep templates that can be used to create the application and deploy it.setup.ps1
- this file is a one-stop way for you to deploy the app to your own Azure subscription so you can try the scenario.
- .NET 7.0
- The Azure CLI
- An Azure subscription
- PowerShell (GitHub Actions will replace this prerequisite soon)
- Clone this repository.
- Sign in to your Azure subscription using the
az login
command. - If you have more than 1 Azure subscription, make sure you're targeting the right Azure subscription by using the
az account show
andaz account set -s <subscription-id>
commands. - From the root of this repository, run
./setup.ps1
.
The resultant application is an Orleans clusted comprised of a trio of App Services - the silo
, the client
Razor Pages front-end, and the community-contributed Orleans Dashboard, so you can see a snapshot of all the grains, silos, and messages in the cluster.
Note: the dashboard was omitted from the diagram to show the most basic silo/client topology possible.