【腾讯云FinOps Crane 集训营】初识 FinOps Crane

news2024/12/27 17:35:17

前言:

有幸参加了腾讯云Finops Crane 集训营,学到了很多东西,现在将内容分享给大家。

Finops Crane :是一个基于 FinOps 的云资源分析与成本优化平台

它的目标是希望在保证客户应用运行质量的前提下,实现极致的降本

今天学习一下相关的内容

文章标记颜色说明:

  • 黄色:重要标题
  • 红色:用来标记结论
  • 绿色:用来标记一级论点
  • 蓝色:用来标记二级论点

1 问题思考

我们先思考两个问题

  • 什么是云成本
  • 上云之后,如何管理服务器以及控制云成本

随着云计算的普及,越来越多的企业开始将其业务迁移到云上。 那如何控制云成本,就成了一个需要关注的问题。

云成本:是指企业使用云计算服务所需支付的费用

云成本类型:

  1. 计算资源成本:虚拟机、容器、数据库等计算资源的使用费用。

  2. 存储资源成本:云存储、备份和恢复服务等存储资源的使用费用。

  3. 网络资源成本:云内网络、云间网络、公网网络等网络资源的使用费用。

  4. 应用程序成本:云应用程序的使用费用。

  5. 其他杂项成本:安全服务、支持和维护服务等其他费用。

那下一步就需要思考下面这个问题了。

从上面成本类型可以看出来,云计算的成本比传统的 IT 环境更加复杂和难以管理,因为它涉及很多种不同的服务、资源和计费模式

这也让我们很难准确地估算和控制云计算的成本,从而导致了高昂的费用支出。

为了解决这个问题,云成本管理工具就出现了

开源社区、一些组织开始开发和维护一些成本管理工具,以帮助企业更好地管理其云计算成本。

这些工具可以帮助企业实时监控其云资源的使用情况,识别出潜在的成本问题,并提供优化建议,从而帮助企业降低云计算的成本。

同时,这些工具还可以帮助企业了解其在不同云服务提供商之间的成本差异,从而更好地制定云战略和预算计划。

云成本管理工具开源项目

以下是几个开源的云成本管理工具项目:

  1. FinOps Crane一个开源的云成本管理工具,是一个基于 FinOps 的云资源分析与成本优化平台

  2. Cloud Custodian:是一个开源的云成本管理和资源优化工具,可以自动化云资源管理和成本优化。

  3. Costimator:一个开源的云成本管理工具,可以实时跟踪和分析在云中的成本。

  4. Kubecost:一个开源的Kubernetes成本和性能管理工具,侧重于表达服务在Kubernetes上的成本和性能。

  5. CostModel:一个开源的云成本建模工具,可以建立云中的成本模型,实现更好的成本管理和优化。

这些开源的云成本管理工具,可以更好管理在云中的资源使用和成本,提供:

  • 实时的成本分析
  • 预算管理
  • 资源利用率分析

等功能,从而更好地控制云服务成本。

今天我们详细学习一下FinOps Crane

2 FinOps Crane介绍

2.1 什么是FinOps

先简单了解一下:什么是FinOps

FinOps(Financial Operations)一种管理云计算成本的方法论,它主要是希望可以帮助企业更好地了解他们在云中使用资源的成本,并优化他们的支出。

FinOps 方法论强调将云计算成本视为一个团队的责任,而不仅仅是财务或 IT 部门的责任。

FinOps 的目标是让组织在云中获得更好的价值,同时控制成本。为了实现这一目标,提出了一系列最佳实践,其中有:

  1. 成本意识

  2. 成本可见性

  3. 成本优化

  4. 成本控制

  5. 成本预测

FinOps Crane,就是在这一套理论的前提下,被提出来的

它的目标也与FinOps高度相似,都是希望可以帮助组织更好地管理云计算成本提高云资源的利用率和效率,从而实现更好的业务结果。

2.2 主要功能

 Crane 它本身是一种云成本管理工具与 Kubernetes /其他工具,集成之后就是一种容器编排的开源工具,

 云成本管理工具

作为一个云成本管理工具,它主要用于帮助用户在多云环境中进行成本管理和优化。

其主要功能包括:

  • 成本可视化
  • 成本分析
  • 预算和警报
  • 自动化优化
  • 多云管理

⭐️成本可视化⭐️

Crane 提供了可视化的仪表板,我们可以直观地了解多个云平台上的成本和使用情况。

⭐️成本分析⭐️

