Skip to content

Sample content specific to running Orleans on Azure App Service #7553

Closed
@bradygaster

Description

@bradygaster

Create conceptual articles demonstrating two different scenarios with Microsoft Orleans and Azure App Service:

  • Running an application with 2 or more Silos containing various grain implementations.

Example: Monster grains are hosted in a MonsterSilo ASP.NET Core project, and Player grain are hosted in a second ASP.NET Core project named PlayerSilo. Both projects reference an Abstractions or GrainInterfaces project containing the grain abstractions, but the individual projects contain the grain implementations. This way, we'd be able to show multi-silo clusters hosting independent sets of grains.

  • Running an application with 2 or more Silos containing various grain implementations, and a client project

Example: Same as above, but the Client project is an ASP.NET Core Blazor app that functions as an Orleans client so humans can interface with the game system on the back. Each Client connected to the game would create a new Player grain in the PlayerSilo, but no new Monster grains would be created.

The conceptual article would need to cover the basics of getting a multi-silo app running on App Service. At a minimum, it'd need to explain:

  • How an S1 or greater is required.
  • That each Web App representing a silo would need to be in an Azure regional virtual network.
  • That each Web App representing a silo would need to have its vnetPrivatePortsCount property set to 2 or greater.
  • An Azure Storage account would be used for the clustering and grain persistence.
  • Ideally the article could link off to a pre-set Azure calculator showing the price of this setup (as it's not as expensive as it sounds).

Ideally the topology could be demonstrated with an Azure Bicep file that sets it all up for the customer.

Sample

I've created an initial example of such a scenario in this repo: Orleans silo + client on App Service

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions