华为云计算 云知识 FinOps新探索,华为云推出业界首个Serverless函数总成本估计模型
FinOps新探索,华为云推出业界首个Serverless函数总成本估计模型

Key Takeaways:

1. 尽管 Serverless 的迅猛发展吸引了广泛深入的关注,Serverless 函数总成本的事先估计仍缺乏有效的理论指导。本文基于 FunctionGraph 在 Serverless 领域的 FinOps 探索和实践,提出业界首个 Serverless 函数总成本估计模型;

2. 根据对成本模型的关键因素分析,提出五大类函数运行成本的优化方法;同时,为更好地帮助用户实现降本增效,华为云首次提出透明、高效、一键式的 “用户函数成本研究中心”。  

Serverless 精确到毫秒级的按用付费模式使得用户不再需要为资源的空闲时间付费。然而,对于给定的某个应用函数,由于影响其计费成本的因素并不唯一,使得用户对函数运行期间的总计费进行精确的事先估计变成了一项困难的工作。

以传统云资源的周期性租赁模式为例,通过周期数乘以周期单价,用户可以很容易地估计出租赁期间的总费用,形成清晰的心理账户预期,即使在云平台采用阶梯 定价 或价格歧视策略的情形下,计算租赁总成本也不是一件难事。

但在 Serverless 场景中,事先估计函数总成本仍缺乏有效的理论指导。一方面,影响函数计费的关键因素不唯一,如包括函数内存规格、单实例并发度、函数执行时长等;另一方面,函数调用流量的波动通常具有随机性和非平稳性,使得基于流量的“按用计费”具有较大的不确定性。

当然,寻找函数计费的理论指导主要是为用户评估函数总成本提供一种有效依据,但更加重要地,如何进一步利用估计模型,帮助用户优化应用函数及其配置选择,进而显著降低用户函数总成本,是 Serverless 领域中,FinOps 亟待回答的问题。

FinOps 聚焦云上资源管理和成本优化,通过有机链接技术、业务、和财务专业人士,来优化用户、企业、组织的云资源成本,提高云上业务的投入 - 产出比[1]。本文结合华为云 FunctionGraph 在 Serverless 领域的 FinOps 探索和实践,剖析 Serverless 场景下的函数计费模式和关键影响因素,介绍一种对函数运行期间总计费进行事先估计的模型框架 ; 更重要地,该模型为帮助用户优化函数运行总成本、提升用户云上 Serverless 资源管理效能,实现经济型 (Economical) Serverless 提供有效依据。

 

首先对表 1 所列的几个概念做简要说明。

表 1:Serverless 函数常见名词

内存规格 (Memory):内存规格也即函数规格、函数实例规格,表示 Serverless 平台为函数的单个实例所分配的资源大小,一般表示为函数可使用的内存大小,由用户指定;实例可使用的 CPU 份额与内存大小成正比。Serverless 云平台通常提供多种规格供用户选择,以 FunctionGraph 为例,用户可选 15 种函数规格,如图 1 所示。

图 1:FunctionGraph 提供多种函数内存规格

函数执行时延 (Function Execution Time): 这里指完成一次调用请求响应的过程中,函数本身执行所消耗的时间,主要由函数代码逻辑决定。一般地,对于 CPU 密集型的函数,增大函数资源规格(内存 -CPU Share),可以显著降低函数执行时延。但对于消耗大部分时间在网络 IO 等操作上的函数,增大资源规格对执行时延的改善则非常有限。

单实例最大并发度 (Maximum Requests per Instance):函数的单个实例可以同时处理的最大请求数,主要适用于函数执行过程中有显著时间在等待下游服务返回的场景,如访问 数据库 操作或磁盘 IO 等。对于相同的流量负载,提高函数的单实例并发度可以降低按量实例个数,为用户节省计费,同时,也可以降低函数调用请求的冷启动比例。

单函数最大实例数 (Maximum Instances per Function):指同一函数同一时刻下同时运行的实例数上限。对用户来说,最大实例数可以防止异常流量洪峰下或函数发生故障时由于云平台的过度扩容而导致的费用失控;对云平台来说,最大实例数可以防止异常情况下平台资源被部分函数耗光,从而保障不同函数间的性能隔离。

单实例视角下的函数计费估计模型,可参考[2]。在真实生产环境中,除异步函数外,Serverless 云平台通常采用 FCFS(First Come First Serve)的方式响应调用请求,对于函数流量的潮汐波动,平台通过自动扩缩容实例进行自适应,系统中运行的并发实例数随时间的变化,可以由一个分段常线性函数完全刻画,如图 2 所示。

图 2:函数并发实例数随扩缩容过程的变化

尽管不同 Serverless 云厂商之间的计费方法存在差异,函数计费一般主要包括两部分:对函数所使用资源的计费以及对请求次数的计费,表示如下:

本文主要讨论了 Serverless 计算场景下的 FinOps 问题,给出了业界首个用户函数总成本估计模型,并根据该模型,为用户优化应用函数、提升 Serverless 资源管理效能、降低总成本提供理论参考和实践依据。

一项新兴技术领域的兴起,首先需要回答的问题是“Why & Value”,  FunctionGraph 作为华为元戎加持的下一代 Serverless 函数计算与编排服务,结合 FinOps 等技术理念,持续为用户提供经济型 Serverless 服务。后续我们将分享更多围绕通用全场景 Serverless 的前沿理论及其案例实践,回馈社区,包括 FunctionGraph 在微服务 Serverless 化上的实践经验等。

作者介绍:

历川:华为云 Serverless 研发专家

平山:华为云中间件 Serverless 负责人

冯嘉:华为云中间件首席专家

上一篇:如何使用华为云实时音视频服务 下一篇:华为云零代码平台AstroZero新手操作指南 | 3分钟体验创建培训报名表

华为云

面向未来的智能世界,数字化是企业发展的必由之路。数字化成功的关键是以云原生的思维践行云原生,全数字化、全云化、AI驱动,一切皆服务。

华为云将持续创新,携手客户、合作伙伴和开发者,致力于让云无处不在,让智能无所不及,共建智能世界云底座。