【百度云原生导读】根据 Gartner 的调查数据,到 2022 年底,全球企业在云计算基础设施方面的支出约为 3330 亿美元。
麦肯锡在调查报告中指出,2020 年,由于缺乏成本优化手段,80% 企业的云资源成本大幅超出预算;同时,45% 的企业由于缺乏优化措施,在直接迁移上云的过程中会超买 55% 的资源,并且在上云的头 18 个月会多花 70% 的费用。
随着全球经济持续下行,企业应该如何做好精细化运营和降本增效,如何优化云资源的分配、使用和管理成为了当下必须要考虑的问题。
本文将会具体介绍百度的云原生成本优化体系并重点阐释对成本优化起到关键作用的混部和超卖技术,最后介绍如何保证资源资源利用率提升之后的稳定性,希望能给企业的云原生转型提供经验借鉴。
从下面两张图中可以看出企业在云原生转型过程中面临 K8S 采用率逐年提升但资源成本却不断飙升的矛盾。
-
左边图片来源于《2020 年 CNCF 中国云原生调查报告》,图中显示生产系统中使用 Kubernetes 的比例已从 2019 年的 72% 增长到了 82%,越来越多的企业在云上使用基础设施资源、通过 Kubernetes 平台来管理应用。
-
右边图片来源于 CNCF《FinOpsKubernetes Report》,报告中指出云原生导致资源成本增加,迁移至 Kubernetes 平台后,68% 的受访者表示所在企业计算资源成本有所增加,36% 的受访者表示成本飙升超过 20%
为什么会出现这个矛盾?其实,企业在云原生转型过程中主要面临三个困难:
-
成本管理困难:K8S 的弹性帮助了业务快速整张,但也带来了计费、分账管理上的困难。因为 K8S 的 Pod 迁移性比较强,对比传统的 Agent 部署模式,Pod 可能会在各个节点上漂移。多集群场景下,也可能在集群之间漂移
-
成本优化难:弹性、潮汐、混部超发、预留实例、竞价实例,手段很多,但需要投入人力来对这些手段精心搭配
-
资源利用率低:给业务分配的资源过大,实际使用的资源过小,企业的 CPU 资源利用率普遍低于 15%
这些困难就导致了企业的资源成本无法有效控制。百度借助当下流行的 FinOps 理念,结合内部多年的实践经验发现:可以从成本洞察、成本优化以及成本运营三个方面形成闭环,对上述困难各个击破。
1. 成本优化实施路径
1.1 成本洞察方案
在 K8S 平台做成本洞察,基本会按以下三个方向进行:
-
可视化的资源追踪:对集群,节点维度的资源变化做追踪
-
应用级别的用量分析:对用用做 Pod 级别分配率核算;统计不同的 Namespace 和 Label 对应相不同的业务和业务线,向上聚合产出报表
-
利用率统计:对多资源维度的分配率、利用率进行统计。比如 CPU、Memory、GPU、磁盘等数据。
1.2 成本优化方案
浪费的根因主要是