这段时间有幸参与了一下腾讯Finops Crane集训营的Crane公开体验训练营。
这不,给大家写一篇实战记录。
如下图所示,可以看到Crane的详细介绍:
简单的来说,就是在云原生技术不断发展和普及的大背景下,这是国内第一个基于云原生技术的成本优化项目,它遵循了FinOps标准,并且已经获得FinOps基金会授予的全球首个认证降本增效开源方案。
Crane项目的设计初衷是为了帮助企业更好地管理和扩展其Kubernetes集群,从而实现更高效的云原生应用管理。
这里给大家上活动链接:Crane活动地址
如果有技术大佬感兴趣这个Crane,也欢迎去Github找到并研究! 直达链接如下:https://github.com/gocrane/crane
Crane目前呢已经在腾讯内部自研业务实现了大规模落地,部署数百个 K8s 集群、管控 CPU 核数达百万,在降本增效方面取得了阶段性成果。
例如腾讯某部门通过使用 FinOps Crane,该部门在保障业务稳定的情况下,资源利用率提升了 3 倍;腾讯某个另一自研业务落地 Crane 后,在一个月内实现了总 CPU 规模 40 万核的节省量,相当于成本节约超 1000 万元/月。
接下来我们就从3个阶段部分来讲述该Crane的真正作用!
FinOps是一种管理云计算成本的方法论,它结合了财务和技术团队的知识,旨在通过优化资源使用,降低云计算成本,提高业务效率和灵活性。FinOps的目标是通过透明度、责任分配和协作来确保云计算的成本与业务价值之间的平衡。
FinOps框架通常包括以下几个方面:
Prometheus是一个开源的系统监控和报警系统,一种在大规模分布式系统中进行度量、收集和聚合数据的标准方法。Prometheus使用一种称为PromQL的自定义查询语言来查询和分析收集的数据,并提供了图形化的Web界面和API。
Grafana是一个流行的开源数据可视化和监控平台。它可以连接多个数据源,包括Prometheus、InfluxDB、Elasticsearch、MySQL等,并使用图表、仪表盘、警报等工具进行数据可视化和分析。
通过腾讯的如下资料图所示,在2022年云计算市场发展状态报告中显示,32%的云支出被浪费了。
那么在后云原生时代的成本管理挑战又有哪些呢?可以详细来看看一下几个:
首先我们介绍一些常见的成本优化思路与常用手段:
同时也需要了解成本构成是什么:
那么总的来说,云成本管理的核心是什么呢?
就是在保障业务的前提下,最小化的资源需求。
现在云原生时代下,很多业务需求是直接使用K8s直接上手管控的,但是K8s也存在一定的不足,如下图所示:
首先我们来看看Crane的架构图:
那么如何进行降本之旅呢?方法有下面几个:
•从监控系统拉取用量数据 •从Kubernetes平台拉取作业配置信息 •从云厂商计费API拉取资源单价 •通过多种算法分析成本组成并给出优化建议
通过Crane,我们可以进行成本展示与预测,也可以进行基于预测的趋势分析。
还能进行成本和浪费识别:即与计费API整合的费用展示。
同时也是国内首个云原生碳排放计算机
除此之外,还能进行灵活的汇聚维度,例如:按部门、项目、应用类型等等。
首先Crane是可声明的,为指定命名空间,工作负载类型给出推荐值。
同时支持基于可配置的算法,例如
首先进行控制台点击完成滚动升级。
然后进行成本左移与自动化控制。
最后就可以看到规格推荐成果了!
Crane可以进行提前扩容,根据时间序列算法(如FFT快速傅里叶变化)、取预测窗口最大值:提前扩容、还能基于Custom Metric、metric兜底保护实现该功能。
同时Crane支持Cron配置,也就是应对大促节假日等有规律的流量洪峰。
最后就可以预测到弹性效果了,如下:
•在腾讯内部自研业务大规模落地 •部署至数百个Kubernetes集群 •管控数百万CPU核 •全面上线2个月内,大盘总核数缩减25%
•在网易新闻落地 •管控数WCPU核 •全面上线2个月内,大盘总核数缩减11% •下线30台56C物理机,每个月节省10W
curl.exe -LO "https://dl.k8s.io/release/v1.27.1/bin/windows/amd64/kubectl.exe"
choco install kubernetes-helm
choco install kind
curl -sf https://raw.githubusercontent.com/gocrane/crane/main/hack/local-env-setup.sh | sh -
$ export KUBECONFIG=${HOME}/.kube/config_crane
$ kubectl get pod -n crane-system
NAME READY STATUS RESTARTS AGE
craned-8cks5c939f-kkfhv 2/2 Running 0 3m36s
fadvisor-5b92cdfvq98b6-xqhfs 1/1 Running 0 3m47s
grafana-33pov56f6y54-4jks6 1/1 Running 0 3m29s
metric-adapter-967c6d57f-so9vv 1/1 Running 0 4m11s
prometheus-kube-state-metrics-7k9d6s8fdvc-qql9c 1/1 Running 0 3m42s
prometheus-server-pvl64f4b7-47dvu 2/2 Running 0 3m38s
kubectl -n crane-system port-forward service/craned 9090:9090
export KUBECONFIG=${HOME}/.kube/config_crane
总的来说Crane是一款多用途工具,可用于DevOps自动化流程,帮助开发团队高效构建、测试和部署应用程序。此外,Crane还可用于构建和管理云原生应用程序,这些应用程序通常是分布式、可扩展和高可用的。最后,Crane还可用于大规模集群的部署和管理,例如使用Kubernetes等容器编排引擎管理的集群,对于容器化微服务,Crane也是一个理想的管理工具,可帮助开发者更轻松地部署、升级和管理微服务架构。。
关于腾讯云 Finops Crane 集训营:
Finops Crane集训营主要面向广大开发者,旨在提升开发者在容器部署、K8s层面的动手实践能力,同时吸纳Crane开源项目贡献者,鼓励开发者提交issue、bug反馈等,并搭载线上直播、动手实验组队、有奖征文等系列技术活动。既能让开发者通过活动对 Finops Crane 开源项目有深入了解,同时也能帮助广大开发者在云原生技能上有实质性收获。
为奖励开发者,我们特别设立了积分获取任务和对应的积分兑换礼品。
活动介绍送门:https://marketing.csdn.net/p/038ae30af2357473fc5431b63e4e1a78
开源项目: https://github.com/gocrane/crane