​嘉宾 | 孟凡杰


(资料图)

出品 | 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进行。点击『此处』进入活动专题,带你体验云原生降本增效实践案例、了解如何解决企业用云痛点、掌握降本增效关键技能……

推荐内容