写点什么

借助 Azure Functions Flex Consumption 实现高可扩展 HTTP:Thiago Almeida 与 Paul Batum 访谈

  • 2024-07-23
    北京
  • 本文字数:1658 字

    阅读完需:约 5 分钟

大小:833.77K时长:04:44
借助Azure Functions Flex Consumption实现高可扩展HTTP:Thiago Almeida与Paul Batum访谈

微软通过Flex Consumption方案对其 Azure Functions 平台进行了大幅增强,旨在有效地处理大规模 HTTP 请求。这个新方案支持自定义每个实例的并发数,让用户在有效管理成本的同时实现高吞吐量。在实际测试中,Azure Functions Flex 展示了只用 7 秒钟就可以将每秒请求数(RPS)从 0 到 32000 的扩展能力。

 

Flex Consumption 方案支持两种内存大小:2048 MB 和 4096 MB,预计将来会提供更多的内存大小选项。它还包括通过调整最大实例数来优化冷启动和保护下游组件的功能。该方案旨在为从零售闪购到大规模数据处理的各种负载需求提供强大而灵活的解决方案。

 

公告中的一个案例研究展示了该方案的能力。一个零售客户在在线闪购促销活动中的平均吞吐量达到了 15630 RPS,在三分钟内处理了近 300 万个请求。通过优化并发设置,系统最多可以处理 32000 RPS,这证明了该方案的可扩展性和性能优势。



