华为开发者大会2024(HDC 2024)在东莞·松山湖圆满结束,期间华为云主办的“全域Serverless时代:技术创新引领,赋能行业实践”专题论坛,向广大开发者传递了Serverless领域的前沿思考和实践,现场座无虚席。Serverless展台接待企业客户300+,媒体宣传累计阅读量1w+。这一系列数字是华为云全域Serverless化的一个“缩影”,千行万业的开发者认可Serverless带来的价值并付诸实践,Serverless的应用场景也逐步从“专用”走向“通用”。
在本次HDC大会上,华为云发布一则重磅消息:华为云全域Serverless化背后的“基石”——元戎,中稿全球顶尖学术会议ACM SIGCOMM 2024。该会议在计算机科学领域享有崇高声望,2024年共接收投稿366篇,其中62篇被录用,录用率仅为16.9%。论文《YuanRong: A Production General-purpose Serverless System for Distributed Applications in the Cloud》揭示了华为自主创新的业界首个通用Serverless平台,提供通用函数编程模型,高可扩缩、高性能和高效对接后端服务的运行框架,助力华为云构建全域Serverless云服务。
- 一、Serverless从“专用”走向“通用”
当前,业界现有的Serverless产品主要限于事件驱动型应用,然而对于有状态微服务、大数据、HPC、AIGC等复杂应用,仍然面临如下四大核心技术挑战:
- 函数间无法高效协同:函数间无法直接寻址,需绕走网关,导致互调性能差。函数间不支持共享内存,无法高效协同,难以满足微服务、HPC等场景对低时延的诉求;
- 不确定的冷启动时延:冷启动是Serverless性能优化难题之一,尤其在微服务、AIGC等场景,容器启动时加载大镜像(GB级)的开销大,加之复杂的应用初始化过程,整个冷启动耗时分钟级,无法按需弹性;
- 状态外置影响性能:应用程序的状态必须外置到如OBS等远端存储,延迟可达数百毫秒,同时远端存储的带宽有限导致吞吐量低,难以满足大数据等场景多任务之间高效数据流转的诉求;
- 用户函数和后端服务间交互复杂:后端服务通常是有状态的,并为每个客户端维护经过身份验证的活动连接,例如JDBC连接,但这些连接状态很难在协作的函数实例之间共享。此外,多个函数的并发操作也会导致分布式事务的问题。
- 二、元戎首创通用Serverless平台
论文介绍了元戎通用Serverless平台的一系列关键创新。其中,针对挑战1和2,元戎构建了可扩展的函数系统,实现大规模函数调度、亚毫秒函数互调以及函数极速冷启动等关键技术,支持大规模多形态应用的统一管理和高效运行;针对挑战3,元戎内置了多语义数据系统,实现分布式共享内存对象以及流数据对象,提供分布式共享内存池,支持多语义数据的高效流转;针对挑战4,元戎构建了可移植的Bridge系统,提供事件和后端服务的标准抽象接口,解耦架构,同时支持连接复用和共享事务等功能。
元戎进一步抽象了面向云原生编程的通用Serverless运行时接口,并实现了主流语言的Runtime。通过这些Runtime,元戎为开发者提供特定领域的简易编程模式,支持Web服务、大数据、AI训练/推理、HPC等全域Serverless应用。
“元戎通用Serverless平台”架构图示
更多技术细节请参见华为云在ACM SIGCOMM 24发表的论文原文:
链接:https://dl.acm.org/doi/10.1145/3651890.3672216
- 三、通用Serverless客户案例
- 案例1:全球销量领先车企基于Serverless构建千万级车联网平台
当前,汽车行业的车联网业务对提升产业竞争力和创新能力方面具有重要意义。为了在未来10年内满足6700万接入车辆的业务需求,某全球销量领先的车企期望构建一个全生命周期车辆管理平台。该平台需要能够承载分钟级的车辆数据上报,每天100T的数据增量,并支撑至少10PB级以上的存量数据。此外,汽车接入具备典型的波峰波谷特征,白天上下班时请求峰值达3w+ QPS,夜间请求量相对白天锐减。如何构建支持千万车辆稳定接入的车联网平台,满足业务端到端秒级时延并降低成本,是企业面临的主要问题。
Serverless方案凭借其按需全自动弹性,按请求计费,免运维等优势,最终在与传统虚拟机/容器方案的对比中胜出。华为云FunctionGraph(Powered by元戎)作为核心计算服务,结合APIG、DIS、EG等Serverless中间件,灵活组装数据转码、分发、转储等业务流程,函数级逻辑开发简单,实例多AZ部署保证了高可靠性。
“使用FunctionGraph的无服务器IoV平台”方案图示
该车联网平台完成Serverless架构升级后,弹性能力显著提升,达到业界领先的分钟级 5000+ 函数实例弹性,业务端到端时延从分钟缩短到秒,加速近20倍,资源利用率提高了50%,这与元戎提供的以下两个“黑科技”密不可分。
首先,元戎创新提出了基于进程级快照的函数极速冷启动技术,支持对用户空间指定的进程进行“冻结”(即停止进程,并将该进程运行的所有上下文持久化为快照文件),并在必要时对其进行“解冻”(即通过保存的快照文件来正确恢复进程运行的上下文)。当用户请求触发函数启动时,直接基于函数快照恢复,跳过框架启动、业务初始化等耗时较长的阶段,进一步结合内置数据系统实现快照缓存加速,显著提升应用冷启动性能90%+。
“元戎函数极速冷启动”原理图示
其次,元戎构建了分级调度架构,以应对生产系统中传统中心化调度架构的性能瓶颈,支持大规模函数实例的并行调度,并有效利用数据局部性,确保高可扩展性,更好地支撑千万级车辆接入的波峰波谷场景。
“元戎大规模分级调度”原理图示
车联网平台自商用上线以来,已经历春节等节假日的考验,峰值每天十几亿次函数调用无错误。该Serverless方案现已作为华为云标准车联网解决方案进行推广,帮助更多车企构建高可用、低成本的车联网平台。
- 案例2:华为MetaERP全面Serverless化架构升级
MetaERP是服务于华为公司生产制造、供应、采购、财务业务的SaaS系统,整个系统构成非常复杂,涉及微服务、函数、大数据等多种应用形态。当前架构面临研发成本高、资源成本高等一系列挑战。为了解决这些问题,MetaERP正在进行全面Serverless化架构升级,旨在打造业界首个Serverless ERP系统,实现研发和资源成本的双重下降。
1)资产核算业务
资产核算业务(MFA) 支持企业资产从获取到处置的全生命周期管理和交易核算,在资产使用寿命内,按照会计准则和税法要求,系统地计提资产折旧费用。该业务的资源池独立,作业时间集中,具有典型的波峰波谷特征。然而,Java微服务的启动时延超过1分钟,弹性响应慢,业务峰值处理性能不足,日常波谷时仍需要保持最低配置在线,平均资源利用率不到2%,导致资源成本高。
MFA业务基于元戎进行Serverless化改造,元戎提供Spring框架兼容能力,支持通过修改少量配置即可实现存量业务Serverless化。进一步,元戎通过函数极速冷启动技术,将业务冷启动时间缩短到5秒,弹性性能提升20倍。结合自动水平和垂直弹性能力,在无请求时支持业务实例缩容至0,月均资源消耗降低70%。
2)销售订单业务
当前,MetaERP依托平台基础功能(通用逻辑)来支撑上层大量的租户定制业务(扩展逻辑)。以销售订单业务为例,平台通用逻辑动态加载租户扩展逻辑,虽然实现了灵活定制,但两者耦合运行,无法保证安全隔离。
元戎支持租户扩展逻辑以Serverless函数方式发布、运行,通过函数物理实例隔离的方式减少风险,保障通用层的稳定。然而,优秀的技术方案往往也难以一步到位,虽然实现了多租户之间的安全隔离,但也引入了两大挑战。
首先,分离后的通用逻辑和租户扩展逻辑通过RPC通信,相比原先本地调用,耗时必然增加,且通信次数越多,耗时会越大。元戎提供亚毫秒函数互调能力,通过简化通信链路、亲和性调度、协议优化等关键技术,支撑通用逻辑和租户扩展之间高性能直连互通,实现端到端调用时延1ms。
“元戎函数互调”原理图示
其次,不同的业务逻辑之间访问同一份数据时的事务一致性问题。元戎提供Service Bridge代理后端服务访问,利用路由计算,将同一事务的请求汇聚到同一个Bridge函数实例上,将原来分离的事务逻辑重新聚合成本地事务,解决分布式事务一致性问题。
“用户函数通过元戎Service Bridge访问后端服务”原理图示
- 四、总结与展望
近年来,华为云持续构筑全域Serverless云服务,推出了一系列竞争力领先的Serverless产品,包括函数工作流FunctionGraph、Serverless容器引擎CCE Autopilot、Serverless应用托管CAE、云数据仓库DWS、事件网格EventGrid等,高效支撑Serverless全面商业化。
“华为云全域Serverless化”愿景图示
面向生成式AI浪潮,元戎通用Serverless将持续聚焦技术创新,突破大模型推理服务实例快速弹性、分布式KV Cache池化管理、多模型混部高效协同调度、超大规模分布式训练高可用性等关键技术,构筑大模型推理和训练的高性能、低成本、高可用性关键竞争力。通过这些创新,元戎将助力华为云打造极低成本、极致性能和极优体验的Serverless AI解决方案,实现全域Serverless化的竞争力领先,帮助千行万业的百万开发者缩短交付周期,提升上云效率,抢占市场先机。