写点什么

我们做了一个云原生成本优化产品

作者:TRaaS
  • 2022 年 9 月 01 日
    浙江
  • 本文字数:3815 字

    阅读完需:约 13 分钟

我们做了一个云原生成本优化产品

之前写的一些文章都是介绍别家的产品,今天是自家的。

过去几个月我们做了一个云原生成本优化产品 Forklift(一个简单的地址介绍:www.4klift.cloud,广义的 Forklift 域名被注册掉了,这里是 four klift ~ 4klift.cloud),针对使用公有云 Kubernetes 托管服务的集群进行优化,现已公网上线内测中,这里非常欢迎和有合作机会的团队互相学习,深度交流 ~


缘起

云市场

据 Gartner 预测,2022 年总计约 1216 亿美元的支出会用在 AWS,Azure 和 GCP 和其它公有云厂商的 IaaS 服务,相比 2020 年的 642 亿增长 189%,为 SaaS 和 PaaS 三者中增速最快的云服务区块。另外,该支出相当于波音(1218 亿美元)公司和 PayPal(1210 亿美元)的市值。


Kubernetes 市场

根据 CNCF 云原生计算基金会 2021 年度调查,Kubernetes 在云原生社区中的采用率接近 100%。调查显示,79%的受访者会使用云厂商的 K8S 管理服务,其中最受欢迎的亚马逊 EKS 占比 39%。


资源问题

●业务导向的 K8S 集群基础设施用量难以把控,资源使用不透明

●K8S 弹性扩缩涉及过多人为操作,管理成本过高,且稳定性无法保障

●团队会使用 Better-safe-than-Fail 的策略,由此引发的低效和资源浪费


Forklift 是什么?

产品专注于提供公有云 Kubernetes 集群的成本优化解决方案,依赖机器学习模型的决策输出,通过横向扩缩容,资源碎片化整理,计算资源规格调优等手段,自动化完成云端基础设施运维管理。全程无忧,效能优先,始终确保服务高可用的同时运行在最具成本效益的基建之上。


为什么叫这个?

We move containers!

Forklift 的本意是叉车,即货运码头搬运集装箱的小车。集装箱的英文是 Container,这个单词在云原生的概念里是容器。弹性伸缩是针对容器资源进行扩缩,这里想表达的就是在用户需要的时候,我们将容器(Container)搬来,不用的时候搬走,Forklift 就是云资源的搬运工


(图片来自网络)


产品切入

针对传统自有机房的企业和组织,资源的容量不易动态化及时调整,资源的节省倾向于效率的提升


面向云上企业和组织,利用弹性伸缩的先天优势,闲置资源及时释放转化为财务成本的直接节省


弹性自动伸缩(Auto-Scaling)逐渐成为主流,超 40%的企业会在 K8S 集群中使用基础的 Pod 横向伸缩(HPA)来控制工作负载的副本数量,从而实时针对业务流量的变化进行调整。



K8S 原生扩缩容的能力仅仅提供了底层技术的实现,当算法模型学习和决策引擎产出赋能后,则会让动作地执行更加精准和智能。同时配合算法驱动的集群资源聚合功能,以及底层计算实例替换工程实现,全链路的节省才能始终确保集群可以运行在最具成本效益的架构之上。



能力矩阵

数据大盘 Dashboard

随着集群资源的扩展,成本支出的增加可能会变得不可控,及时跟踪趋势变化和钱都花在哪了是两个需要关注的事情,找到问题后怎么解决则是另一个话题。这里会对多云多集群提供一站式资源管理,跟踪成本动态,并将成本支出直接和业务负载挂钩,基建贴近业务,赋能决策层 ROI 的判断。同时,针对已发现的问题,平台会产出推荐优化方案以期持续调优。


关键词:可洞察性,可执行性

一站式综合实时大盘可视化地呈现集群的成本优化,资源配置情况,并推荐可执行的洞察以期获得更大收益

Real-time cluster cost visualization and resource allocation for a comprehensive view in a single spot,sided with actionable insights to achieve even greater savings.


●精细化实时追踪每一项云服务的支出,财务管理尽在掌控之中

Real-time tracking of the spend associated with each cloud services,stay informed of financial status

●集群负载动态的及时监测和反馈,保证业务的持续高可用性

Situational awareness of everything running in the clusters,ensure highest availability of your business

●机器学习驱动的可执行洞察,赋能最具成本效益的基础设施优化

Machine Learning-driven actionable insights,enable the cost-effective infrastructure optimization


弹性伸缩 Auto Scaling

K8S 原生依赖系统指标进行的 HPA 弹性伸缩可能是滞后的,即业务风险已发生,此时再弹已经迟了,这也是弹性伸缩在实践中没有得到很好实践的主要原因之一。为此,这里除了系统指标,还会结合流量趋势,应用接口指标等提升数据的丰富度,配合机器算法模型的学习决策,预判潜在风险,提前增加副本数,以应对可能的流量高峰。缩容时也会动态检测业务状况,以在异常发生时可以即时应急止血。


