4

I'd like to create a geo-redundant function app, this is what I've done:

  • Created a geo redundant storage account
  • Created a function app in each region in the pair
  • Changed WEBSITE_CONTENTSHARE to point to the same location

The function is duplicated and works as expected, but should I be doing this?

Jon Canning
  • 1,602
  • 16
  • 16

1 Answers1

2

Externally you still have two different function app urls, so technically it's not geo-redundant, unless you are managing client app configs for two endpoints, or your function apps are only ever polling resources/operating on a timer.

Further, if the content of your WEBSITE_CONTENTSHARE is corrupted, tampered with or accidentally changed to something incorrect, then both apps will fail.

The typical pattern I have seen for geo-redundancy is to deploy to two resource groups in two separate data centers (this includes splitting the storage accounts - which are cheap assets). This gives true separation and redundancy regardless of use case. You can go one step further for incoming https requests by putting them behind Azure API management. I dug this good post up.

Murray Foxcroft
  • 12,785
  • 7
  • 58
  • 86
  • 2
    Another resource is the [disaster recovery documentation](https://learn.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-disaster-recovery-geo-distribution) for Durable Functions. The approaches apply to Azure Functions in general (just disregard the bits addressing statefulness.) – Katy Shimizu Jan 28 '19 at 19:53
  • @Katy Shimizu Do you know how to create the durable functions in the way described in that documentation? In the azure portal I don't see a way to specify multiple regions where the app should get deployed. Edit: I think I got it. I need to deploy it in that way by creating multiple function apps and using a traffic manager. Earlier, I assumed that was inbuilt :) – Turbo Jul 12 '19 at 11:03
  • One can also deoloy such an architecture using normal functions. Does using durable function bring something more to the table? I understand durable functions bring in statefulness. But is it something that makes Geo redundancy better? – Turbo Jul 12 '19 at 11:20