阿里 Serverless 架构落地实践:人力节省 50%,研发效能提升 40%
ccwgpt 2024-10-12 02:45 35 浏览 0 评论
作为一名阿里老兵,杨皓然早在 2010 年即加入阿里云,曾深度参与阿里云飞天分布式系统研发和产品迭代的全过程。如今,他是阿里云 Serverless 负责人。Serverless 有哪些典型的应用场景?Serverless 在研发效能上可以发挥怎样的作用?Serverless 在阿里内部有哪些实践?它的发展趋势是什么?带着这些问题,InfoQ 记者近日采访了阿里云 Serverless 负责人杨皓然。
Serverless 走向繁荣
Serverless 首次出现于 2012 年,中文即“无服务器架构”。它的出现将主机管理、操作系统管理、资源分配、扩容,甚至应用逻辑的全部组件都集成为服务,开发者可以更直接地将大部分后台能力作为一个能力接口来使用。将开发过程中的能力使用改为服务使用,通过构建或使用一个微服务或微功能来响应事件。
从理念空谈到实践落地,Serverless 开始走向繁荣。
根据 O’Reilly 2019 年 12 月发布的 Serverless 使用调研报告显示,已有 40% 的受访者所在的组织采用了 Serverless,并且使用 Serverless 技术的行业也十分广泛。尤其值得关注的是,有超过 50% 的受访者在一至三年内采用 Serverless,而 15% 的受访者在三年前就已经开始使用 Serverless。
在杨皓然看来,“Serverless 的繁荣”是必然的:
- 首先,从用户需求角度看,在数字化转型时代,企业面临巨大的竞争压力和不确定性,“产品 time-to-market 的能力比任何时候都重要”。
- 其次,从技术发展的趋势看,云的产品体系及其生态正在迅速 Serverles 化。云服务商在存储、数据库、中间件、大数据、AI 等领域提供了大量全托管、Serverless 形态的云服务。同时,API 经济也驱使开发者提供了大量 Serverless 形态的 API 后端服务。
杨皓然说,“在这样的背景下,Serverless 计算应运而生,借助云的 Serverless 产品体系的能力,屏蔽基础设施的复杂度,帮助用户以搭积木的方式构建弹性、可靠、低成本的系统或应用。”
Serverless 的优势在于,它将同质化的、负担繁重的基于服务器等基础设施的开发和运维等工作从应用开发中移除,让用户聚焦于业务创新。相比传统的开发模式,Serverless 模式基于大量成熟的云服务能力构建应用,客户的决策点更少,实施复杂度更低。
因此,对企业而言,Serverless 架构有着巨大的应用潜力。杨皓然称,“随着云产品的完善,产品的集成和被集成能力的加强,软件交付流程自动化能力的提高,我们相信在 Serverless 架构下,企业的敏捷性有 10 倍提升的潜力。”
此外,Serverless 还能帮助用户大幅度提升资源利用率,降低成本,并实现更好的可靠性。
不过,他也坦然指出:
Serverless 最大的挑战在于工具链不够成熟,产品限制较多和适用场景不够广泛。但是,这些问题会随着产品能力的提升而不断改善。在垂直领域,比如前端全栈场景,已经出现针对 Serverless 架构优化的应用框架,进一步降低用户的使用门槛,提高研发效率。
Serverless 的典型应用场景
1. 小程序 /Web/Mobile/API 后端服务
在小程序 /Web/Mobile/API 场景中,业务逻辑复杂多变,迭代上线速度要求高,并且这类在线应用资源利用率通常小于 30%,尤其是小程序等长尾应用,资源利用率更是低于 10%。Serverless 计算的免运维、按需付费的特点非常适合构建小程序 /Web/Mobile/API 后端系统,通过预留计算资源 + 实时自动伸缩,开发者能够快速构建延时稳定、能承载高频访问的在线应用。
据杨皓然介绍,在阿里内部,使用 Serverless 构建后端服务是落地最多的场景,包括前端全栈领域的 Serverless For Frontends、机器学习算法服务、小程序平台实现等等。
2. 执行大规模批处理任务
典型的离线任务批处理任务系统,例如大规模音视频文件转码服务,包含计算资源管理、任务优先级调度、任务编排、任务可靠执行、任务数据可视化等一系列功能。如果从机器或容器层次开始构建,用户通常使用消息队列进行任务信息的持久化和计算资源的分配,使用 K8s 等容器编排系统实现资源的伸缩和容错,自动搭建或集成监控报警系统。
如果任务涉及多个步骤,还需要整合工作流服务实现可靠步骤执行,而通过 Serverless 计算平台,用户只需要专注于实现任务处理逻辑。同时,Serverless 计算的极致弹性能很好地满足突发任务对算力的需求。
3. 基于事件驱动架构的在线应用和离线数据处理
Serverless 计算服务通过事件驱动方式广泛的与云端各种类型服务集成,用户无需管理服务器等基础设施和编写集成多个服务的“胶水代码”,轻松构建松耦合、分布式的事件驱动架构的应用。
以阿里云函数计算为例,通过 API 网关和函数计算的集成,用户可以快速实现 API 后端服务。通过对象存储和函数计算的事件集成,函数能实时响应对象创建、删除等事件,实现以对象存储为中心的大规模数据处理。通过消息中间件和函数计算的事件集成,用户能快速实现海量消息的处理。通过和阿里云 EventBridge 的集成,无论是一方云服务,还是三方的 SaaS 服务,或者是用户自建的系统,所有的事件都可以快速便捷的被函数计算处理。
4. 运维自动化
通过定时触发器,用户能够用函数快速实现定时任务,而无需管理执行任务的底层服务器。通过云监控触发器,用户可以接收 ECS 重启 / 宕机、OSS 对象存储流控等 IaaS 层服务的运维事件,并自动触发函数处理。
Serverless 对研发效能的变革和创新
Serverless 为用户提供了一种新的应用构建方式。基于大量成熟云服务,用户可以像搭积木一样构建弹性高可用的应用。比如,借助对象存储和函数计算的集成,用户能快速实现大规模数据的并行处理,而无需从头构建和运维底层计算和存储平台,从而大大减少了研发人员的心智负担,提高效率。
此外, Serverless 计算很好地支撑了“基础设施即代码”的模式,提供了大量配套工具,让软件交付流水线的每个环节都高度自动化,帮助开发人员能够聚焦更具创新性的工作,提高研发效能。
Serverless 在阿里内部的实践
据杨皓然介绍,阿里目前已经在前端全栈、大规模批处理任务执行、机器学习算法服务、运维自动化等领域广泛采用 Serverless 架构,成本和研发效能收益明显。
前端全栈领域
阿里提出 SFF(Serverless For Frontends)架构。SFF 可以利用 Serverless 的弹性扩缩容能力,减少研发对基础设施和运维的关注。对前端开发者而言,他们只需写几个函数即可实现后端业务逻辑,推动业务快速上线。
以淘宝为例,淘宝的内容导购频道使用 SFF 架构平稳支撑双十一大促。此前,导购业务面临的问题有两个:
一是导购业务更新迭代频繁,每次更新后都需要前后端同学的共同配合,这就带来很大的沟通成本;二是导购频道承载淘宝业务核心链路流量,每次大促前都要提前预留大量计算资源,带来很大的运维代价。
淘宝使用 SFF 架构后,频道的业务逻辑由函数承接,每个业务对应独立的入口函数,函数调用下层中间件获取数据,通过数据组装与裁剪计算业务数据,并返回给前端。Serverless 弹性免运维的特性让前端工程师有能力独立负责整条业务链路,全程不需要后端工程师参与,降低了前后端的联调成本,消除了运维代价。
据悉,淘宝在使用 SFF 架构后,项目人力节省 50%,研发效能提升 40%。
杨皓然称,“阿里巴巴经济体前端委员会也在积极探索针对 Serverless 优化的新框架、新工具,增强的 Nodejs 运行时等,推动更多业务场景落地。今年,Serverless 无疑将成为前端全栈领域的热点。”
除了前端全栈领域,阿里内部还大量使用 Serverless 架构实现负载有明显波峰波谷的计算密集型应用,包括音视频处理、基于 headless chrome 的前端自动化测试等,“每天的资源用量达到数万核小时规模”。
此外,阿里云数据库自治服务(DAS)要完成几十万数据库实例的指标分析和预测,对资源的弹性和可靠性有极高的要求。它使用函数计算运行在线和离线的机器学习算法应用,能够轻松应对流量洪峰。而开发人员专注于算法的设计、实现和调优,大幅提高产品的迭代速度。
针对 Serverless 的发展,杨皓然认为:Serverless 近年来一直在高速发展,呈现出越来越大的影响力。同时,主流的云服务商也在不断丰富云产品体系,提高更好的开发工具、更高效的应用交付流水线、更好的可观测性和更细腻的产品间集成。
Serverless 的未来发展
在谈到 Serverless 的发展趋势,杨皓然提到了四个方面:
1.Serverless 将无处不在
任何足够复杂的技术方案都将被实现为全托管、Serverless 化的后端服务。对于任何以 API 作为功能透出方式的平台型产品或组织,例如钉钉、微信、滴滴等,Serverless 都将是其平台战略中最重要的部分。
2.Serverless 将和容器生态有更加紧密的融合
容器在应用的可移植性和交付流程敏捷性上实现了颠覆式创新,它是现代应用构建和交付的一次重要变革。当今,全世界的开发人员都习惯将容器作为应用交付和分发的方式。围绕容器,已经有了完整的应用交付工具链。未来,容器镜像也将成为函数计算等更多 Serverless 应用的分发方式,容器庞大的工具生态和 Serverless 免运维、极致弹性结合在一起,为用户带来全新的体验。
3.Serverless 将通过事件驱动的方式连接云及其生态中的一切
无论是用户自己的应用,还是合作伙伴的服务;无论是 on-premise 环境,还是公有云,所有的事件都能以 Serverless 的方式处理。云服务及其生态将更紧密的连接在一起,成为用户构建弹性高可用应用的基石。
4.Serverless 计算将持续提高计算密度,实现最佳的性能功耗比和性能价格比
Serverless 计算平台一方面要求最高的安全性和最小的资源开销,鱼与熊掌必须兼得;另一方面要保持对原有程序执行方式的兼容,比如支持任意二进制文件,这使得适用于特定语言 VM 的方案不可行。因此 AWS Firecracker,Google gVisor 这样新的轻量虚拟化技术应运而生。以 AWS Firecracker 为例,通过对设备模型的裁剪和 kernel 加载流程的优化,实现了百毫秒的启动速度和极小的内存开销。
实现最佳性能功耗比和性能价格比的另一个重要方向是支持异构硬件。长期以来,X86 处理器的性能越来越难以提升。而在 AI 等对算力要求极高的场景,GPU、FPGA、TPU(Tensor Processing Units) 等架构的处理器的计算效率更具优势。随着异构硬件虚拟化、资源池化、异构资源调度、应用框架支持的成熟,异构硬件的算力也能通过 Serverless 的方式释放,大幅降低用户使用门槛。
关注我并转发此篇文章,私信我“领取资料”,即可免费获得InfoQ价值4999元迷你书!
相关推荐
- 用Steam启动Epic游戏会更快吗?(epic怎么用steam启动)
-
Epic商店很香,但也有不少抱怨,其中一条是启动游戏太慢。那么,如果让Steam启动Epic游戏,会不会速度更快?众所周知,Steam可以启动非Steam游戏,方法是在客户端左下方点击“添加游戏”,然...
- Docker看这一篇入门就够了(dockerl)
-
安装DockerLinux:$curl-fsSLhttps://get.docker.com-oget-docker.sh$sudoshget-docker.sh注意:如果安装了旧版...
- AYUI 炫丽PC开发UI框架2016年6月15日对外免费开发使用 [1]
-
2016年6月15日,我AY对外发布AYUI(WPF4.0开发)的UI框架,开发时候,你可以无任何影响的去开发PC电脑上的软件exe程序。AYUI兼容XP操作系统,在Win7/8/8.1/10上都顺利...
- 别再说C#/C++套壳方案多了!Tauri这“借壳生蛋”你可能没看懂!
-
浏览器套壳方案,C#和C++有更多,你说的没错,从数量和历史积淀来看,C#和C++确实有不少方式来套壳浏览器,让Web内容在桌面应用里跑起来。但咱们得把这套壳二字掰扯清楚,因为这里面学问可大了!不同的...
- OneCode 核心概念解析——Page(页面)
-
在接触到OneCode最先接触到的就是,Page页面,在低代码引擎中,页面(Page)设计的灵活性是平衡“快速开发”与“复杂需求适配”的关键。以下从架构设计、组件系统、配置能力等维度,解析确...
- React是最后的前端框架吗,为什么这么说的?
-
油管上有一位叫Theo的博主说,React是终极前端框架,为什么这么说呢?让我们来看看其逻辑:这个标题看起来像假的,对吧?React之后明明有无数新框架诞生,凭什么说它是最后一个?我说的“最后一个”不...
- 面试辅导(二):2025前端面试密码:用3个底层逻辑征服技术官
-
面试官放下简历,手指在桌上敲了三下:"你上次解决的技术难题,现在回头看有什么不足?"眼前的候选人瞬间僵住——这是上周真实发生在蚂蚁金服终面的场景。2025年的前端战场早已不是框架熟练...
- 前端新星崛起!Astro框架能否终结React的霸主地位?
-
引言:当"背着背包的全能选手"遇上"轻装上阵的短跑冠军"如果你是一名前端开发者,2024年的框架之争绝对让你眼花缭乱——一边是React这位"背着全家桶的全能选...
- 基于函数计算的 BFF 架构(基于函数计算的 bff 架构是什么)
-
什么是BFFBFF全称是BackendsForFrontends(服务于前端的后端),起源于2015年SamNewman一篇博客文章《Pattern:BackendsFor...
- 谷歌 Prompt Engineering 白皮书:2025年 AI 提示词工程的 10 个技巧
-
在AI技术飞速发展的当下,如何更高效地与大语言模型(LLM)沟通,以获取更准确、更有价值的输出,成为了一个备受关注的问题。谷歌最新发布的《PromptEngineering》白皮书,为这一问题提供了...
- 光的艺术:灯具创意设计(灯光艺术作品展示)
-
本文转自|艺术与设计微信号|artdesign_org_cn“光”是文明的起源,是思维的开端,同样也是人类睁眼的开始。每个人在出生一刻,便接受了光的照耀和洗礼。远古时候,人们将光奉为神明,用火来...
- MoE模型已成新风口,AI基础设施竞速升级
-
机器之心报道编辑:Panda因为基准测试成绩与实际表现相差较大,近期开源的Llama4系列模型正陷入争议的漩涡之中,但有一点却毫无疑问:MoE(混合专家)定然是未来AI大模型的主流范式之一。...
- Meta Spatial SDK重大改进:重塑Horizon OS应用开发格局
-
由文心大模型生成的文章摘要Meta持续深耕SpatialSDK技术生态,提供开自去年9月正式推出以来,Meta持续深耕其SpatialSDK技术生态,通过一系列重大迭代与功能增强,不断革新H...
- "上云"到底是个啥?用"租房"给你讲明白IaaS/PaaS/SaaS的区别
-
半夜三点被机房报警电话惊醒,顶着黑眼圈排查服务器故障——这是十年前互联网公司运维的日常。而现在,程序员小王正敷着面膜刷剧,因为公司的系统全"搬"到了云上。"部署到云上"...
- php宝塔搭建部署thinkphp机械设备响应式企业网站php源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的机械设备响应式企业网站php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 用Steam启动Epic游戏会更快吗?(epic怎么用steam启动)
- Docker看这一篇入门就够了(dockerl)
- AYUI 炫丽PC开发UI框架2016年6月15日对外免费开发使用 [1]
- 别再说C#/C++套壳方案多了!Tauri这“借壳生蛋”你可能没看懂!
- OneCode 核心概念解析——Page(页面)
- React是最后的前端框架吗,为什么这么说的?
- 面试辅导(二):2025前端面试密码:用3个底层逻辑征服技术官
- 前端新星崛起!Astro框架能否终结React的霸主地位?
- 基于函数计算的 BFF 架构(基于函数计算的 bff 架构是什么)
- 谷歌 Prompt Engineering 白皮书:2025年 AI 提示词工程的 10 个技巧
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- mfc框架 (52)
- abb框架断路器 (48)
- ui自动化框架 (47)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)