关键词:面向应用,智能决策,周期推荐

应用驱动的 HPA 弹性伸缩,配合机器学习的分析和预测,产出成本和稳定性兼具的最佳决策。

Application-driven horizontal pod scaling, powered by machine learning analysis and prediction, to ensure the workload is running on most cost-effective infrastructures while maintain the highest availability.


●基于 CPU 之外的多类型指标丰富算法模型,产出更精准的智能预测

Enrich the AI model with custom metrics beyond CPU utilization to generate smarter scaling prediction

●避免依赖主观经验设置的静态水位线,系统动态调优匹配业务变化

Avoid setting the static "watermark" objectively, dynamic tunning to match the changing requirement

●支持修正预测结果来应对预期内的有把握的流量,最终决定权始终在用户

Support correction on scaling prediction to handle the controlled traffic, you have the final say


碎片整理 Rebalance

随着时间的推移,周期性活跃的 Kubernetes 集群会经历一系列重复部署和定期扩展动作,即从集群中添加或删除 Pod 和节点。这往往会在集群中引入一些低效率结果,包括性能和成本。其中,最重要但很少被透出的问题之一是资源碎片化问题。


资源碎片化的一个具体表象,即对于任何新的 Pod,它所请求的资源在任何单个节点都无法被满足,从而无法完成部署。即便此时整个 Kubernetes 集群所有节点上的资源累加是足够的,但碎片化地分布导致仍然需要扩容来承载新增 Pod。尤其是在大型集群中,这种碎片化会浪费大量资源并产生不必要的基础设施成本。解法便是通过定期的碎片化检测,将 Pod 在集群节点之间进行腾挪,来聚合闲置资源以应对新增的资源需求。而针对闲置后富余的节点,平台也会释放以即可减少成本。


关键词:成本驱动,资源聚合,负载均衡

定制化算法精准调度 Pods 在集群中的均衡分配,通过把控闲置资源的聚合或释放来最大化地提升资源的利用水位

Patent-pending algorithm is tailored to rebalance the Pods allocation within cluster, in order to consolidating or releasing the resource to achieve optimal efficiency.


●成本优先的资源腾挪,减少碎片化地同时尽可能地省去不必要的支出浪费

Cost-driven resource allocation to minimize the fragmentation and cut the unnecessary bill

●基于应用属性的工作负载均衡分配,确保时刻拥有最佳的业务性能表现

Workload attribution accounted Pods & Nodes matching to ensure the optimal performance

●自动化执行可以推进的动作,聚合闲置资源为大规格的工作负载预留空间

Closed-loop automation to consolidate resource whenever possible, save a spot for "big" workload


机器替换 Right-Size

在公有云使用场景中,为了规避业务稳定性风险,一般企业对于成本的支出是有相对宽松的容忍度。在进行资源配置时,也往往会采取“宁可多,不能少”的策略。结果也显而易见,集群当中的节点利用率不高,大量闲置资源被浪费,甚至感觉云所宣传的按需使用并没有得到很好的实践。解法即常态化检测集群全局节点的资源分配率,在公有云全量机器池中匹配实际工作负载需求,产出最佳的节点规格替换方案,并执行完成以即可节省。


关键词:精细管理,智能推荐

资源历史用量驱动的算法推荐助力过度分配的资源被及时发现并省去,从而获得可观的成本收益

Resource utilization history based machine learning recommendation to identify over-provisioned resources and therefore can be downsized for cost savings


●摆脱传统伸缩组的限制,补充规格最佳的节点满足业务实际负载需求

Ignore the limits set by scaling groups, provision optimal compute resource to meet the actual need

●结合工作负载的伸缩预测情况,以最小程度的业务打扰实现最佳的平衡

Minimize the business interruption by taking scaling prediction into account for optimal balance

●自动化地实现全程无忧地变更,助力节省每一分潜在地成本支出

Every penny & second count, managed sizing enable you to capture all potential savings without miss


弹性伸缩,资源调度和实例替换三个功能构成的矩阵是以资源浪费为切入点的产品核心


Show Me The Demo

前面对产品的整体有了介绍,太多的细节还没完全展开。产品当前已公网开放内测进行中,支持海外 AWS 公有云 Kubernetes 托管服务,即针对 EKS 集群的成本优化(这也是为什么产品当前提供的是英文版),后续会逐步拓展到其他公有云厂商,例如阿里云,Azure,Google 等。支持的监控产品当前包括开源的 Prometheus 和 AWS 原生的 CloudWatch,后续也会逐步向主流的三方监控平台兼容,例如 Datadog,Dynatrace 等。


非常欢迎有成本管理需求的团队和我们联系 ~ 也欢迎和感兴趣的朋友一起交流学习 ~

王江宇:wangjiangyu.wjy@antgroup.com

王彪:yuhai.wb@antgroup.com

团队:info@4klift.cloud

用户头像

TRaaS

关注

还未添加个人签名 2022.06.22 加入

还未添加个人简介

评论

发布
暂无评论
我们做了一个云原生成本优化产品_TRaaS_InfoQ写作社区