多云资产成本度量平台

导读

本文主要介绍CH的云资产成本度量系统,要点包括:系统技术框架、成本分摊模型、认知总结等。

预设

  • 资产全部来自公有云、无自建,下文简称云资产
  • 云资产的产品,简称云产品,如:裸金属物理机、对象存储、CDN、负载均衡、跨云专线等
  • 采用了多云架构,如,公司同时使用了AWS、阿里、腾讯、金山等多家云
  • 云厂商按自然月结算费用
  • 成本中心和分摊中心,在本文统一称为预算单元

技术框架

page.png

计费

计费模块是一个后端模块,实现我方自主计费。具体的,

  • 输入: 云产品的单价,云产品的用量
    • 单价,来自云厂商和我方的合同。如CPU单价为 80元/(核*月)
    • 用量,主要来自我方CMDB,如机器用量;少部分来自云厂商,如带宽峰值、CDN流量。用量明细的主键通常为 {资产实例ID,时段},附带云厂商、产品类型等信息
  • 输出: 云产品的用量,云产品的费用
    • 费用,由用量乘单价得到,对外提供实例级明细、通用聚合维度

对于技术用户,云产品用量是一个比费用更容易理解的角度;对于财务用户,云产品费用更为直接。因此,在生产实践中,计费模块对外同时输出用量、费用两个数据。

对账

对账模块,主要产出 “云厂商当月账单是否准确” 的判断(云厂商通常按自然月结算),目标用户是财务。

为了使这一判断足够准确,通常需要在费用、单价、用量、增量分析等多个维度上做对比,对比的双方是 “云厂商账单” 和 “我方计费”。具体的,

  • 输入: 云厂商月度账单,需要精细到 {资产实例ID,时段} 的粒度,包含单价、用量等计费信息
  • 输出: 多维对账报表

成本度量

成本度量模块,主要功能是成本量化分析,目标用户是技术主管。该模块主要由预算管理、成本分摊、成本预算对比等功能组成。具体的,

  • 预算管理: 财务建立完整的预算管理流程,技术建立可理解的预算预估模型,详情参见<预算管理>一节
  • 成本分摊: 将云资产费用,合理的分摊到各个预算单元,并支持二次分摊。详情参见<成本分摊>一节
  • 成本预算对比: 针对各预算单元,在用量、费用两个维度,对比预算和成本(实际分摊的元资产费用),产出报表

成本分摊、预算管理涉及业务较复杂,下面分两个小节介绍。

成本分摊

成本分摊,目的是精确计算各预算单元消耗的云资产,关键点是云资产实例关联到正确的预算单元。云资产实例关联预算单元,难点在于维护工作量巨大(和实例个数成正比)。

在成本度量系统建设之前,我司已经建成了 主要云资产和服务树的关联、且精细维护(至少目标是精心维护)。成本分摊复用了这部分元数据,并通过建立服务树和预算单元的对应关系,打通了云资产实例到预算单元的关联。具体形式如下:

page.png

在分摊计费方面,成本分摊、资产对账使用不同的单价体系。资产对账使用真实的财务单价,和云服务提供商保持一致,方便对账;成本分摊使用作业帮内部约定的预算单价,和预算保持一致。从这个角度讲,我们对内提供了一套完整的作业帮云服务,完成了对云服务提供商的二次封装。另外,站在RD的视角,成本分摊的单位是用量、而不是费用;用量更加物化、适合RD视角,费用归一化到钱、适合财务视角。

借助成本分摊,顺便建立起了完善的元数据运营体系。通过复用已有元数据、聚向建设可复用的元数据,来降低元数据的整体维护成本。

预算管理

预算管理,主要有预算更新流程、预算预估模型等方面做介绍。

预算更新流程

预算更新流程的关键步骤、参考排期,如下:

  • 03.04 财务发预算更新的全员通知
  • 03.04 运维发预算更新通知(邮件、钉钉)
  • 03.05~03.10 业务做预算
  • 03.09~03.10 业务将预算录入到预算平台
  • 03.11~03.16 运维找业务核对预算(高耗时)
  • 03.17 财务和运维核对预算
  • 03.18 运维和产研中心核对预算(CTO核对预算增加原因)
  • 03.23 财务和产研中心核对预算(CTO确认预算)
  • 03.31 产研中心发起新预算审批
  • 04.xx CEO审批新预算
  • 04.xx+1 运维设置新预算在预案平台生效

预算预估模型

为了简化云资产的预算预估,做了如下工作:

  • 选择技术视角:技术人员只提报产品用量,OP结合单价、得出费用角度的预算
    • 依赖: 资产预算通常由技术人员提报
  • 简化产品模型:每种云产品尽量抽象为一个计费点,方便用户提报用量;通过合理调整单价,弥补整体误差。如,
    • CPU机器 抽象为CPU核数,屏蔽机型差异;单价选取一个Q的全局均值
    • 对象存储 抽象为标准存储空间,屏蔽掉请求次数、出网流量等小计费点
  • 固化预估公式:用量,通常可以做到 和业务指标线性相关,如
    • 预估用量 = 固定用量 + 业务指标 * “业务-资产”相关系数 * 优化系数,优化系数通常体现了性能优化、架构优化等技术侧主动降成本的效果预期
    • 业务-资产相关系数,举例:1K的拍搜峰值需要1个CPU,1K个学生需要1TB的存储空间

预算管理约束

预算管理的工作,无法做到完全自动化,受制于公司战略下的组织结构、业务结构、收支目标等非技术因素。如下图,在CH公司,运维在预算准备阶段至少需要做到权限管理、预算基线准备、预算科目维护,这三个事项无法自动化、甚至无法平台化。

page.png

更进一步分析,运营工作短期内只能被平台部分的自动化、无法完全消除。这受限于物理学之「熵增定律」: 系统的规则运转需要持续输入负熵;而计算机系统(电能)达成全自动化,依赖场景固化,且建设过程非常缓慢。

认知总结

在工具建设、成本管控的过程中,对成本度量平台有如下几个关键认知,

  • 价值定位:老板系统、辅助决策,要求数据准确全面、报表灵活多样
    • 数据是关键,数据不准则平台无价值、数据少则平台价值指数递减;报表是价值输出,匹配老板视角
  • 数据模型:数据支持多版本,做到元数据可修改、结果数据可重算(支持指定范围),接近数仓
  • 分摊模型:成本分摊的本质是「云服务转卖」,业务只需要知道「CH公有云」,而不需知道背后的云服务提供商,如AWS、阿里、腾讯
  • 数据校准:数据校准有两个途径,即两个独立计算的系统做数据对比(路径维度)、同一系统做两个周期的增量分析(时间维度)
  • 功能时效性:报表的时效性,取决于数据、而不取决于代码逻辑,同数仓


Prev     Next