Crane 可以对多个云平台的账户成本进行深入分析,帮助我们找出成本高昂的资源和服务,并提供优化建议。

⭐️预算和警报⭐️

Crane 支持设置预算和警报,让我们能够及时获知其成本超支情况,并采取相应的措施。

⭐️自动化优化⭐️

Crane 可以自动识别并优化云环境中的资源和服务以降低成本并提高效率。

例如,它可以根据实际使用情况自动调整计算资源的规模,比如有的使用多,就会自动去调整增加,从而确保我们服务器最佳性能和最低成本。

⭐️多云管理⭐️

Crane 可以管理多个云平台的账户和资源,如果在多个云厂商都有部署,就十分方便。

它为我们提供一站式的云成本管理解决方案。

容器编排工具 

与 Kubernetes 集成之后,作为容器编排工具,它主要用于管理和协调 Docker 容器和 Kubernetes pod。

其主要功能包括:

  • 容器编排
  • 容器管理
  • 负载均衡
  • 服务发现
  • 自动扩展
  • 日志管理
  • 安全管理

⭐️容器编排⭐️

Crane 提供了一个简单的 YAML 文件格式,用于定义容器编排方案,包括容器的镜像、端口映射、环境变量、数据卷等。

⭐️容器管理 ⭐️

Crane 可以通过命令行或 Web 界面对容器进行启动、停止、重启、删除等操作。

⭐️负载均衡⭐️

Crane 可以通过反向代理实现容器的负载均衡,支持多种负载均衡算法。

⭐️服务发现⭐️

Crane 支持通过 DNS 或 HTTP API 实现服务发现,支持自动注册和注销服务。

⭐️自动扩展⭐️

Crane 支持根据负载情况自动扩展容器实例数量,提高应用的可用性和性能。

⭐️日志管理⭐️

Crane 可以收集和管理容器的日志,支持将日志导出到外部存储系统。

⭐️安全管理⭐️

Crane 支持通过访问控制和安全加固等措施提高容器的安全性。

⭐️⭐️总结 ⭐️⭐️

总的来说,:

  • gocrane/Crane 提供了全面的云成本管理和优化功能,帮助我们在多云环境中实现更好的成本控制和效率提升。
  • 另外,与其他工具集成之后,Crane 也可以是一个功能强大的容器编排工具,可以帮助我们快速搭建和管理容器化应用。

下面是功能介绍示意图:

2.5 项目架构

项目架构图如下所示:

核心组件介绍

核心组件有:

  • Craned
  • Fadvisor
  • Metric Adapter
  • Crane Agent

⭐️Craned ⭐️

Craned 是 Crane 的最核心组件,它管理了 CRDs 的生命周期以及API。

Craned 通过 Deployment 方式部署且由两个容器组成:

  • Craned: 运行了 Operators 用来管理 CRDs,向 Dashboard 提供了 WebApi,Predictors 提供了 TimeSeries API
  • Dashboard: 基于 TDesign's Starter 脚手架研发的前端项目,提供了易于上手的产品功能

⭐️Fadvisor⭐️

Fadvisor 提供一组 Exporter 计算集群云资源的计费和账单数据并存储到我们的监控系统,比如 Prometheus。

Fadvisor 通过 Cloud Provider 支持了多云计费的 API。

⭐️Metric Adapter⭐️

Metric Adapter 实现了一个 Custom Metric Apiserver. Metric Adapter 读取 CRDs 信息并提供基于 Custom/External Metric API 的 HPA Metric 的数据。

⭐️Crane Agent⭐️

是一个用于在 Kubernetes 集群中管理 Docker 镜像的工具

通过 DaemonSet 部署在集群的节点上。

  2.5 开源地址

项目GitHub地址:gocrane/crane

3 实战演练 

环境要求

  • kubectl
  • Kubernetes 1.18+
  • Helm 3.1.0
  • Kind 0.16+

需要先安装k8s、docker相关,具体步骤:

  1. 安装 kubectl
  2. 安装 Helm
  3. 安装 kind
  4. 安装 Docker
  5. 安装Crane

3.1 安装kubectl

今天主要讲解crane,k8s的详细安装步骤就不展开说了,可参考官方安装步骤,链接如下:

安装工具 | Kubernetes

3.2 安装 Helm

我使用的是在线安装,步骤较简单,这里介绍下吧。

步骤如下:

