azure-functionsorleans

Running Orleans Silo in Azure function app isolated process


I'm trying to run Orleans silo(s) in Azure function app isolated process. First time it seems running fine, but a couple hours later the function fails with connection errors Error logs

I found in OrleansMembershipTable that many Silos are registered there with private IP address (192.168.7.32, 192.168.4.108, 192.168.7.254...) Apparently the function app is constantly instantiated and disposed OrleansMembershipTable

Okay it can happen but my question is, shouldn't it be handled automatically by Orleans, if a silo is already dead, instead of failing request by connection error to the dead silo?

Or is it not possible to run Silos in isolated function app? I could find some example using separated Azure web job (silo) + Function app (Orleans client), which makes sense but I'd prefer having a single app, simpler architecture


Solution

  • For someone who might spend time like me, the conclusion is Function App can't host Silos - because Function App instances can't talk to each other. There might be some way to have a virtual network in dedicated plan, but not in consumption/premium plan. Our Microsoft contacts were quite adamant NOT TO USE Function app for hosting Orleans

    Instead now we are using Azure Container App