華為云云原生FinOps透過視覺化的成本洞察和成本最佳化,幫助使用者精細用雲以提升單位成本的資源利用率,實現降本增效目標
企業上雲現狀:上雲趨勢持續加深,但云上開支存在顯著浪費
根據Flexer 2024年最新的一項調查顯示,當前有超過70%的企業重度使用雲服務,而這個資料去年是65%。由此可見,越來越多的企業開始把業務部署在雲上。企業在使用雲廠商提供的雲服務的同時,也在為雲服務的花費買單。調查顯示,平均大約有30%的雲成本支出被認為是無效支出。如何節省雲成本支出成為近幾年上雲企業最關心的Top1問題。
企業雲原生化逐步深入,成本治理依然存在挑戰
雲原生技術當前已經成為很多企業進行數字化轉型的主流方式。kubernetes提供的資源共享、資源隔離、彈性排程等能力,本身能夠幫助企業提升資源使用率,降低企業IT成本。然而,2021年CNCF《FinOps Kubernetes Report》的調研報告顯示,遷移至Kubernetes平臺後,68%的受訪者表示所在企業計算資源成本有所增加,36%的受訪者表示成本飆升超過20%。其背後的原因值得深思。
雲原生時代成本治理面對的挑戰
雲原生時代成本治理有四個矛盾點:
- 業務單元 VS 計費單元:一般雲服務(比如ECS)的計費週期比較長,可能是包月或者包年;而云原生容器的生命週期相對比較短暫,容器的彈性伸縮、故障重啟等動作,都有可能導致資源的閒置率比較高。
- 容量規劃 VS 資源供給:容量規劃一般是靜態的,一般是按照預算或者規劃提前準備容器,而資源供給是業務來驅動。業務的高峰流量衝擊,升級擴容等場景,都會對容量規劃造成很大的挑戰。
- 統一治理 VS 多雲部署:現在很多企業使用了不止一朵雲,不同的雲廠商的賬單介面和格式都不一樣,不利於企業的多雲統一成本治理。
- 成本模型 VS 雲原生架構:雲廠商的成本模型相對比較簡單,一般是按照物理資源來計費,比如ECS服務是以整機的價格來計費。雲原生架構以應用為中心,資源的申請細化到CPU/記憶體等粒度。這就導致雲原生場景成本視覺化和成本分析比較困難。
總結下來,雲原生成本治理面臨三大挑戰:
成本洞察:雲原生場景如何實現成本視覺化,如何快速定位成本問題、識別資源浪費?
成本最佳化:雲原生成本最佳化的手段很多,如何採用合適的成本最佳化手段來實現收益最大化?
成本運營:企業如何構建可持續的成本治理體系與文化?
華為云云原生FinOps解決方案
FinOps 是一門將財務管理原則與雲工程和運營相結合的學科,它使組織更好地瞭解其雲支出。 它還能夠幫助他們就如何分配和管理雲成本做出明智的決策。 FinOps 的目標不是節省資金,而是透過雲實現最大化的收入或業務價值。 它有助於組織控制雲支出,同時保持支援其業務運營所需的效能、可靠性和安全性級別。
FinOps Foundation 將 FinOps 定義為三個階段:通知、最佳化和運營。根據每個團隊或企業完成 FinOps 的進度,公司可能會同時處於多個階段。
通知(成本洞察):通知是 FinOps 框架的第一階段。這一階段旨在為所有利益相關者提供所需的資訊,以便於他們瞭解情況,從而做出有關雲使用的經濟高效的明智決策。
成本最佳化:成本最佳化重點是想方設法節約成本。根據當前使用情況,您的組織可以在哪些方面合理調整資源規模,並從折扣中受益?
成本運營:成本運營是 FinOps 框架的最後一個階段。在這一階段,組織會根據業務目標持續評估績效,然後想方設法改進 FinOps 實踐。最佳化工作到位後,組織可以藉助自動化來實施策略,在不影響效能的情況下不斷調整雲資源來控制成本。
華為云云原生FinOps解決方案,參照業界FinOps標準與最佳實踐,為使用者提供雲原生成本多維視覺化與多種成本最佳化治理手段,協助客戶最大化的收入或業務價值。
雲原生FinOps - 成本洞察
華為云云原生FinOps成本洞察,提供如下關鍵特性:
1、基於標籤的資源成本歸屬
支援ECS、EVS等資源關聯叢集標籤,便於叢集費用匯總計算
2、基於CBC賬單的精準成本計算
基於CBC真實賬單進行成本分攤計算,精準劃分部門成本
3、靈活的成本分攤策略
支援叢集、名稱空間、節點池、應用、自定義等多種維度的成本視覺化與成本分攤策略。
4、支援長期的成本資料儲存與檢索
最大支援長達2年的成本分析,支援月度,季度,年度報表及匯出。
5、工作負載快速感知,輕鬆應對快速彈性場景
針對應用快速彈性場景,支援分鐘級的負載發現與計費能力,讓所有成本無一遺漏。
雲原生成本洞察的實現機制介紹:
1、叢集物理資源成本 VS 叢集邏輯資源成本
叢集的成本可以從兩個角度來計算:
- 叢集物理資源成本,包括叢集直接或間接關聯的資源成本,比如叢集管理費、ECS成本、EVS成本等。叢集的物理資源成本可以從雲成本賬單中直觀的體現出來。
- 叢集邏輯資源成本,從kubernetes資源的角度,叢集的成本包括工作負載的成本,再加上叢集閒置資源成本和公共開銷成本。
不難看出,叢集物理資源成本=叢集邏輯資源成本。
2、單位資源(CPU/記憶體等)成本計算
在叢集的物理資源成本已知的情況下,如何推匯出叢集邏輯資源成本(如pod/工作負載),是雲原生FinOps成本洞察的關鍵。這裡核心要解決的問題是單位資源成本計算的問題。我們知道,一般的雲虛擬機器是按照整機的價格去售賣的,不會按照單位CPU或記憶體售賣。但是容器服務的資源佔用是按照單位資源(CPU或記憶體等)來申請的。所以必須計算出單位資源的成本,才能最終計算出容器服務佔用的成本。
一般雲廠商單位CPU或記憶體的價格會有一個估算值,我們也可以按照CPU和記憶體的成本佔比來計算單位資源成本。
3、雲原生資源成本計算
從下圖我們可以看出,一個Pod的資源使用是隨著時間動態波動。有些時刻Pod的資源佔用低於資源申請(Request),有些時刻Pod的資源佔用大於資源申請(Request)。在計算Pod成本時,我們會定時取樣Pod的實際使用值和Request值,並將實際使用值和Request值中的最大值用於Pod的成本計算。這是因為一旦Request值分配給Pod,那麼這不是資源會被K8S預留,不會被其他Pod搶佔。所有Pod需要為Request部門的資源買單。同理,如果Pod的實際使用量大於Request,那麼這個Pod也需要為超出的部分買單。
基於以上原理,我們就可以得出Pod的成本計算:
將名稱空間下所有的Pod成本累加,就可以得出名稱空間維度的成本:
基於以上計算邏輯,華為雲CCE雲原生成本治理特性實現了多種維度的叢集成本視覺化,比如:
叢集成本視覺化
名稱空間成本視覺化
節點池成本視覺化
工作負載成本視覺化
4、部門成本分攤與成本分析報表
很多企業會把一個叢集安裝名稱空間的粒度分配給不同的部門使用。那麼如何對各個部門的成本進行視覺化分析?
從上圖可以看出,部門的成本不僅包括部門歸屬的名稱空間的成本,還應該承擔一部分公共成本。這部分功能成本包括系統名稱空間成本和空閒資源成本。
華為雲CCE雲原生成本治理支援基於部門的成本分攤策略配置,如下圖所示:
同時,基於部門的成本分攤策略,華為雲CCE雲原生成本治理提供了月度/季度/年度報表功能,最大支援2年的報表查詢與匯出。
雲原生FinOps - 成本最佳化
雲原生場景如何提升資源利用率?
據 Gartner 統計,企業CPU平均使用率不足15%,造成資源利用率低的原因有多種,典型場景有:
• 資源配置不合理:部分使用者對於自己服務的資源使用情況不瞭解,申請資源時具有盲目性,通常申請過量資源
• 業務波峰波谷:微服務具有明顯日級別波峰、波谷特性,使用者為保證服務的效能和穩定性按照波峰申請資源
• 資源碎片化:不同業務部門資源池獨立,無法做到資源共享,容易產生資源碎片。
容器化能一定程度上提升資源利用率,但是存在部分問題單純依賴容器化無法得到有效解決:
• 資源過量申請:如果沒有有效的資源推薦和監控機制,普遍實踐還是是超額申請、積沙成塔造成資源浪費。
• 資源池統一:K8s原生排程器缺少組、佇列等高階排程能力;大資料業務存算一體難以利用容器彈性優勢。
• 應用效能:單純增加部署密度難以保證服務質量。
為了提升叢集資源利用率,CCE雲原生FinOps解決方案提供了多種最佳化手段,比如智慧應用資源規格推薦、雲原生混部、動態超賣等能力。
5、智慧應用資源規格推薦
為了保障應用效能和可靠性,同時由於缺乏足夠的視覺化工具,我們總是傾向為應用申請過量的資源。為了解決這一問題,CCE雲原生成本治理提供了智慧應用資源規格推薦功能。該功能基於應用的歷史畫像資料,基於機器學習演算法,為應用推薦最佳的申請值。
6、華為云云原生混部解決方案
華為雲CCE雲原生混部解決方案基於volcano外掛,支援一鍵部署,為容器業務提供高低優先順序混合部署,動態超賣,服務QoS保障等能力。關鍵能力主要包括:
- 容器業務優先順序與資源隔離
- 融合排程
- 應用SLO感知:多型別業務智慧混合排程,應用拓撲感知,分時複用,超賣等;
- 資源感知排程:提供CPU NUMA拓撲感知、IO感知、網路感知排程,軟硬協同,提升應用效能;
- 叢集資源規劃:提供佇列、公平、優先順序、預留、搶佔等豐富策略,統一滿足高優、低優業務;
- 節點QoS管理:多維度資源隔離、干擾檢查、驅逐機制。
下面重點介紹動態超賣特性:如何將節點閒置資源再利用,提升資源利用率。
動態超賣的核心原理為:將節點Request和實際使用量的差值部分,作為可排程資源,供排程器重新分配,僅供低優任務使用。
超賣特性有如下特點:
- 低於作業優先使用超賣資源
- 高優作業預選超賣節點時只能使用其非超賣資源
- 統一排程週期高優作業先於低優作業排程
不管是雲原生混部還是超賣特性,都可以提升資源利用率。那麼如何在提升資源利用率的同時,保障應用效能與服務質量?
華為HCE 2.0 OS提供的CPU隔離能力,結合CPU快速搶佔、SMT管理控制和離線任務壓制指令的負載均衡能力,保障線上業務資源QoS同時,也能讓被壓制的離線任務指令儘量快速得到響應。
根據實驗室中模擬線上和離線混部場景(CPU利用率70+%)與單獨業務部署線上的場景(CPU利用率30%)進行效能對比,混部場景中線上業務的效能(時延&吞吐)劣化幅度控制在單獨部署線上業務效能的5%之內。基本可以認為把混部對效能的影響降低到可以忽略不計。
下面我們來看一個客戶案例,該客戶利用華為云云原生混部解決方案,最佳化資源配置,最終實現35%的資源利用率提升。
該客戶的主要痛點包括:
- 應用干擾:大資料與線上語音、推薦等應用爭搶資源,e.g. cpu/memory,網路;影響高優任務服務質量。
- 應用資源配置不合理:為了保證排程成功,request設定很小,不能反饋負載資源需求,引發資源衝突
- 應用綁核:部分應用綁核,總體資源利用率低
基於客戶痛點,我們為客戶提供如下解決方案:
- 客戶將原來節點OS由CentOS切換至華為雲HCE OS;
- 將排程器由原來基於預設排程器切換至Volcano排程器;
- 根據客戶業務屬性,配置排程優先順序、隔離等等策略;
透過華為云云原生混部解決方案,最終為客戶帶來資源利用率提升35%的收益。
7、CCE Autopilot:按需付費與靈活規格助力客戶節約成本
CCE全新推出的Autopilot叢集,支援按照應用的實際用量按需付費,相對於CCE叢集的優勢是Autopilot叢集將節點的管理運維完全託管起來,這樣您無需提前規劃和購買節點資源,從而實現精細化的成本治理。
這裡我們看兩個客戶場景:
- 網際網路文娛和社交業務,春節假期期間流量是平時的數倍,專項跟蹤運維保障,提前預留資源,成本巨大。
- 網約車平臺,業務具有典型的早晚高峰特點,傳統駕駛模式需要客戶手動購買和提前預留資源,資源利用率低。
透過Autopilot可以實現成本精細化治理,最終實現整體成本降低與收益最大化。
點選關注,第一時間瞭解華為雲新鮮技術~