Description
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 aMonsterSilo
ASP.NET Core project, andPlayer
grain are hosted in a second ASP.NET Core project namedPlayerSilo
. Both projects reference anAbstractions
orGrainInterfaces
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. EachClient
connected to the game would create a newPlayer
grain in thePlayerSilo
, but no newMonster
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