Serverless Functions app operations
This article describes Azure operations considerations for serverless Functions applications. To support Functions apps, operations personnel need to:
- Understand and implement hosting configurations.
- Future-proof scalability by automating infrastructure provisioning.
- Maintain business continuity by meeting availability and disaster recovery requirements.
Planning
To plan operations, understand your workloads and their requirements, then design and configure the best options for the requirements.
Choose a hosting option
The Azure Functions Runtime provides flexibility in hosting. Use the hosting plan comparison table to determine the best choice for your requirements.
Azure Functions hosting plans
Each Azure Functions project deploys and runs in its own Functions app, which is the unit of scale and cost. The three hosting plans available for Azure Functions are the Consumption plan, Premium plan, and Dedicated (App Service) plan. The hosting plan determines scaling behavior, available resources, and support for advanced features like virtual network connectivity.
Azure Kubernetes Service (AKS)
Kubernetes-based Functions provides the Functions Runtime in a Docker container with event-driven scaling through Kubernetes-based Event Driven Autoscaling (KEDA).
For more information about hosting plans, see:
- Azure Functions scale and hosting
- Consumption plan
- Premium plan
- Dedicated (App Service) plan
- Azure Functions on Kubernetes with KEDA
- Azure subscription and service limits, quotas, and constraints
Understand scaling
The serverless Consumption and Premium hosting plans scale automatically, adding and removing Azure Functions host instances based on the number of incoming events. Scaling can vary on several dimensions, and behave differently based on plan, trigger, and code language.
For more information about scaling, see:
Understand and address cold starts
If the number of host instances scales down to zero, the next request has the added latency of restarting the Function app, called a cold start. Cold start is a large discussion point for serverless architectures, and a point of ambiguity for Azure Functions.
The Premium hosting plan prevents cold starts by keeping some instances warm. Reducing dependencies and using asynchronous operations in the Functions app also minimizes the impact of cold starts. However, availability requirements may require running the app in a Dedicated hosting plan with Always on enabled. The Dedicated plan uses dedicated virtual machines (VMs), so is not serverless.
For more information about cold start, see Understanding serverless cold start.
Identify storage considerations
Every Azure Functions app relies on Azure Storage for operations such as managing triggers and logging function executions. When creating a Functions app, you must create or link to a general-purpose Azure Storage account that supports Blob, Queue, and Table storage. For more information, see Storage considerations for Azure Functions.
Identify network design considerations
Networking options let the Functions app restrict access, or access resources without using internet-routable addresses. The hosting plans offer different levels of network isolation. Choose the option that best meets your network isolation requirements. For more information, see Azure Functions networking options.
Production
To prepare the application for production, make sure you can easily redeploy the hosting plan, and apply scale-out rules.
Automate hosting plan provisioning
With infrastructure as code, you can automate infrastructure provisioning. Automatic provisioning provides more resiliency during disasters, and more agility to quickly redeploy the infrastructure as needed.
For more information on automated provisioning, see:
- Automate resource deployment for your function app in Azure Functions
- Terraform - Manages a Function App
Configure scale out options
Autoscale provides the right amount of running resources to handle application load. Autoscale adds resources to handle increases in load, and saves money by removing resources that are idle.
For more information about autoscale options, see:
Optimization
When the application is in production, make sure that:
- The hosting plan can scale to meet application demands.
- There's a plan for business continuity, availability, and disaster recovery.
- You can monitor hosting and application health and receive alerts.
Implement availability requirements
Azure Functions run in a specific region. To get higher availability, you can deploy the same Functions app to multiple regions. In multiple regions, Functions can run in the active-active or active-passive availability pattern.
For more information about Azure Functions availability and disaster recovery, see:
- Azure Functions geo-disaster recovery
- Disaster recovery and geo-distribution in Azure Durable Functions
Monitoring logging, application monitoring, and alerting
Application Insights and logs in Azure Monitor automatically collect log, performance, and error data and detect performance anomalies. Azure Monitor includes powerful analytics tools to help diagnose issues and understand function use. Application Insights help you continuously improve performance and usability.
For more information about monitoring and analyzing Azure Functions performance, see:
- Monitor Azure Functions
- Monitor Azure Functions with Azure Monitor logs
- Application Insights for Azure Functions supported features
Next steps
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for