嘉宾 | 孟凡杰
(资料图)
出品 | CSDN云原生
CNCF云原生计算基金会2021年《FinOps Kubernetes Report》显示,迁移至 Kubernetes 平台后,68%的受访者表示所在企业计算资源成本有所增加,36%的受访者表示成本飙升超过20%。因此提升资源利用率,实现降本增效,已成为当前企业关注的重点。
但该如何提升资源利用率,实现降本增效?这值得云原生从业者持续探讨和互相学习。
基于此,中国信通院、腾讯云、FinOps产业标准工作组联合发起《原动力x云原生正发声 降本增效大讲堂》系列直播活动。在2022年6月23日的第一讲活动上,腾讯云任容器技术专家、FinOps产品研发负责人孟凡杰分享了云原⽣降本增效最佳实践案例。
孟凡杰致力于云原生成本优化,是云原⽣成本优化开源项⽬Crane发起⼈,著有《Kubernetes⽣产化实践之路》、《软件研发效能提升实践》。本文整理自孟凡杰的分享。
当前,成本优化成为企业上云的核心关切。在腾讯内部,对资源利用率有非常高的要求,历经海量自研业务上云的数年技术探索和成本优化实战,成效明显——总体规模5000万核,混部后资源利用率达到65%,累计节省30亿元人民币。
云原生成本管理现状与挑战
CNCF 2021年调查显⽰,云原生部署率创历史性新⾼,96%的组织已经在调研或使⽤Kubernetes。也就是说,这些组织要么已经在生产系统使用了Kubernetes,要么已经在做POC了。
同时,Flexera发布的《2021云计算市场发展状态报告》显示,30%~35%的云⽀出被浪费。基于腾云公有云客户数据分析和调研也佐证了这一点——客户集群中资源成本浪费⾮常严重,有众多客户提出关于提⾼资源利⽤率的诉求。采样数据显示,物理机平均利⽤率10%,虚拟机平均利⽤率12%,而容器化平均利用率只有14%,大大低于我们的预期。
在后云原生时代,成本管理面临着诸多挑战:
去中⼼化:随着以Kubernetes为核⼼的云原⽣应⽤的蓬勃发展,传统的集中式财务预算和IT管理模式在向以业务为导向的分布式决策转型;
不断上涨:CNCF调查显⽰,随着业务的快速发展,企业的云费⽤以24%的年增长率快速增加;
动态变化:云原⽣的动态环境和弹性能⼒导致云费⽤随业务负载不断变化;
浪费严重:业务上云以后缺乏资源优化意识,依然以传统资源配置思维管理资源,浪费严重。
云成本管理的核⼼是在保障业务的前提下,最⼩化资源需求。但由于Kubernetes原⽣能⼒的先天不⾜,导致资源浪费。
资源配置(不会配):基于经验的资源配置不准导致⼤量浪费。
弹性(不敢配):基于阈值的弹性的滞后性导致业务来不及弹。
业务稳定性(不能配):当CPU发⽣抢占时以cpu.shares公平分配时间⽚,无法确保延迟敏感型业务的稳定性。
FinOps与Crane
腾讯的云原生降本增效最佳实践是基于FinOps框架开展的。
FinOps定义了⼀系列云财务管理规则和最佳实践,通过助⼒⼯程和财务团队、技术和业务团队彼此合作,进⾏数据驱动的成本决策,使组织能够获得最⼤收益。其原则、角色、成熟度、阶段、能力如下图所示。
基于以上的方法论,腾讯开源了一个成本优化项目Crane(Cloud Resource Analytics and Economics),让腾讯自研业务云原生化的经验和工具帮助更多人。Crane架构具备以下特点:
预测为王:可扩展的预测算法;
优化为本:基于预测的资源再分配、成本可视化、多维扩缩容;
稳定性为根:基于业务优先级的增强QoS;⼲扰检测和主动回避。
以Crane为基础框架的降本产品架构如下图所示。
具体推动降本时,FinOps团队是降本的核心,作为集中化决策团队,定位承上启下,向上汇报给管理层(CTO/CFO/COO),接受管理层的授权去推动所有业务部门的改造以及平台优化;向下把每个执行的任务细分到不同的分布式执行团队(平台运维、业务运维)。
FinOps团队的日常工作涵盖降本增效战略、成本分析与浪费识别、目标制定与下发、费率优化、业务侧优化、平台侧优化。
在产品层面,腾讯推出了数据驱动的成本分析与成果测算。
离线数仓
⾃定义Spec Watcher捕获workload变动
基于Prometheus Metrics Beats每⽇凌晨拉取当天业务指标
针对Metrics Beats做了⾃定义存储优化,存储空间降低数个量级
离线算法评估
针对⼤量离线指标数据评估预测算法准确性
超参调优
运营数据分析
聚类与业务画像
⼤盘现状与⾛势
优化进展
⽤户⾏为分析
最佳实践举例
以腾讯某部门集群优化为例,在优化之前,该部门的状况是:
节点装箱率参差不齐:近⼀半集群装箱率不⾜50%;
节点利⽤率低:三分之⼆集群峰值利⽤率不到40%;
业务资源利⽤率低:CPU利⽤率15%,内存利⽤率25%;
有效弹性占⽐低:只有10%的HPA在本年度弹出过。
调研后发现,这是一个普遍现象,为了改善这些问题,腾讯是这样操作的。
目标设定与绩效晾晒
为优化腾讯内部业务云资源,腾讯定义了云成熟度模型
该模型从平台侧以及业务侧考核各个BG的云资源使⽤情况
总成熟度得分 = 业务侧得分 * 50% + 平台侧得分 * 50%
得分情况从作业、产品、部门维度层层汇总,并以该结果作为考核参考指标
业务侧优化
成本可视化
⽤量
基于预测的趋势分析
成本和浪费识别
与计费API整合的费⽤展⽰
灵活的汇聚维度
按部门
按项⽬
按应⽤类型
按⾃定义标签
⽅便可信的优化能⼒
可⽀持原地升降配的规格优化
弹性推荐、定时弹性和预测弹性
三条黄⾦曲线展⽰推荐值的来源
平台侧优化:节点容量缩放和⽔位管理
集群大盘可视化
集群总体利⽤率
节点利⽤率热⼒图
节点容量缩放
可定义节点容量缩放⽐例,放⼤节点可分配资源,提升装箱率
节点水位控制
可⾃定义节点⽔位,控制节点利⽤率上限
动态调度器依据利⽤率装箱,确保真实利⽤率与⽬标利⽤率⼀致
可配置紧缩优先调度策略,⽅便退还闲置节点
平台侧优化:业务定级与混部
优先级定义
平台运维定义基于PriorityClass的冲突处理策略
业务运维为业务定级
冲突检测与主动回避
灵活的异常检测策略
cAdvisor、eBPF、BizProbe
综合指标考量
CPI、Steal Time、CPU Utilization、Memory Utilization、Network IO、Disk IO
主动回避策略
⾼优业务CPU绝对抢占
低优业务主动驱逐
内部大规模落地的成效
在腾讯内部⾃研业务⼤规模落地
部署⾄数百个Kubernetes集群
管控数百万CPU核
全⾯上线⼀个⽉内,⼤盘总核数缩减25%
如果您也面临云原生上的降本挑战,欢迎访问我们的开源项目地址:https://github.com/gocrane/crane 与我们联系。非常期待与业界同行交流降本经验和技术,用Crane的能力为您解决成本优化核心痛点。
【原动力×云原生正发声降本增效大讲堂】第二期聚焦全场景在离线混部、K8s GPU资源效率提升、K8s资源拓扑感知调度主题,分别在7月28日、8月4日、8月11日晚20:00-21:00进行。点击『此处』进入活动专题,带你体验云原生降本增效实践案例、了解如何解决企业用云痛点、掌握降本增效关键技能……