除了通过官方的二进制安装包来安装 Helm 之外,还可以使用包管理器在 Linux 上在线安装 Helm。以下是在 CentOS/RHEL 系统上使用 yum 包管理器安装 Helm 的步骤:

  1. 添加 Helm 官方存储库到 yum 包管理器的源列表中:

    sudo rpm --import https://baltocdn.com/helm/signing.asc
    sudo tee /etc/yum.repos.d/helm-stable.repo <<EOF
    [helm-stable]
    name=Helm Stable
    baseurl=https://baltocdn.com/helm/stable/rhel/7/\$basearch
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://baltocdn.com/helm/signing.asc
    EOF
    ````
    
    
  2. 更新 yum 包管理器的索引:

    sudo yum update
  3. 安装 Helm:

    sudo yum install helm
    
  4. 验证 Helm 是否安装成功:

    helm version
    

如果没有任何错误信息,显示出版本,说明 Helm 安装成功。

这是helm的官方,有兴趣的可以看下:Helm

3.3 安装 kind

简单介绍下:

Kind(Kubernetes IN Docker)是一个用于在本地环境中快速创建 Kubernetes 集群的工具。它使用 Docker 作为底层虚拟化技术,可以在一台主机上创建一个或多个 Kubernetes 集群

这些集群可以用于开发、测试或演示等用途。

安装kind,可以参考官方地址kind – Quick Start

brew install kind

结果

3.4 安装 Docker

安装docke比较简单,可以本地创建一个install-docker.sh,复制下面的内容,

curl -sSL https://get.daocloud.io/docker | sh

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.15.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

sudo systemctl start docker
sudo systemctl enable docker

docker -v

docker-compose -v

然后执行

sh install-docker.sh

 就可以一键安装docker+docker-compose,如果不想要docker-compose,直接删除相关内容就行了

​​​​​3.5 安装Crane⭐️⭐️⭐️

⭐️⭐️⭐️来到了重头戏,安装Crane!!!⭐️⭐️⭐️

1 安装 Crane 以及其依赖  

安装 Crane 以及其依赖 (Prometheus/Grafana). 

curl -sf https://raw.githubusercontent.com/gocrane/crane/main/hack/local-env-setup.sh | sh -

如果上面安装命令报网络错误,可以用本地的安装包执行安装,在命令行中执行以下安装命令:

必须在 installation 的上级目录例如:预设好的 training 跟目录中执行


# Mac/Linux
bash installation/local-env-setup.sh

3 查看deploy 

 执行命令,查看deploy

get deploy -n crane-system

4 查看pod

执行命令

kubectl get pos -n crane-system

5 查看svc 

执行命令:

kubectl get svc -n crane-system

6 查看

执行命令:

kubectl get recommendations -A

3.6 展示界面

1 添加集群

 2 查看资源推荐

点击左边导航栏--成本分析-->资源推荐

4 总结&建议

总结

整体体验下来,gocrane/Crane 是一个功能丰富、易于使用的管理工具,总结一下,具有以下几个特点:

  1. 简单易用:有简单易用的用户界面和命令行界面,可以方便地监控和管理云资源的使用情况和成本。

  2. 实时监控:它能够实时监控云资源的使用情况和成本,可以及时发现资源浪费和成本异常的情况。

  3. 自动化管理:它提供了自动化管理的功能,例如自动化资源调度和分配,可以帮助用户优化资源使用和降低成本。

  4. 可视化分析:有可视化分析功能,可以直观地了解云资源的使用情况和成本

  5. 安全性:通过加密数据传输和存储等方式来保护数据的安全

建议 

gocrane/Crane 是一个有潜力的云成本管理工具,未来建议可以通过以下几个方面的发展来提高自身竞争力和用户体验:

  • 增强可视化功能
  • 增强自动化功能
  • 提供更多的 API 和插件
  • 强化成本优化

增强可视化功能 

在用户界面方面,目前展示形式有些单调,gocrane/Crane 可以考虑增强可视化功能。

例如提供更多的图表和数据可视化工具,以便用户更直观地了解云资源的使用情况和成本。

增强自动化功能

自动化是云成本管理工具的重要功能之一,如果想要很好的发展,这一块肯定要进一步强化。

因此可以考虑继续增强自动化功能,例如自动化容器调度和资源分配等

提供更多的 API 和插件 

目前gocrane/Crane 提供的插件有:

  • RESTful API
  • Prometheus 插件
  • Slack 插件
  • Alertmanager 插件
  • 数据库插件
  • Webhook 插件

当然,官方也在不断更新和完善中……

