根据 2024年 FinOps 状况报告,降低云资源浪费和云成本管理成为科技公司今年最重要的考虑因素。
许多公司希望在 FinOps 规划上取得更多进展,然而,61.8% 的公司仍处于初级(爬行 Crawl)阶段(根据 FinOps 基金会对 FinOps 阶段的定义:爬行 Crawl、行走 Walk、奔跑 Run)。
在本文中,我们分享了 8个 FinOps 最佳实践,降低业务和财务之间沟通成本,从而更好地管理和优化云成本。
FinOps 是什么?
FinOps(由 Finance 和 DevOps 组合而成的术语)是一套云财务管理实践,允许团队协作管理云成本。工程、财务、产品和业务团队协作开展 FinOps 计划,以获得财务控制和可见性,优化云计算成本和资源投资回报率,并促进更快的产品交付。 根据 FinOps 基金会的说法,FinOps 的其他名称包括“云财务管理”、“云财务工程”、“云成本管理”、“云优化”和“云财务优化”(请注意,云财务运营现在通常不使用,因为它很容易与传统商业财务运营混淆)。
实现有效的 FinOps 最佳实践
1. 云成本可观测性
首先要解决可观测性这一关键问题。如果没有清晰的数据作为依据,很难做出优化决策(更不用说实现准确的成本预测了)。
关键挑战通常包括:
- 我的成本和使用数据怎么解读?我的产品/服务/应用程序实际花费了多少?
- 谁在推动云成本?如何计算共享成本?
- 我的云账单为何有异动,下个月会是多少?
- 是什么导致了成本异动?
FinOps 一项关键因素是清洗俩节您的云环境,以便全面地监控、分析、分摊云成本。此外,要做出准确的业务决策,您需要充分了解云产品使用情况。让我们深入讨论如何了解云资源使用情况。
监控粒度
按月我们很难看出用量和成本的趋势,分析异动的原因。按天、按小时的粒度,您可以查看使用模式和峰值。云成本可观测平台可以帮助您深入了解按服务、地狱、项目、资源等分类云支出。
实施标签策略
标签对于账单至关重要。如果没有标签,您在账单上只会看到服务、资源、项目或付费类型等费用。这些维度对公司可能有意义,也可能没有任何意义。通过使用标签,您可以更好地组织云成本,例如不同客户、不同云环境、不同项目、部门或团队。
监控告警
如果出现大幅度账单异动是一件非常糟糕的事情。如果您的数据传输成本突然飙升,并威胁到您月度预算,及时的告警是必不可少的。
2. 了解云服务定价策略
流行云厂商目前拥有 200 多种云服务,每月都会推出新产品。它的定价系统非常复杂,例如,仅 AWS EC2 就有超过 700 多种实例类型。掌握云产品相关的知识是非常必要的。让我们首先查看四种主要的定价类型。
按量计费
最灵活的计费模式,与其他计费模式相比费用也是最高的。您可以随时购买、退订云服务。除了特定的云服务(比如对象存储)、特殊场景(短期运行)之外,尽量降低按量计费的模式是明智的选择。同时,这也是为什么企业在年初都会进行预算评估的原因。
包年包月
国内云服务商最常见的计费方法。费用一般比按量计费的80%~90%左右。订阅时间越长,享受的折扣额度越高。目前,各大云厂商允许包年包月的服务可以随时退订,但是有退订次数限制。这也是国内用户最常购买的方式。
预留实例(RI)
预留实例提供大幅折扣(折扣高达 60%~80%),但灵活性最低。标准 RI 需要承诺特定类型的计算(实例系列、区域、操作系统等)。目前,仅对服务器、数据库等基础产品提供此类计费模式。
节省计划
提供大幅度折扣(折扣可高达 72%),但前提条件是在 1年或 3年内使用一定数量的资源。与 RI 相比,它们提供了额外的灵活性,并且云服务商会自动将折扣应用于云账单中。
Spot
以大幅度的折扣购买闲置资源。问题在于可能随时被收回,如果管理不当,可能会影响服务可用性。持续部署服务中的 Worker 是此类计费模式最常见的应用场景。
为什么会有这么多计费模式?
除了商业模式上的利益之外,很重要的一个原因是为了降低数据中心的闲置率。运行一个数据中心的开销是巨大的,如果资源一直闲置,意味着云服务商一直在亏钱。
计费模式的选择是关键
计费模式的选择是一个系统化工程。您的业务在不断发展,您的团队不断进行迭代,因此云成本一定会有波动。如果您购买的包年包月、预留实例过多,则每小时都要为未使用的资源付费。但是,如果购买的资源不够,则必须为额外资源支付按需费用。 最简单的方法是将稳定的业务使用量转移到更便宜的计费模式上。
3. 定期调整资源的大小
我们以最基本的服务器、数据库、网络为例。资源规模调整是一个持续的过程。即使您最初调整了资源大小,工作负载的性能和容量需求也会随着时间而变化。业务团队喜欢预留更多的缓冲空间,这样能保证服务的可用性,但是这样会牺牲云成本。最佳实践是通过架构、技术手段解决这个问题,比如,让资源进行动态扩缩容(Auto Scaling)、无服务函数(Serverless)、无状态服务(Stateless)等等。
如何确定大小?
我们以服务器为例,首先要使用资源监控工具查询服务器的利用率指标,比如,CPU、GPU、内存、带宽、磁盘容量、IOPS。大型互联网公司的常用做法是根据业务特性,确定一个最低阀值。比如,如果服务器在30天之内的最大利用率低于 40%,则可以考虑调整实例类型。 最常见的利用率范围通常在 60%~80% 之间,有些科技公司的利用率能在 92% 以上。
4. 为开发环境设定上班时间
除非您的团队需要 7*24 使用开发和测试环境,否则您可以通过定时开关来节省费用。如果在工作时间之外停止开发环境,您可以节省 60-66% 的云成本。
5. 删除未使用或未充分利用的资源
长时间使用云服务之后,您会有惊人的发现,竟然有这么多未使用的资源。
未使用的块存储(云硬盘)
块存储是云计算中的一种存储服务,可以添加到服务器实例。它们的作用与传统硬盘非常相似,提供持久的块级存储。
在频繁启动和终止服务器实例的环境中,块存储的寿命通常比其关联的服务器实例长,从而导致闲置的积累。
默认情况下,除非您在实例启动时选择“终止时删除”选项,否则终止服务器实例只会分离块存储,而不会将其删除。因此,数周或数月未使用的闲置的块存储会累积起来,从而增加不必要的成本。
未使用的服务器
随着时间的推移,通常会积累未使用的服务器实例。这些实例通常是因为迁移、自动扩容配置错误、开发测试或已停止项目的残留,会增加云成本。
停止闲置实例是最有效的成本优化策略之一。每花费 1元在一个实例上,就可以节省 2元的附带费用,例如存储、网络、IP等费用。
6. 更新产品
云服务商也在持续推出新的产品型号,这些型号通常比老旧的型号要更便宜、性能更强大。
以 AWS EBS 为例,GP2 和 GP3 是通用 EBS 卷类型,其中 GP2 是较老的一代,而 GP3 是较新的一代。GP2 卷大小扩展性能,最高可达 16,000 IOPS。GP3 卷具有更高的性能,与大小无关,并且允许单独扩展 IOPS 和吞吐量,最高可达 16,000 IOPS 和 1,000 MiB/s。
这意味着 GP3 为各种工作负载提供了更大的灵活性和成本效益,允许用户独立增加 IOPS 和吞吐量,而无需配置额外的块存储。与具有相同存储大小的 GP2 卷相比,GP3 卷的成本通常可降低 20%。
7. 云架构设计
云架构设计是最难且最常被忽略的一个工作量。一个好的云架构要考虑可用性、可靠性、安全、成本、自动化、兼容性、可扩展、性能等方方面面。然后,我们很少看到团队会认真 Review 云架构设计。一个好的云架构,可以节省超过 50% 以上的云成本。
在设计架构的时候,我们可以 Review 以下几个问题。
- 架构是否是成本最优?
- 可用性是否可以容忍单点错误?
- 业务数据是否存储在高可靠性的服务中?
- 如果出现云迁移,是否具有兼容性?
- 业务是否会有性能瓶颈?
- 是否有安全隐患?
- 架构是否可扩展,有没有单点负载瓶颈?
- 运维是否可以自动化?是否兼容现有的 DevOps 自动化工具?
8. 巧妙运用 Spot 类型
Spot 实例是云服务商的闲置容量,用户可以享受大幅折扣(最高可优惠 90%)。然而,Spot 可以随时被回收。当出现愿意支付全额按需价格的用户时,可以在两分钟内警告终止这些实例(称为 Spot 实例中断)。
这些终止需要妥善被处理以避免停机,这使得 Spot 使用成为一种高级技术(除非您有工具可以提供帮助)。然而,Spot 实例提供的诱人折扣使使用它们成为最重要的 FinOps 最佳实践之一。