资源成本降低80%!Serverless云函数的弹性架构实践
服务上云已经是当下助力企业降本增效的主流方案,开发者不需要自建IT机房、购买服务器、存储设备和其他各种网络设备,只需评估自身业务所需的TPS值、数据存储量、网络带宽等,再根据这些需求,向云服务厂商购买对应算力和容量的云主机等资源。
日常中,很多业务存在波峰波谷的特性,如电商的活动促销、通勤出行的早晚高峰、 游戏 的晚高峰等,这些场景下业务请求量会急剧上升,为了确保该情况下业务不受损,服务所使用的云端资源就需要针对峰值进行配置。而业务峰值有可能只持续几分钟或者集中于个别时间段,这就使得峰值回落后会出现大量资源闲置的情况。
承载搜索能力的产品,亦存在上述的问题。
传统云服务架构,资源闲置率高
某搜索服务支持应用及应用内容的搜索,可通过多个入口进行搜索查询,数据覆盖面广(诸如:应用信息、搜索词、论坛帖文、视频、歌曲等)。 其服务整个后台环境原先是基于云主机搭建, 日均请求量1亿+ ,运行过程中存在明显的波峰波谷 ,相对,其业务痛点亦不可避免。
痛点 1: 资源利用率低
以某天的函数请求量为例,服务的波峰数值约16w,波谷约为4w,访问量相差4倍。考虑到波峰的情况,其用于扩容的虚拟机资源需要匹配峰值并预先购买,待业务低谷时,已购的虚拟机资源就会大量闲置,利用率低。
痛点 2 :弹性伸缩能力构建成本高
业务自主构建弹性伸缩能力涉及到云资源层、业务服务和数据的伸缩,构建和运维的人力资源成本比较高。此外,伸缩响应速度相对较长,一般都为秒级,在业务峰值时可能会出现部分请求无法正常响应,导致服务限流,影响用户体验。
Serverless云函数,智能弹性伸缩
Serverless云函数是事件驱动的函数计算平台,可以根据函数的实际流量进行弹性伸缩。使用云函数,开发者无需对服务器资源进行管理 。该搜索服务所面临的痛点以及其波峰波谷的业务特性,与Serverless云函数的应用场景正好契合。由此,相关团队基于当前业务的传统架构,定制了迁移至Serverless架构的方案。
(图源华为开发者联盟)
此次改造,技术团队从适配云函数框架、流水线改造、功能和性能测试的验收,至后续灰度放量上线,在短短1个月内全部实现。而且,业务迁移至Serverless架构后, 凭借资源池化、代码缓存等技术,降低了函数启动时延,实现秒级扩缩容 。
随着业务请求量的逐步上升,函数自动扩容,业务流量下降之后,函数自动缩容。如下图所示,很明显,函数Pod伸缩曲线和业务请求曲线一致。
(示例:函数请求量趋势图,图源华为开发者联盟)
(示例:改造后函数Pod数量趋势图,图源华为开发者联盟)
改造实践,资源成本降低 80%
该搜索服务原先采用增强型C3云服务器,根据业务流量,其一年总耗费约70万元。
迁移前,基于业务日常的请求量,借助资源拟合曲线和拟合方程,团队测算出能节约超过40%的成本。那在改造完成后, 无需关心使用的主机类型,业务直接部署在函数容器内 ,依托弹性伸缩的架构,资源成本究竟降低多少?
根据云函数的定价和计费规则,业务 使用成本主要为函数调用次数和函数资源使用量 。按照其日请求量1亿+计算,其1年的函数调用次数以及资源使用量的费用约13万元。
(数据来源:华为开发者联盟)
和采用云主机的方式相比,费用从近 70 万元下降至 13 万元,资源成本降低 80% 以上 。 (具体改造时间结合业务场景和使用案例预估)
实例验证,作为新一代的云服务形态,HUAWEI AppGallery Connect的 Serverless 云函数服务,应用于传统服务云化改造,或新服务直接上云,降本效果显著。
极速弹性,支持高并发度和吞吐量,云函数的应用场景丰富,更多内容,可至 HUAWEI AppGallery Connect>我的项目>构建>云函数 进一步了解。