Azure / Azure/Azure-Functions

[Documentation] Zero/minimal downtime deployment best practices documentation request

Open
#862 20 comments 14 reactions 0 assignees View on GitHub
area: documentation needs-discussion
Dominant language
PowerShell
Stars
1.1k
Forks
215
Avg merge
4h 2m
Merged PRs (30d)
1

Description

Hi,

I am looking for best practices on handling deployment/upgrade scenarios to minimize the downtime. I am also looking for Function App code deployment organization recommendations to help minimizing impact on those deployment scenarios. (Ex: One Function App per version, separate APIs from async triggers processing code (Queues...))

While I found information here and there, scattered around in Github repos and docs.com, I was not able to find a nice summary or reference/guide on the subject that provide best practices.

Some questions to understand what I am looking for :

1. What is the proposed approach to deployment/upgrade scenario while having a currently executing function in Azure Functions? (App with lot of activity)

2. What is the status of deployment slots and should we use them? They have been in preview for a while and still have issues (cannot prevent code from executing, see [reference](https://github.com/Azure/azure-functions-host/issues/2412), meaning that old code after swap will still compete with newer code)

3. Should we separate API Triggers to a different Function App to minimize user impact of upgrades?

4. What is the impact on my Function App when the Functions Runtime is updated?

5. From a coding perspective, what are the recommended approaches to minimize impact of such upgrades (how to detect upgrades)?

Discussion initially started [here](https://github.com/Azure/azure-functions-durable-extension/issues/184#issuecomment-400161424) while brainstorming on a different topic . Quote from @jeffhollan from that thread to get discussion started:
> In order to have "zero down time" deployments with Azure Functions you'd need to do some green/blue deployment with something like traffic manager or proxies if HTTP, or potential phased / competing consumer if non-HTTP.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.