写点什么

借助 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:008975

评论

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

企评家企业投资价值评价系统,服务投资机构

企评家

企业评价 企评家 企业成长性评价 企业投资价值评价

2022年SaaS发展趋势——私有本地化部署

BeeWorks

【国产免费】ETL任务调度运维自动化平台 TASKCTL 作业互斥与强制依赖

敏捷调度TASKCTL

DevOps 分布式 运维 ETL 大数据运维

什么是IP冲突以及如何解决?

郑州埃文科技

IP地址 IP冲突

设备资产管理软件解决方案

低代码小观

低代码 资产管理 CRM系统 企业设备管理 设备巡检管理系统

聚链成网,旺链科技联合发起跨链平台搭建计划

旺链科技

区块链 产业区块链 产业生态

得物客服一站式工作台卡顿优化之路

得物技术

前端 优化 sdk 卡顿 iframe

开源GitOps产业联盟会员行 | 走进秒云

MIAOYUN

云原生 gitops OGA联盟

看天翼云如何为实体工业插上“数字翅膀”

天翼云开发者社区

云计算 安全 云电脑

焱融科技在高性能全闪文件存储系统设计的思考

焱融科技

云计算 分布式 云原生 高性能 文件存储

使命与愿景

Ian哥

项目管理 企业文化 使命愿景

企业数字化升级,为什么都需要IM即时通讯?

BeeWorks

分布式云时代,天翼云4.0如何护卫边缘安全?

天翼云开发者社区

安全 云电脑

工业互联网,走,上云去!

天翼云开发者社区

云计算 安全 云电脑

从开源模型、框架到自研,声网 Web 端虚拟背景算法正式发布

声网

AI 大前端 WebRTC webassembly Dev for Dev

几行代码,网站图片访问速度 100ms 飙升到 20ms!

沉默王二

【前端干货】别再羡慕别人的Excel啦,教你点击按钮直接打开侧边栏!

葡萄城技术团队

前端 前端表格 前端按钮 在线协同

Masa Blazor自定义组件封装

MASA技术团队

C# .net 微软 UI 组件库

算力如何升级?天翼云这么干!

天翼云开发者社区

云计算 云电脑

产品经理该如何确定优先级?

LigaAI

PM 敏捷实践 优先级

Flutter 如何快速切换生产和测试环境?

岛上码农

flutter 安卓开发 ios 开发 跨平台应用 5月月更

智能运维 VS 传统运维|AIOps服务管理解决方案全面梳理

云智慧AIOps社区

运维 监控 AIOPS 自动化运维

Intel CET缓解措施深度研究

腾讯安全云鼎实验室

安全攻防 网络安全 安全研究

数据传输POST心法分享,做前端的你还解决不了这个bug?

葡萄城技术团队

HR系统本地化部署和SAAS,优秀企业会怎么选?

BeeWorks

软件测试需要学什么?测试学习大纲梳理

伤心的辣条

Python 程序员 程序人生 软件测试 自动化测试

企业如何利用SaaS模式实现知识管理

小炮

SaaS

天翼云4.0首亮相!

天翼云开发者社区

云计算 云电脑

中科创达与华为共启边缘计算合作,共建昇腾AI产业,赋能千行百业提质升级

科技热闻

与Fiddler旗鼓相当的mock工具!

Liam

测试 Postman 自动化测试 自动化测试平台 测试自动化

IJCAI 2022 放榜,腾讯优图实验室三篇论文入选

Geek_2d6073

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