极氪汽车云成本精细化治理实践
企业需求与痛点
多云混合架构,K8s集群数量多、规模大,运维管理困难
线上线下使用来自于多个云厂商的不同环境,前期随着业务增长,容器集群数量及规模倍增,有限的团队规模下,难以兼顾到业务的稳定性及业务的快速发展。团队面临集群环境配置不一致,发布脚本缺乏标准,应用发布上线变得越来越困难,线上系统稳定性风险极大增加。
应用工作负载难以预估,缺乏数据可见性
Kubernetes为容器资源管理提供了资源请求(Request)的语义描述。容器的Request一般基于人工经验填写,管理员会参考容器的历史利用率情况、应用的压测表现,并根据线上运行情况的反馈持续调整。
但基于人工经验的资源规格配置模式存在以下局限性:
为了保障线上应用的稳定性,管理员通常会预留相当数量的资源Buffer来应对上下游链路的负载波动,容器的Request配置会远高于其实际的资源利用率,导致集群资源利用率过低,造成大量资源浪费。
当集群分配率较高时,为了提升集群资源利用率,管理员会主动缩小Request配置,协调更多的资源容量。该操作会提升容器的部署密度,当应用流量上涨时会影响集群的稳定性。
完全依赖专家经验的管理方式无法适应规模的增长,随着应用数量增多,其管理效率会愈发降低。
预算预估困难,缺乏有效手段支撑企业IT精细化治理
在传统架构下,应用的成本摊销基于服务器维度。而云原生架构下费用模型不再完全等同于服务器,业务团队需要更准确的数据估算应用实际投入成本,从而为未来的预算预估做出合理规划。
成本优化措施
基于ACK One构建混合云模式下的K8s多集群管理
通过ACK One注册集群,用户可以在非ACK的K8s集群中使用ACK的产品化的可观察能力,节省运维外部监控日志系统的成本,也可以统一监控日志系统,快速发现与诊断问题,同时降低运维成本。
通过ACK控制台查看注册集群成本分析:可以自定义K8s集群节点的成本,根据应用资源使用做成本拆分,多维度分析集群成本、命名空间成本和应用成本,并快速定位异常成本来源,帮助企业降本增效。
基于ACK FinOps套件洞察资源画像,提高整体利用率
ACK为K8s原生的工作负载提供了资源画像的能力,通过对资源使用量历史数据的分析,可以提供容器粒度的资源规格推荐,有效简化了为容器配置Request和Limit的复杂度。同时,资源画像功能还在ACK控制台提供了可视化的交互页面,便于管理员快速分析应用资源规格的合理性,并进行资源规格配置的变更。
考虑到极氪线上应用较多,通过人工调整不同应用的参数所带来的工作量负担较大,而且调整后的数据无法同应用的发布流程结合,带来业务稳定性的隐患。为此,在项目落地的过程中,ACK资源画像以API的形式提供了资源规格的推荐结果,并与极氪当前发布平台相结合,自动化的获取参数配置的最佳值,渲染发布模版,从而在保证业务稳定性的同时,极大的降低了整体资源使用成本。
成本优化效果
利用资源画像功能分析数千个Pod的资源使用情况,企业识别并检查了空闲资源、找到了潜在的资源配置问题。在修复这些问题后,部署策略得到优化,从而为企业减少了近25%的资源用量。这一举措每年帮企业节省了数百万元的IT成本投入,并显著提高了资源利用效率。
通过ACK One多集群管理功能,实现了在阿里云容器管理平台对线上、线下环境的多套k8s集群上统一管理,这降低运维操作的复杂性,提高了工作效率。
结合业务需求,企业制定了多种备份策略。针对这些策略,在ACK One平台上执行数据备份和恢复操作。这一做法提高了企业的业务连续性和数据安全性,进一步加强了系统的稳定性。
借助ACK One的分析功能,企业得以优化应用发布策略,从而使系统更加稳定和高效。企业不仅降低了故障率,还释放了更多的时间和精力来关注核心业务的创新和发展。