腾讯推出国内首个云原生成本优化开源项目 Crane

1,282 阅读7分钟

关于我们

更多关于云原生的案例和知识,可关注同名【腾讯云原生】公众号~

福利:

①公众号后台回复【手册】,可获得《腾讯云原生路线图手册》&《腾讯云原生最佳实践》~

②公众号后台回复【系列】,可获得《15个系列100+篇超实用云原生原创干货合集》,包含Kubernetes 降本增效、K8s 性能优化实践、最佳实践等系列。

③公众号后台回复【白皮书】,可获得《腾讯云容器安全白皮书》&《降本之源-云原生成本管理白皮书v1.0》

④公众号后台回复【光速入门】,可获得腾讯云专家5万字精华教程,光速入门Prometheus和Grafana。

作者

王孝威,FinOps 认证从业者,腾讯云技术产品经理,Crane 产品负责人。

云资源管理现状

设想你是一个应用开发人员,编写业务代码是你的主业,应用需要多少资源,往往通过压测决定,这导致非业务高峰期时段巨大的资源浪费。正好,社区和公司都在积极推动云原生,声称可以利用其强大的调度和弹性解决资源浪费问题。你兴致勃勃的拥抱云原生,但最终发现,云原生业务的资源配置,同样还是需要压测这种传统而手工的方式。

又比如你是一个平台侧运维人员,你背负着提升平台资源利用率的 KPI。集群内运行着众多负载规律波动的应用,你惊喜的发现,Kubernetes 提供了自动扩容能力,你很想试试看。但真正使用了HPA,从负载上升触发阈值,到弹性控制器开始扩容,到应用启动完成,可能有数分钟甚至数十分钟的滞后,在弹性起作用之前,应用已经被压垮。于是你抛弃自动弹性能力,继续回归到锁定超量资源的老路上来。

研发人员到底能否从资源配置的深渊中解脱出来,是否能让弹性能力高效实用?于是你带着问题去社区寻找答案。你发现将应用代码和基础架构彻底分离的 Serverless 技术似乎是一个选项,但是随着深入了解你发现,Serverless 只是一个概念,不是一个标准,由于完全抛弃了服务器,底层自主可控和性能优化能力完全丧失;另一类是以谷歌 Autopilot 集群为首的资源托管类集群,这类集群应该满足你的诉求,但它平台绑定并且需要付费。

我们决定改变现状,我们在对腾讯内部业务做成本优化时积累了众多经验,结合资源预测、智能弹性和全构混部能力,在不牺牲稳定性的前提下,将集群峰值利用率提升到了50%以上,下图是优化的效果。我们期待与社区同道一起优化应用资源配置和弹性的共性问题,于是我们给大家一个不重造轮子的可能,选择了开源。

图1 Crane 在大规模场景下的优化效果

Crane 的诞生:首款企业成本优化的开源工具

为推进云原生用户在确保业务稳定性的基础上做到真正的极致降本,腾讯推出了国内第一个基于云原生技术的成本优化开源项目 Crane( Cloud Resource Analytics and Economics )。Crane 遵循 FinOps 标准,旨在为云原生用户提供云成本优化一站式解决方案。

当前 Crane 项目主要贡献者包括有腾讯、小红书、谷歌、eBay、微软、特斯拉等知名公司的行业专家。(Crane 开源项目地址:github.com/gocrane/cra…

符合 FinOps 标准的 Crane 成本优化工具能力模型

Crane 是腾讯内部云资源优化流程方法和工具的系统性输出,同时,Crane核心能力的构建与规划均与 FinOps 基金会提出的能力模型完全契合。

图2 Crane 能力模型

Crane 架构与特性

图3 Crane 架构

Crane 致力于推荐资源和智能弹性配置,业务人员无需再为业务需要多少资源,自动扩缩容应该如何配置等问题而烦恼,Crane 会基于业务的时序变动数据给出最优解。

一键部署

Crane 保持平台独立,通过一个 Helm 包将 Crane 安装至任意 Kubernetes 集群,无论云上还是云下,即可享受一站式资源优化能力。Crane 侵入性小,核心组件包括集中控制器 craned 和节点代理 crane agent,你可以自由组合安装,通过 featureGate 选择开启哪些能力。

简单易用可视化控制台

为降低使用门槛,Crane 提供内置控制台,用户可基于控制台查看成本分配,成本走势,并通过鼠标点击实现成本优化。所有能力均提供灰度控制和预览模式,以及回滚的能力,以消除业务侧对资源变动的顾虑。

开箱即用的巡检能力

Crane 可以全局扫描整体浪费情况,将隐藏浪费可视化的呈现出来,使运维人员免除拉取监控数据,编写查询脚本等重复性工作。

优化方案包含对成本变化的展示,对利用率变化的展示,可能的风险点,甚至是优化建议的排序。因为我们相信,每个业务都是独一无二的,都有其最适合的优化方案,不能一概而论。

即时迅速的弹性 (EffectivePodAutoscaler(EPA))

传统基于事件的弹性工具会导致一个天然缺陷——当业务指标偏离正常值后才会触发弹性,这种滞后性使得云用户不敢使用弹性。EPA 支持可扩展的预测算法,以预测结果驱动横向和纵向弹性,确保业务能提前弹出来,彻底避免原生弹性能力未弹先死的尴尬。同时 Crane 将社区的 HPA 和 VPA 两种弹性能力统一起来,提出了弹性概念 EPA。

图4 EPA 确保工作负载提前扩容

稳定性与资源优化的双重兼

Crane 对资源利用率的提升,绝不是以牺牲稳定性作为代价。Crane 允许用户对业务进行定级,节点代理负责周期性检查节点资源水位和系统指标,识别应用干扰,并通过调度禁止,调整 cgroup,驱逐等多种手段确保敏感业务服务等级不受损。

Crane 现状与未来

当前Crane已发布0.2.0版本,具备了资源推荐,弹性推荐,智能弹性和稳定性增强等核心能力,更多开发计划请参考里程碑

延伸阅读

FinOps (Financial Operations) 定义了一系列云财务管理规则和最佳实践,通过助力工程和财务团队、技术和业务团队彼此合作,进行数据驱动的成本决策,使组织能够获得最大收益。

秉承着用户为本,科技向善的核心价值观,腾讯云将内部云资源优化的经验、方法、工具以开源的形式分享给社区,助力云用户云成本优化视为自己的使命与责任。2021年12月,腾讯成为 FinOps 基金会顶级会员,致力于云资源优化理念的推广与技术输出。

加入我们

Crane 项目开源进行时,欢迎关注 github.com/gocrane/cra… 收藏/Star支持。

我们正在限量召集 Crane 的第一批开源技术粉丝,只要你对 Crane 及相关技术感兴趣,都欢迎加入,参与方式:添加腾小云微信(TKEplatform),回复:Crane,小云会拉你进群。