这是一本不太新的新书。 国内还没有中文版,据说是腾讯的大佬在翻译中了。 之前翻过一遍,上周末重读了一边。
O’Reilly 连接: https://learning.oreilly.com/library/view/cloud-finops/9781492054610/
对该书内容进行了简单的整理,并结合了一些周边资料。 该书理念介绍居多,也有一些方法论。
FinOps 概念
FinOps 为云的可变支出模型带来了财务责任,连接 IT、财务、业务人员的纽带。 FinOps 是一种文化实践,它的近亲是云成本优化。
Real time reporting + just-in-time processes + teams working together = FinOps
FinOps 的核心原则:
- 团队之间需要相互合作,财务 & 技术。
- 由云的业务价值做决策的依据,将云视为创新的驱动力。
- 让每个人都可以使用“云”,并且量化相应的成本。
- 及时生成 FinOps 报告,包括资源利用率、实时费用监控 & 预测等。
- 一个集中的团队推动 FinOps,减少重复工作,集中处理费率和折扣。
- 充分利用云的可变成本模型,支持即时预测、规划、购买容量,对云使用/优化进行持续的调整。
FinOps 能帮我们解决什么问题:
- 在不需要资源时,不为资源容量付费,节省开支。
- 减少分配给服务的资源规模,降低成本。
- 量化计费模型,更便于理解。
- 由工程师团队完成自主化采购,而不在需要专门的云资源采购团队。
单位经济学
引入一个概念,单位经济学。
单位经济学是一种用于分析公司与其基本单位相关的成本收入比的方法,因此有这个术语。 基于每单位分析,单位经济学显示了企业的盈利能力或将在多长时间内实现盈利。 单位经济模型预设了两种计算收入和成本的方法,具体取决于公司如何定义其单位。 偏向于 SaaS 场景。
单位定义为“已售出一件商品”
如果一个单位被定义为“一个已售出的项目”,公司可以使用边际贡献来确定其收入/成本平衡。
它被计算为每件商品的价格与每次销售的可变成本之间的差额:
单位定义为“一个客户”
对于将单位定义为“一个客户”的公司,单位经济通常由两个指标的比率决定: 客户生命周期价值(CLV)和客户获取成本(CAC)。
客户生命周期价值(CLV)是企业在客户停止从公司购买产品之前从客户那里获得的金额。 将购买的平均价值乘以客户一年购买的次数,以及客户关系的平均年限:
客户获取成本 (CAC)是企业为吸引客户而分配的金额,这包括总的销售和营销成本。 将总销售和营销成本除以赢得的新客户数量:
CAC 投资回报周期: 该方法专注于从每个客户那里开始赚钱需要多少个月。 这更适合流失率较高且需要时间来调整产品以满足市场需求的初创公司
云资源账单中比较有用的数据字段:
- 资源使用时间段
- 适用于账单的费率和费用
- 被收费的资源标识
- 资源的使用量
- 标记有助于成本分配的信息/元数据
Spend = Usage × Rate
影响账单的两个杠杆:
- 减少使用的资源
- 为使用的资源支付更少的费用
减少使用的资源,通过终止闲置资源、调整超大资源的大小、减少在非高峰时间运行的资源数量或在晚上和周末完全关闭资源来做到这一点。
为使用的资源支付更少的费用,利用预留实例、抢占式实例、折扣、阶梯计费策略等手段来实现。
FinOps 生命周期
通知阶段
向团队展示他们的支出和原因,让每个人可以看到他们的行为对账单的影响。
- 为每个业务和资源打标签,并识别未标记的业务和资源
- 将支出数据映射到业务,做相应的打分
- 定义预算、分析趋势、预测
成本分配的关键:
- 资源级标签,工程师/云平台提供商直接应用到云资源
- 帐户/项目/订阅,供应商提供并在账单中显示
- 账单后数据结构
优化
让团队能够识别和衡量效率优化。
- 检测异常消费
- 将资源的财务支出,作为 OKR 之一
- 识别未充分利用的服务
- 调整资源大小依赖于缩放、预定操作
- 使用预留实例或承诺使用折扣
运营
定义并执行 IT、财务、业务目标打通的自动化流程。
- 推动团队间合作
- 持续的提供支出数据
- 调整实例和服务的大小,并自动化
- 建立合理的清理策略
指标驱动的成本优化:
- 自动测量
- 目标明确,并可实现
- 数据驱动
TBM 分类
为报告成本和相关业务指标提供了标准化的层次结构。
分类的四个层:成本池、IT 塔、应用程序和服务以及业务单元或功能。
“消费恐慌”的临界点
当支出超过一个无形的门槛并且执行团队开始真正关心它的那一刻。
Spot
适合的场景:
- 批处理作业
- 容器和微服务
- 高性能计算(HPC)
- CI/CD操作
工具
- Crane,腾讯开源的工具集,https://github.com/gocrane/crane
- Kubecost,https://github.com/kubecost
- Apptio Cloudability,商业化软件,https://www.apptio.com/products/cloudability/
- CAST AI,商业化软件,看起来像是主打 Spot 的样子
重新思考 FinOps
- 用 FinOps 想要达到什么结果?
- FinOps 报告的核心什么?整体的成本?应用的成本?产品的成本?业务线的成本?
- 大部分支出来自什么服务?
- 哪些成本中心正在推动成本上升或下降?
- 将费用摊到细粒度资源后,面对业务资源/费用使用的增长/减少、突增/突降是否合理?
- 哪些服务可以真正使用竞价实例?
- 哪些服务可以关闭、退费?
- 如何让团队更好的感知到费用发生了变化,并理解费用为什么发生了变化。
- 如何更细粒度的量化资源的费用?
- FinOps 对公有云有什么帮助?对云厂商,而不是对用户。