I am trying to deploy to my first Orleans project on Azure as a service but was not able to find any solution.
Right now I am using a local cluster and it is working fine.
Hi @keshavk, I'm not familiar with how to deploy to Azure App Services or configure them for hosting. I believe it's possible to host a cluster there - but I am not sure. From my rudimentary understanding, it would require an App Service Environment: https://docs.microsoft.com/en-us/azure/app-service/environment/intro
You must have network connectivity between your clients and silos (they should be in the same environment).
I may be able to help with specific questions.
If anyone else is more familiar, please chime in.
Hey @keshavk, the fastest way to getting Orleans working on Azure is to start with the Service Fabric samples, and go from there, IMO.
_Additional background information_
The biggest barrier to getting Orleans working from an Azure App service based hosting environment (web-job, functions, web-app etc.) is that the networking infrastructure is tightly locked down for code hosted on it. Orleans requires 2 additional ports (gateway and silo) open for communication amongst the nodes, so it can set up the logical cluster, and that isn't permitted on app-service.
If you use _service-fabric_ as your hosting environment, it comes with a vnet that already allows the virtual machines to talk to each other on any arbitrary port, so its much easier hosting Orleans on top of it than on app-service.
Alternatively, if you want to host on Linux VMs, you could look into setting-up an AKS (Azure Kubernetes Service) cluster and set up the vnet appropriately to allow the hosts to communicate with each other on the silo & gateway ports.
Is there any docs for setting up a docker/k8s environment for Orleans? I saw there _used_ to be some docs but they were deleted last year and never came back.
@knight1219 There's an old documentation page - http://dotnet.github.io/orleans/1.5/Documentation/Deployment-and-Operations/Docker-Deployment.html. It needs to be revisited. But you might be able to find something useful in it.
I'm trying to find some guidance though Orleans + Kubernetes and it is really hard to find good info about the deployment in general. I looking forward for a better deployment/operations documentation of an Orleans silo and to have a clear view of what kind of deployments we can have (can I deploy it to azure app services? how?) and I think this is a huge barrier to the broad adoption of Orleans...
Has there been any more news on this?
Hi,
I am researching Orleans and I believe it is a brilliant choice for an IoT project my company is starting. Compared to Akka.net it's concepts are simple and easy to understand. However, as the comments above suggest, I have found it so hard to get any information on how to actually host and deploy Orlans silos to Azure or AWS cloud services and this is definitely scaring me off and I wonder if this has been a barrier to adoption. What I would like to know is:
It seems like guidance here is non-existent, is it possible to get some more information around these scenarios? I would actually love to see an Azure Orleans PaaS, where you could pay for a "silo" host and just add new ones and connect clients to it which would be a hosted Orleans Actor environment in the cloud as a service.
Hey @sjbthfc2, these are really good questions and ones that are being asked often. My experience has been that Orleans is really flexible on where its hosted, but does require the ability for the nodes to directly reach other via TCP connections. So, your decision for #2 could be predicated on that choice.
Personally, I've had great success in hosting Orleans using Service Fabric on Azure, and I'd expect that any other hosting environment that's closer to IaaS (AKS, VMs, EC2, ECS etc.) than PaaS (App Service, Fargate etc.) might work the same way as well.
Another aspect to consider is that Orleans nodes like to be long-lived, and some hosting options like AWS Fargate (and Azure ACI), App Services etc. offer less expensive shared tiers that tend to shut-down instances frequently, which hurts both recovery time and performance.
As far as Orleans PaaS is concerned, I'd love that as well, but whoever offers it would need to harden the nodes to be isolated against errant CPU & memory consumption, serialization related stack-overflow bugs etc. :)
Hi @bsrini
Thank you so much for your response. So I guess using Orleans, we need to think about IaaS for long-lived hosting. Would a good option be the following:
Most helpful comment
I'm trying to find some guidance though Orleans + Kubernetes and it is really hard to find good info about the deployment in general. I looking forward for a better deployment/operations documentation of an Orleans silo and to have a clear view of what kind of deployments we can have (can I deploy it to azure app services? how?) and I think this is a huge barrier to the broad adoption of Orleans...