平均吞吐量 15630 RPS(来源:技术社区博文

 

该公司还为 Azure Functions Flex Consumption 添加了经过改进的虚拟网络功能。现在,Functions App 可以安全地访问虚拟网络(VNet)背后的服务而不会损失速度,即使在扩展期间也是如此。在最近的一个场景中,VNet 允许 Functions App 在没有公共端点的情况下向事件中心进行写入。为了测试这一点,该公司跨多个语言栈和地区比较了集成 VNet 和不集成 VNet 的启动性能。

 

启用 VNet 注入对横向扩展性能的影响很小。其 50 百分位的平均延迟仅为 37ms,显然,使用包含 Flex Consumption 方案的虚拟网络所带来的安全优势超过了性能成本。这些成果的取得得益于对Legion项目网络技术栈(Flex 消费的计算基础)的大量投资。

 

InfoQ 采访了微软首席项目经理Thiago Almeida和首席软件工程师Paul Batum,以进一步了解有关 Azure Function Flex Consumption 的更多信息。

 

InfoQ:在 Azure Functions Flex 中,如何确定不同工作负载的最佳单实例并发设置?


Thiago Almeida:通常,在大多数情况下,你可以使用默认值,并让 Azure Functions 动态扩展。Flex Consumption 提供的默认值可以最大化每种语言的能力。对于 Python 应用程序,所有规格的实例默认并发数均为 1。对于其他语言,2048MB 的实例使用了默认并发数 16,而 4096MB 的实例则使用默认并发数 32。建议使用不同的并发数运行测试,以进一步优化 Flex Consumption 应用程序的高扩展 HTTP 场景。性能优化器特性已经面向所有人开放。这是一个很好的工具,它可以帮助你为 Flex Consumption 上的 HTTP Functions 应用确定最佳并发数和实例大小。


InfoQ:在调整实例并发数和内存大小时,您能详细说明一下如何在成本和性能之间取得平衡吗?


Paul Batum:不同工作负载的差异很大,但一般的规则是,增加每个实例的并发性会提高总体效率,但也会产生某种性能影响,比如响应变慢,特别是在高百分位(P99、P99.9 等)时。对于某些工作负载来说,这是一项巨大的胜利——如果应用程序调用了外部 API 并且正在等待响应,那么在等待响应的同时,该实例上的其他请求的处理效率会高许多。

 

另一方面,如果工作负载是高度 CPU 密集型的,那么在 16 个并发操作之间进行上下文切换的效率还不如一个接一个地处理它们。因此,在这种类场景中,你可能会看到减少并发性反而带来了效率的提升。当增加内存时,分配的 CPU 也会相应增加,这有助于减少系统完成 CPU 密集型任务所需的时间。


InfoQ:启用 VNet 注入会对性能产生怎样的影响?为了解决这个问题,Legion 项目做了哪些有针对性的优化?


Almeida:Legion 项目的构建是为了让扩展能力可以达到 Flex Consumption 所需的水平,其中还包括具备内核级路由的 VNet 注入以及对子网 IP 地址的有效使用。Azure Functions 团队还引入了“触发监视器”组件,并将其注入到了客户的 VNet 中,以便为应用程序提供缩放决策,甚至使应用缩减到零。正如案例研究一文所说的那样,平台方面的这些改进使得 VNet 注入对横向扩展性能的影响非常小。我们做了集成 VNet 和不集成 VNet 的测试,我们观察到,50 百分位的差异为 37ms。

 

最后,GitHub上提供了更多关于 Azure Flex Consumption 的例子。

 

原文链接:

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

2024-07-23 08:008914

评论

发布
暂无评论
发现更多内容

微服务与 API有什么区别?

雨果

微服务 数据api

Babel 插件开发&访问节点

小鑫同学

前端 Node 10月月更

Java Lambda 表达式

Yeats_Liao

后端 Java core 10月月更

cstdio的源码学习分析10-格式化输入输出函数fprintf整体分析

桑榆

源码刨析 10月月更 C++

开发 Babel 插件可以试试这个 CLI 工具

小鑫同学

前端 Node 10月月更

支撑阿里“双十一”的消息中间件,带你云淡风轻面对高并发

图灵教育

RocketMQ 中间件 架构师 消息中间件

贤鱼的刷题日常--P1548 [NOIP1997 普及组] 棋盘问题

贤鱼很忙

c++ CSP 10月月更

利用fs-extra实现"yarn create tlist"创建项目

小鑫同学

前端 Node 10月月更

【入门】你连Babel都不会配?那插件不成乱装了

小鑫同学

前端 Node 10月月更

跟着卷卷龙一起学Camera--夜景拍照03

卷卷龙

ISP camera 10月月更

Go 语言泛型编程之切片

宇宙之一粟

Go 泛型 泛型编程 10月月更

支撑阿里“双十一”的消息中间件,带你云淡风轻面对高并发

图灵社区

RocketMQ 中间件 架构师 消息中间件

内网渗透-IPC$横向控制OA系统【网络安全】

网络安全学海

网络安全 信息安全 渗透测试 内网渗透 漏洞挖掘

【入门教程】Rollup模块打包器整合

小鑫同学

前端 Node 10月月更

MySQL高级--性能优化查询截取分析

Java学术趴

10月月更

io的实质

wzh

Linux 面试 后端 io java 编程

数据质量监控,你一直都做错了

雨果

数据质量

Spring Boot「04」Annotations 01

Samson

Java spring 学习笔记 spring-boot 10月月更

read、select、poll、epoll区别

wzh

网络 Linux Kenel epoll IO多路复用 poll

这是我见过的,最好的工作流设计

跟YY哥学Jira

设计 Jira workflow

Java 序列化与反序列化

Yeats_Liao

后端 Java core 10月月更

【愚公系列】2022年10月 Go教学课程 026-结构体

愚公搬代码

10月月更

2022-10-12:以下go语言代码输出什么?A:1;B:2;C:panic;D:不能编译。 package main import “fmt“ func main() { m := m

福大大架构师每日一题

golang 福大大 选择题

干货|什么是特性团队/功能团队(FeatureTeam)

laofo

Scrum 研发效能 PMO 敏捷精益 敏捷研发

算法 _【实验5.2】1-深度优先搜索暴力求解旅行商问题

清风莫追

算法 深度优先搜索 10月月更

跟着卷卷龙一起学Camera--夜景拍照02

卷卷龙

ISP camera 10月月更

DevOps 与 DataOps 相关吗?

雨果

DataOps

走进“yarn create vite”的源码学习

小鑫同学

前端 Node 10月月更

【实战】自定义 Github Action 库

小鑫同学

前端 Node 10月月更

【Serverless】前端上 Ali 云必备指南

小鑫同学

前端 Node 10月月更

贤鱼的刷题日常--P2671 [NOIP2015 普及组] 求和

贤鱼很忙

c++ 10月月更 题解

借助Azure Functions Flex Consumption实现高可扩展HTTP:Thiago Almeida与Paul Batum访谈_微软_Steef-Jan Wiggers_InfoQ精选文章