可以考虑提供更多的 API 和插件,以便用户可以自定义和扩展工具的功能和使用方式。比如:

  • GitLab CI/CD 插件
  • Elasticsearch 插件
  • Jira 插件

等等,主要看gocrane/Crane的未来发展规划吧

总之,上述建议仅代表个人观点,具体的发展,还是应该根据用户需求和市场趋势来确定工具的发展方向。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514296.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web前端面试题汇总大全 -- 持续更新!

文章目录 一、html 系列 ⭐⭐⭐⭐⭐1、H5新增特性和css3新增特性&#xff1f; 二、css 系列 ⭐⭐⭐⭐⭐1、BFC的理解&#xff1f;2、说说你对盒模型的理解&#xff1f;3、如何实现元素⽔平垂直居中&#xff1f;4、CSS如何画⼀个三⻆形&#xff1f;原理是什么&#xff1f;5、说说…

二分查找基础篇-JAVA

文章目录 前言 大家好,我是最爱吃兽奶,这篇博客给大家介绍一下二分查找,我们先从最基本的开始讲解,再慢慢深入,把优化和变形也和大家说一下,那么,跟着我的步伐,我们一起去看看吧! 一、什么是二分查找? 二分查找(Binary Search)也称作折半查找 二分查找的效率很高,每查找一次…

Adam优化器及其变种的原理

本文将从SGD开始介绍Adam优化器的原理以及其变种的提出背景。 1、SGD的原理 SGD&#xff08;随机梯度下降法&#xff09;是基于最速梯度下降法的原理&#xff0c;假设我们存在损失函数&#xff0c;其中是要学习参数&#xff0c;定义如下的优化路径&#xff0c;使得损失函数值最…

Ray使用案例

Ray Use Cases Ray用例 本页索引了用于扩展ML的常见Ray用例。它包含了对博客、例子和教程的突出引用,也位于Ray文档的其他地方。 大型语言模型和生成型人工智能 大型语言模型(LLMs)和生成性人工智能正在迅速改变行业,并以惊人的速度要求计算。Ray为这些模型的扩展提供了…

我让ChatGPT用CSS3画一个皮卡丘,还是自己画的可爱

突然想到了小时候看过的动画片《皮卡丘》&#xff0c;于是突然就想&#xff0c;ChatGPT肯定也看过&#xff0c;他哪有不知道的东西啊&#xff0c;于是就想着让他帮我画一个&#xff0c;他画出来之后&#xff0c;我笑了&#xff0c;这啥玩意儿啊。 目录 一、第一次尝试让ChatGP…

智安网络|怎么预防大大小小的网络入侵及信息泄露?五招值得收藏

网络安全是一个涵盖广泛、变幻多端的领域。网络风险防范需要多种措施&#xff0c;从教育人员如何正确处理机密信息到定期检查系统的安全性。 在现代网络环境下&#xff0c;网络安全成为防护重点&#xff0c;网络环境下出现的安全隐患可能会直接影响业务&#xff0c;甚至生命财…

【fiddler+burp+雷神模拟器联动抓包】

0x00 常用抓包工具 常用的抓包工具​有fiddler、wireshark、httpwatch、 firebug、F12/等。抓包抓的是协议&#xff0c;fiddler抓的是HTTP、HTTPS协议&#xff0c;wireshark抓的是其他协议。fiddler、wireshark可以修改接口的参数和返回值&#xff0c;常用的F12调试工具只可以…

npm 知识点

1 ~会匹配最近的小版本依赖包&#xff0c;比如~1.1.3会匹配所有1.1.x版本&#xff0c;但是不包括1.2.0 ^会匹配最新的大版本依赖包&#xff0c;比如^1.3.4会匹配所有1.x.x的包&#xff0c;包括1.3.4&#xff0c;但是不包括2.0.0 *会匹配最新版本 2 ant-design/pro-table 前面…

EndNote X9 引用参考 单击文献编号,不能跳转到文尾文献列表处,咋解决?文献编号 不能跳转 ,怎么办?

文章目录 1 正常情况下 引用文献编号 是可以跳转的2 问题分析3 解决方法4 EndNote X9 插入参考文献常见问题总结5 EndNote X9 快速上手教程&#xff08;毕业论文参考文献管理器&#xff09; 1 正常情况下 引用文献编号 是可以跳转的 正确的插入文献后&#xff0c; 正常情况下&a…

公告 | FISCO BCOS v3.3.0发布,新增块内分片技术,单链性能突破10万TPS

