前言:
有幸參加了騰訊云Finops Crane 集訓(xùn)營(yíng),學(xué)到了很多東西,現(xiàn)在將內(nèi)容分享給大家。
Finops Crane :是一個(gè)基于 FinOps 的云資源分析與成本優(yōu)化平臺(tái)。
它的目標(biāo)是希望在保證客戶應(yīng)用運(yùn)行質(zhì)量的前提下,實(shí)現(xiàn)極致的降本。
今天學(xué)習(xí)一下相關(guān)的內(nèi)容
文章標(biāo)記顏色說明:
- 黃色:重要標(biāo)題
- 紅色:用來標(biāo)記結(jié)論
- 綠色:用來標(biāo)記一級(jí)論點(diǎn)
- 藍(lán)色:用來標(biāo)記二級(jí)論點(diǎn)
1 問題思考
我們先思考兩個(gè)問題
- 什么是云成本
- 上云之后,如何管理服務(wù)器以及控制云成本
隨著云計(jì)算的普及,越來越多的企業(yè)開始將其業(yè)務(wù)遷移到云上。 那如何控制云成本,就成了一個(gè)需要關(guān)注的問題。
云成本:是指企業(yè)使用云計(jì)算服務(wù)所需支付的費(fèi)用
云成本類型:
計(jì)算資源成本:虛擬機(jī)、容器、數(shù)據(jù)庫等計(jì)算資源的使用費(fèi)用。
存儲(chǔ)資源成本:云存儲(chǔ)、備份和恢復(fù)服務(wù)等存儲(chǔ)資源的使用費(fèi)用。
網(wǎng)絡(luò)資源成本:云內(nèi)網(wǎng)絡(luò)、云間網(wǎng)絡(luò)、公網(wǎng)網(wǎng)絡(luò)等網(wǎng)絡(luò)資源的使用費(fèi)用。
應(yīng)用程序成本:云應(yīng)用程序的使用費(fèi)用。
其他雜項(xiàng)成本:安全服務(wù)、支持和維護(hù)服務(wù)等其他費(fèi)用。
那下一步就需要思考下面這個(gè)問題了。
從上面成本類型可以看出來,云計(jì)算的成本比傳統(tǒng)的 IT 環(huán)境更加復(fù)雜和難以管理,因?yàn)樗婕?span style="background-color:#38d8f0;">很多種不同的服務(wù)、資源和計(jì)費(fèi)模式。
這也讓我們很難準(zhǔn)確地估算和控制云計(jì)算的成本,從而導(dǎo)致了高昂的費(fèi)用支出。
為了解決這個(gè)問題,云成本管理工具就出現(xiàn)了。
開源社區(qū)、一些組織開始開發(fā)和維護(hù)一些成本管理工具,以幫助企業(yè)更好地管理其云計(jì)算成本。
這些工具可以幫助企業(yè)實(shí)時(shí)監(jiān)控其云資源的使用情況,識(shí)別出潛在的成本問題,并提供優(yōu)化建議,從而幫助企業(yè)降低云計(jì)算的成本。
同時(shí),這些工具還可以幫助企業(yè)了解其在不同云服務(wù)提供商之間的成本差異,從而更好地制定云戰(zhàn)略和預(yù)算計(jì)劃。
云成本管理工具開源項(xiàng)目
以下是幾個(gè)開源的云成本管理工具項(xiàng)目:
FinOps?Crane:一個(gè)開源的云成本管理工具,是一個(gè)基于 FinOps 的云資源分析與成本優(yōu)化平臺(tái)。
Cloud Custodian:是一個(gè)開源的云成本管理和資源優(yōu)化工具,可以自動(dòng)化云資源管理和成本優(yōu)化。
Costimator:一個(gè)開源的云成本管理工具,可以實(shí)時(shí)跟蹤和分析在云中的成本。
Kubecost:一個(gè)開源的Kubernetes成本和性能管理工具,側(cè)重于表達(dá)服務(wù)在Kubernetes上的成本和性能。
CostModel:一個(gè)開源的云成本建模工具,可以建立云中的成本模型,實(shí)現(xiàn)更好的成本管理和優(yōu)化。
這些開源的云成本管理工具,可以更好管理在云中的資源使用和成本,提供:
- 實(shí)時(shí)的成本分析
- 預(yù)算管理
- 資源利用率分析
等功能,從而更好地控制云服務(wù)成本。
今天我們?cè)敿?xì)學(xué)習(xí)一下FinOps Crane
2 FinOps Crane介紹
2.1 什么是FinOps
先簡(jiǎn)單了解一下:什么是FinOps
FinOps(Financial Operations)是一種管理云計(jì)算成本的方法論,它主要是希望可以幫助企業(yè)更好地了解他們?cè)谠浦惺褂觅Y源的成本,并優(yōu)化他們的支出。
FinOps 方法論強(qiáng)調(diào)將云計(jì)算成本視為一個(gè)團(tuán)隊(duì)的責(zé)任,而不僅僅是財(cái)務(wù)或 IT 部門的責(zé)任。
FinOps 的目標(biāo)是讓組織在云中獲得更好的價(jià)值,同時(shí)控制成本。為了實(shí)現(xiàn)這一目標(biāo),提出了一系列最佳實(shí)踐,其中有:
成本意識(shí)
成本可見性
成本優(yōu)化
成本控制
成本預(yù)測(cè)
FinOps Crane,就是在這一套理論的前提下,被提出來的。
它的目標(biāo)也與FinOps高度相似,都是希望可以幫助組織更好地管理云計(jì)算成本,提高云資源的利用率和效率,從而實(shí)現(xiàn)更好的業(yè)務(wù)結(jié)果。
2.2?主要功能
?Crane 它本身是一種云成本管理工具。與?Kubernetes /其他工具,集成之后就是一種容器編排的開源工具,
?云成本管理工具
作為一個(gè)云成本管理工具,它主要用于幫助用戶在多云環(huán)境中進(jìn)行成本管理和優(yōu)化。
其主要功能包括:
- 成本可視化
- 成本分析
- 預(yù)算和警報(bào)
- 自動(dòng)化優(yōu)化
- 多云管理
??成本可視化??
Crane 提供了可視化的儀表板,我們可以直觀地了解多個(gè)云平臺(tái)上的成本和使用情況。
??成本分析??
Crane 可以對(duì)多個(gè)云平臺(tái)的賬戶成本進(jìn)行深入分析,幫助我們找出成本高昂的資源和服務(wù),并提供優(yōu)化建議。
??預(yù)算和警報(bào)??
Crane 支持設(shè)置預(yù)算和警報(bào),讓我們能夠及時(shí)獲知其成本超支情況,并采取相應(yīng)的措施。
??自動(dòng)化優(yōu)化??
Crane 可以自動(dòng)識(shí)別并優(yōu)化云環(huán)境中的資源和服務(wù),以降低成本并提高效率。
例如,它可以根據(jù)實(shí)際使用情況自動(dòng)調(diào)整計(jì)算資源的規(guī)模,比如有的使用多,就會(huì)自動(dòng)去調(diào)整增加,從而確保我們服務(wù)器最佳性能和最低成本。
??多云管理??
Crane 可以管理多個(gè)云平臺(tái)的賬戶和資源,如果在多個(gè)云廠商都有部署,就十分方便。
它為我們提供一站式的云成本管理解決方案。
容器編排工具?
與?Kubernetes 集成之后,作為容器編排工具,它主要用于管理和協(xié)調(diào) Docker 容器和 Kubernetes pod。
其主要功能包括:
- 容器編排
- 容器管理
- 負(fù)載均衡
- 服務(wù)發(fā)現(xiàn)
- 自動(dòng)擴(kuò)展
- 日志管理
- 安全管理
??容器編排??
Crane 提供了一個(gè)簡(jiǎn)單的 YAML 文件格式,用于定義容器編排方案,包括容器的鏡像、端口映射、環(huán)境變量、數(shù)據(jù)卷等。
??容器管理???
Crane 可以通過命令行或 Web 界面對(duì)容器進(jìn)行啟動(dòng)、停止、重啟、刪除等操作。
??負(fù)載均衡??
Crane 可以通過反向代理實(shí)現(xiàn)容器的負(fù)載均衡,支持多種負(fù)載均衡算法。
??服務(wù)發(fā)現(xiàn)??
Crane 支持通過 DNS 或 HTTP API 實(shí)現(xiàn)服務(wù)發(fā)現(xiàn),支持自動(dòng)注冊(cè)和注銷服務(wù)。
??自動(dòng)擴(kuò)展??
Crane 支持根據(jù)負(fù)載情況自動(dòng)擴(kuò)展容器實(shí)例數(shù)量,提高應(yīng)用的可用性和性能。
??日志管理??
Crane 可以收集和管理容器的日志,支持將日志導(dǎo)出到外部存儲(chǔ)系統(tǒng)。
??安全管理??
Crane 支持通過訪問控制和安全加固等措施提高容器的安全性。
????總結(jié)?????
總的來說,:
- gocrane/Crane 提供了全面的云成本管理和優(yōu)化功能,幫助我們?cè)诙嘣骗h(huán)境中實(shí)現(xiàn)更好的成本控制和效率提升。
- 另外,與其他工具集成之后,Crane 也可以是一個(gè)功能強(qiáng)大的容器編排工具,可以幫助我們快速搭建和管理容器化應(yīng)用。
下面是功能介紹示意圖:
2.5?項(xiàng)目架構(gòu)
項(xiàng)目架構(gòu)圖如下所示:
核心組件介紹
核心組件有:
- Craned
- Fadvisor
- Metric Adapter
- Crane Agent
??Craned???
Craned 是 Crane 的最核心組件,它管理了 CRDs 的生命周期以及API。
Craned 通過?
Deployment
?方式部署且由兩個(gè)容器組成:
- Craned: 運(yùn)行了 Operators 用來管理 CRDs,向 Dashboard 提供了 WebApi,Predictors 提供了 TimeSeries API
- Dashboard: 基于 TDesign's Starter 腳手架研發(fā)的前端項(xiàng)目,提供了易于上手的產(chǎn)品功能
??Fadvisor??
Fadvisor 提供一組 Exporter 計(jì)算集群云資源的計(jì)費(fèi)和賬單數(shù)據(jù)并存儲(chǔ)到我們的監(jiān)控系統(tǒng),比如 Prometheus。
Fadvisor 通過?
Cloud Provider
?支持了多云計(jì)費(fèi)的 API。
??Metric Adapter??
Metric Adapter 實(shí)現(xiàn)了一個(gè)?
Custom Metric Apiserver
. Metric Adapter 讀取 CRDs 信息并提供基于?Custom/External Metric API
?的 HPA Metric 的數(shù)據(jù)。
??Crane Agent??
是一個(gè)用于在 Kubernetes 集群中管理 Docker 鏡像的工具
通過?
DaemonSet
?部署在集群的節(jié)點(diǎn)上。
??2.5?開源地址
項(xiàng)目GitHub地址:gocrane/crane
3 實(shí)戰(zhàn)演練?
環(huán)境要求
- kubectl
- Kubernetes 1.18+
- Helm 3.1.0
- Kind 0.16+
需要先安裝k8s、docker相關(guān),具體步驟:
- 安裝 kubectl
- 安裝 Helm
- 安裝 kind
- 安裝 Docker
- 安裝Crane
3.1 安裝kubectl
今天主要講解crane,k8s的詳細(xì)安裝步驟就不展開說了,可參考官方安裝步驟,鏈接如下:
安裝工具 | Kubernetes
3.2 安裝 Helm
我使用的是在線安裝,步驟較簡(jiǎn)單,這里介紹下吧。
步驟如下:
除了通過官方的二進(jìn)制安裝包來安裝 Helm 之外,還可以使用包管理器在 Linux 上在線安裝 Helm。以下是在 CentOS/RHEL 系統(tǒng)上使用 yum 包管理器安裝 Helm 的步驟:
添加 Helm 官方存儲(chǔ)庫到 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 ````
更新 yum 包管理器的索引:
sudo yum update
安裝 Helm:
sudo yum install helm
驗(yàn)證 Helm 是否安裝成功:
helm version
如果沒有任何錯(cuò)誤信息,顯示出版本,說明 Helm 安裝成功。
這是helm的官方,有興趣的可以看下:Helm
3.3 安裝 kind
簡(jiǎn)單介紹下:
Kind(Kubernetes IN Docker)是一個(gè)用于在本地環(huán)境中快速創(chuàng)建 Kubernetes 集群的工具。它使用 Docker 作為底層虛擬化技術(shù),可以在一臺(tái)主機(jī)上創(chuàng)建一個(gè)或多個(gè) Kubernetes 集群,
這些集群可以用于開發(fā)、測(cè)試或演示等用途。
安裝kind,可以參考官方地址:kind – Quick Start
brew install kind
結(jié)果
3.4 安裝 Docker
安裝docke比較簡(jiǎn)單,可以本地創(chuàng)建一個(gè)install-docker.sh,復(fù)制下面的內(nèi)容,
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
然后執(zhí)行
sh install-docker.sh
?就可以一鍵安裝docker+docker-compose,如果不想要docker-compose,直接刪除相關(guān)內(nèi)容就行了
?????3.5 安裝Crane??????
??????來到了重頭戲,安裝Crane?。。?/span>??????
1 安裝 Crane 以及其依賴 ?
安裝 Crane 以及其依賴 (Prometheus/Grafana).?
curl -sf https://raw.githubusercontent.com/gocrane/crane/main/hack/local-env-setup.sh | sh -
如果上面安裝命令報(bào)網(wǎng)絡(luò)錯(cuò)誤,可以用本地的安裝包執(zhí)行安裝,在命令行中執(zhí)行以下安裝命令:
必須在 installation 的上級(jí)目錄例如:預(yù)設(shè)好的 training 跟目錄中執(zhí)行
# Mac/Linux bash installation/local-env-setup.sh
3 查看deploy?
?執(zhí)行命令,查看deploy
get deploy -n crane-system
4 查看pod
執(zhí)行命令
kubectl get pos -n crane-system
5 查看svc?
執(zhí)行命令:
kubectl get svc -n crane-system
6 查看
執(zhí)行命令:
kubectl get recommendations -A
3.6 展示界面
1 添加集群
?2 查看資源推薦
點(diǎn)擊左邊導(dǎo)航欄--成本分析-->資源推薦
4 總結(jié)&建議
總結(jié)
整體體驗(yàn)下來,gocrane/Crane 是一個(gè)功能豐富、易于使用的管理工具,總結(jié)一下,具有以下幾個(gè)特點(diǎn):
簡(jiǎn)單易用:有簡(jiǎn)單易用的用戶界面和命令行界面,可以方便地監(jiān)控和管理云資源的使用情況和成本。
實(shí)時(shí)監(jiān)控:它能夠實(shí)時(shí)監(jiān)控云資源的使用情況和成本,可以及時(shí)發(fā)現(xiàn)資源浪費(fèi)和成本異常的情況。
自動(dòng)化管理:它提供了自動(dòng)化管理的功能,例如自動(dòng)化資源調(diào)度和分配,可以幫助用戶優(yōu)化資源使用和降低成本。
可視化分析:有可視化分析功能,可以直觀地了解云資源的使用情況和成本。
安全性:通過加密數(shù)據(jù)傳輸和存儲(chǔ)等方式來保護(hù)數(shù)據(jù)的安全
建議?
gocrane/Crane 是一個(gè)有潛力的云成本管理工具,未來建議可以通過以下幾個(gè)方面的發(fā)展來提高自身競(jìng)爭(zhēng)力和用戶體驗(yàn):
- 增強(qiáng)可視化功能
- 增強(qiáng)自動(dòng)化功能
- 提供更多的 API 和插件
- 強(qiáng)化成本優(yōu)化
增強(qiáng)可視化功能?
在用戶界面方面,目前展示形式有些單調(diào),gocrane/Crane 可以考慮增強(qiáng)可視化功能。
例如提供更多的圖表和數(shù)據(jù)可視化工具,以便用戶更直觀地了解云資源的使用情況和成本。
增強(qiáng)自動(dòng)化功能
自動(dòng)化是云成本管理工具的重要功能之一,如果想要很好的發(fā)展,這一塊肯定要進(jìn)一步強(qiáng)化。
因此可以考慮繼續(xù)增強(qiáng)自動(dòng)化功能,例如自動(dòng)化容器調(diào)度和資源分配等。
提供更多的 API 和插件?
目前gocrane/Crane 提供的插件有:
- RESTful API
- Prometheus 插件
- Slack 插件
- Alertmanager 插件
- 數(shù)據(jù)庫插件
- Webhook 插件
當(dāng)然,官方也在不斷更新和完善中……
可以考慮提供更多的 API 和插件,以便用戶可以自定義和擴(kuò)展工具的功能和使用方式。比如:
- GitLab CI/CD 插件
- Elasticsearch 插件
- Jira 插件
等等,主要看gocrane/Crane的未來發(fā)展規(guī)劃吧文章來源:http://www.zghlxwxcb.cn/news/detail-455231.html
總之,上述建議僅代表個(gè)人觀點(diǎn),具體的發(fā)展,還是應(yīng)該根據(jù)用戶需求和市場(chǎng)趨勢(shì)來確定工具的發(fā)展方向。文章來源地址http://www.zghlxwxcb.cn/news/detail-455231.html
到了這里,關(guān)于【騰訊云FinOps Crane 集訓(xùn)營(yíng)】初識(shí) FinOps Crane的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!