Q&A with Thiago Almeida and Paul Batum on Achieving High HTTP Scaling with Azure Functions Flex Consumption

Spread the love



Microsoft has upgraded its Azure Functions platform with a new Flexible consumption plan aimed at handling high HTTP scale efficiently. This plan offers customizable concurrency per instance, enabling users to achieve high performance and manage costs effectively. In testing, Azure Functions Flex showcased the capability to scale from zero to 32,000 requests per second (RPS) in just seven seconds.

The plan supports memory sizes of 2048 MB and 4096 MB, with more sizes expected in the future. It includes features to optimize cold starts and protect downstream components by adjusting the maximum instance count. The plan provides a robust and flexible solution for various charging requirements, from retail flash sales to large-scale data processing.

A case study presented in the advertisement highlights the plan’s capabilities. One retail client running an online flash promotion achieved an average throughput of 15,630 RPS, processing nearly 3 million requests in three minutes. The system could handle up to 32,000 RPS by adjusting concurrency settings, demonstrating the plan’s scalability and performance benefits.

Microsoft has also integrated enhanced virtual networking features into Azure Functions Flex Consumption. A function app can now access services secured behind a virtual network (VNet) without sacrificing speed, even during scaling. This integration has minimal impact on scale-out performance, with results showing an average delay of 37ms at the 50th percentile.

Thiago Almeida, Senior Program Manager at Microsoft, and Pablo Batum, Principal Software Engineer at Microsoft, discussed the performance of Azure Functions Flex in an interview with InfoQ. Almeida recommended relying on default values for per-instance concurrency settings in most cases, while Batum explained the trade-offs between cost and performance in tuning concurrency and memory sizes based on workload requirements.

Enabling VNet injection in Azure Functions Flex is achieved through Project Legion, which provides efficient scaling decisions and minimal impact on scale-out performance. The “wakeup monitor” component injected into the VNet assists in scaling decisions for applications, even at zero scale. These optimizations ensure that VNet integration in the flexible consumption plan has limited impact on performance, with only a 37ms change in the 50th percentile noted in tests.

Overall, the Azure Functions Flex Consumption plan offers a powerful and scalable solution for handling high HTTP scale efficiently while providing flexibility in managing costs and optimizing performance. Further examples and information about Azure Flex consumption are available on GitHub.

Article Source
https://www.infoq.com/news/2024/06/flex-consumption-azure-functions/