FISCO BCOS开源社区一贯秉承开源、开放、联合共建的原则&#xff0c;致力于链接社区力量将FISCO BCOS打造成更加完美的区块链底层平台。 在社区通力协作下&#xff0c;FISCO BCOS v3.3.0已经发布&#xff0c;块内分片作为本次更新的核心亮点&#xff0c;实现了应用间交易执行的…

PyMuPDF pdf神奇处理工具

可将pdf转图片&#xff0c;图片转pdf&#xff0c;可拼接pdf&#xff0c;可提取固定的内容。 详细参考下面文章&#xff1a; PyMuPDF关键字标注&#xff1a;https://www.cnpython.com/qa/1436855 PyMuPDF去水印&#xff1a;https://sunnysab.cn/2022/06/29/Clean-Watermarks-…

BlockingQueue(阻塞队列)基本使用指南

概述 BlockingQueue 是 java.util.concurrent 包提供的用于解决并发生产者 - 消费者问题的最有用的类。 BlockingQueue 的特性是在任意时刻只有一个线程可以进行 take 或者 put 操作&#xff0c;并且 BlockingQueue 提供了超时 return null 的机制&#xff0c;在许多生产场景…

哪些行业适合开发微信小程序?

随着电子商务的进一步发展&#xff0c;很多行业都开始开发自己的系统软件&#xff0c;企图通过线上线下结合的方式来达到更好的宣传效果&#xff0c;拓客引流。微信小程序凭借成本低、使用方便等优点成为很多商家的首选。那么究竟哪些行业适合开发微信小程序呢&#xff1f; …

springboot项目,localhost:port 可以访问,但是外网IP:port不行

springboot 项目启动后&#xff0c;localhost:port 可以访问&#xff0c;但是外网IP:port不行 现象原因及解决方法解决方法&#xff1a;规则1&#xff1a;规则2&#xff1a;规则3&#xff1a; 现象 springboot项目&#xff0c;localhost:port 可以访问&#xff0c;但是外网IP:…

Java多线程基础-9:代码案例之阻塞队列

阻塞队列是一种特殊的队列&#xff0c;带有“阻塞特性”&#xff0c;也遵守队列 “先进先出” 的原则。阻塞队列是一种线程安全的数据结构&#xff0c;并且具有以下特性&#xff1a; 当队列满时&#xff0c;继续入队列就会阻塞&#xff0c;直到有其他线程从队列中取走元素。当…

协程Flow原理

什么是Flow Flow直译过来就是“流”的意思&#xff0c;也就是将我们我们任务如同水流一样一步一步分割做处理。想象一下&#xff0c;现在有一个任务需要从山里取水来用你需要怎么做&#xff1f; 扛上扁担走几十里山路把水挑回来。简单粗暴&#xff0c;但是有可能当你走了几十…

Java项目经验二:二手车系统

1、项目简介 开发环境&#xff1a;IDEA MySQL JDK1.8 Git Maven 使用技术&#xff1a;Spring Cloud Mybatis Plus MySQL RocketMQ Nginx Nacos Redis MongoDB ElasticSearch Shiro 项目描述&#xff1a; XX二手车的服务贯穿二手车交易各个环节&#xff0c;运用成熟…

穿越数据智能“海峡”,企业更需要什么样的数智底座?

导读&#xff1a;更懂业务&#xff0c;是用友iuap数智中台多年打磨的核心能力。 如果将数智化转型比作企业的大航海旅程&#xff0c;数据和智能就像是大航海过程中企业必须穿越的海峡。随着数智化转型的不断深入&#xff0c;很多企业驶进数据智能海峡后发现&#xff0c;要用好数…

外观数列、文本左右对齐----2023/5/11

外观数列----2023/5/11 给定一个正整数 n &#xff0c;输出外观数列的第 n 项。 「外观数列」是一个整数序列&#xff0c;从数字 1 开始&#xff0c;序列中的每一项都是对前一项的描述。 你可以将其视作是由递归公式定义的数字字符串序列&#xff1a; countAndSay(1) “1”…

分享两款好用的软件

软件一&#xff1a;去水印神器——Inpaint Inpaint是一款功能强大的图像处理软件&#xff0c;它的主要功能是去除图片中的水印。除此之外&#xff0c;它还可以帮助用户修复照片中的缺陷&#xff0c;例如划痕、斑点、红眼等&#xff0c;删除照片中的不必要的元素&#xff0c;例…