Azure Functions:
This is a continuation of a series of articles on Azure services from
an operational engineering perspective with the most recent introduction to
Azure Function core tools with the link here. This article discusses Azure Functions best practices.
When we want code to be triggered by events, Azure Functions
become very useful because it is a compute-on-demand experience. It extends the
existing Azure App Service platform with capabilities to implement code
triggered by events occurring in Azure, in third-party service, and in
on-premises systems. Functions can be built to be reactive, but they are also
useful to process data from various data sources. Functions are hosted in
environments that like VMs are susceptible to faults such as restarts, moves or
upgrades. Functions may also have the same reliability as the APIs it invokes.
But functions can scale out so that they never become a bottleneck. The article
details some of the best practices for designing and efficient function apps.
Functions are popular because they can scale out as load
increases. Considerations for enabling this scale out are important and these
demand that the way the functions respond to load and handle the incoming
events be determined. One way to handle parallelism is when the function itself
does parallel processing using workers. The FUNCTIONS_WORKER_PROCESS_COUNT
setting determines the maximum number of such workers. After this threshold is
exceeded, function app is scaled out by creating new instances. When the
planning is for throughput and scaling, then the trigger configuration allows
us to control the batching behaviors and manage concurrency. Adjusting the
values in these options can help each instance scale appropriately. These
configuration options are applied to all triggers in a function application,
and maintained by the host.json for the application. When we plan for
connections, the number for connections on a per-instance basis must be set.
This limit affects the Consumption plan and all outbound connections from the
function code.
No comments:
Post a Comment