華為云云原生FinOps解決方案,釋放雲原生最大價值

华为云开发者联盟發表於2024-04-29

華為云云原生FinOps透過視覺化的成本洞察和成本最佳化,幫助使用者精細用雲以提升單位成本的資源利用率,實現降本增效目標

企業上雲現狀:上雲趨勢持續加深,但云上開支存在顯著浪費

根據Flexer 2024年最新的一項調查顯示,當前有超過70%的企業重度使用雲服務,而這個資料去年是65%。由此可見,越來越多的企業開始把業務部署在雲上。企業在使用雲廠商提供的雲服務的同時,也在為雲服務的花費買單。調查顯示,平均大約有30%的雲成本支出被認為是無效支出。如何節省雲成本支出成為近幾年上雲企業最關心的Top1問題。

華為云云原生FinOps解決方案,釋放雲原生最大價值

企業雲原生化逐步深入,成本治理依然存在挑戰

雲原生技術當前已經成為很多企業進行數字化轉型的主流方式。kubernetes提供的資源共享、資源隔離、彈性排程等能力,本身能夠幫助企業提升資源使用率,降低企業IT成本。然而,2021年CNCF《FinOps Kubernetes Report》的調研報告顯示,遷移至Kubernetes平臺後,68%的受訪者表示所在企業計算資源成本有所增加,36%的受訪者表示成本飆升超過20%。其背後的原因值得深思。

華為云云原生FinOps解決方案,釋放雲原生最大價值

雲原生時代成本治理面對的挑戰

雲原生時代成本治理有四個矛盾點:

  1. 業務單元 VS 計費單元:一般雲服務(比如ECS)的計費週期比較長,可能是包月或者包年;而云原生容器的生命週期相對比較短暫,容器的彈性伸縮、故障重啟等動作,都有可能導致資源的閒置率比較高。
  2. 容量規劃 VS 資源供給:容量規劃一般是靜態的,一般是按照預算或者規劃提前準備容器,而資源供給是業務來驅動。業務的高峰流量衝擊,升級擴容等場景,都會對容量規劃造成很大的挑戰。
  3. 統一治理 VS 多雲部署:現在很多企業使用了不止一朵雲,不同的雲廠商的賬單介面和格式都不一樣,不利於企業的多雲統一成本治理。
  4. 成本模型 VS 雲原生架構:雲廠商的成本模型相對比較簡單,一般是按照物理資源來計費,比如ECS服務是以整機的價格來計費。雲原生架構以應用為中心,資源的申請細化到CPU/記憶體等粒度。這就導致雲原生場景成本視覺化和成本分析比較困難。

總結下來,雲原生成本治理面臨三大挑戰:

成本洞察:雲原生場景如何實現成本視覺化,如何快速定位成本問題、識別資源浪費?

成本最佳化:雲原生成本最佳化的手段很多,如何採用合適的成本最佳化手段來實現收益最大化?

成本運營:企業如何構建可持續的成本治理體系與文化?

華為云云原生FinOps解決方案,釋放雲原生最大價值

華為云云原生FinOps解決方案

FinOps 是一門將財務管理原則與雲工程和運營相結合的學科,它使組織更好地瞭解其雲支出。 它還能夠幫助他們就如何分配和管理雲成本做出明智的決策。 FinOps 的目標不是節省資金,而是透過雲實現最大化的收入或業務價值。 它有助於組織控制雲支出,同時保持支援其業務運營所需的效能、可靠性和安全性級別。

FinOps Foundation 將 FinOps 定義為三個階段:通知、最佳化和運營。根據每個團隊或企業完成 FinOps 的進度,公司可能會同時處於多個階段。

通知(成本洞察):通知是 FinOps 框架的第一階段。這一階段旨在為所有利益相關者提供所需的資訊,以便於他們瞭解情況,從而做出有關雲使用的經濟高效的明智決策。

成本最佳化:成本最佳化重點是想方設法節約成本。根據當前使用情況,您的組織可以在哪些方面合理調整資源規模,並從折扣中受益?

成本運營:成本運營是 FinOps 框架的最後一個階段。在這一階段,組織會根據業務目標持續評估績效,然後想方設法改進 FinOps 實踐。最佳化工作到位後,組織可以藉助自動化來實施策略,在不影響效能的情況下不斷調整雲資源來控制成本。

華為云云原生FinOps解決方案,釋放雲原生最大價值

華為云云原生FinOps解決方案,參照業界FinOps標準與最佳實踐,為使用者提供雲原生成本多維視覺化與多種成本最佳化治理手段,協助客戶最大化的收入或業務價值。

華為云云原生FinOps解決方案,釋放雲原生最大價值

雲原生FinOps - 成本洞察

華為云云原生FinOps成本洞察,提供如下關鍵特性:

1、基於標籤的資源成本歸屬

支援ECS、EVS等資源關聯叢集標籤,便於叢集費用匯總計算

2、基於CBC賬單的精準成本計算

基於CBC真實賬單進行成本分攤計算,精準劃分部門成本

3、靈活的成本分攤策略

支援叢集、名稱空間、節點池、應用、自定義等多種維度的成本視覺化與成本分攤策略。

4、支援長期的成本資料儲存與檢索

最大支援長達2年的成本分析,支援月度,季度,年度報表及匯出。

5、工作負載快速感知,輕鬆應對快速彈性場景

針對應用快速彈性場景,支援分鐘級的負載發現與計費能力,讓所有成本無一遺漏。

華為云云原生FinOps解決方案,釋放雲原生最大價值

雲原生成本洞察的實現機制介紹:

1、叢集物理資源成本 VS 叢集邏輯資源成本

叢集的成本可以從兩個角度來計算:

  • 叢集物理資源成本,包括叢集直接或間接關聯的資源成本,比如叢集管理費、ECS成本、EVS成本等。叢集的物理資源成本可以從雲成本賬單中直觀的體現出來。
  • 叢集邏輯資源成本,從kubernetes資源的角度,叢集的成本包括工作負載的成本,再加上叢集閒置資源成本和公共開銷成本。

不難看出,叢集物理資源成本=叢集邏輯資源成本。

華為云云原生FinOps解決方案,釋放雲原生最大價值

2、單位資源(CPU/記憶體等)成本計算

在叢集的物理資源成本已知的情況下,如何推匯出叢集邏輯資源成本(如pod/工作負載),是雲原生FinOps成本洞察的關鍵。這裡核心要解決的問題是單位資源成本計算的問題。我們知道,一般的雲虛擬機器是按照整機的價格去售賣的,不會按照單位CPU或記憶體售賣。但是容器服務的資源佔用是按照單位資源(CPU或記憶體等)來申請的。所以必須計算出單位資源的成本,才能最終計算出容器服務佔用的成本。

一般雲廠商單位CPU或記憶體的價格會有一個估算值,我們也可以按照CPU和記憶體的成本佔比來計算單位資源成本。

華為云云原生FinOps解決方案,釋放雲原生最大價值

3、雲原生資源成本計算

從下圖我們可以看出,一個Pod的資源使用是隨著時間動態波動。有些時刻Pod的資源佔用低於資源申請(Request),有些時刻Pod的資源佔用大於資源申請(Request)。在計算Pod成本時,我們會定時取樣Pod的實際使用值和Request值,並將實際使用值和Request值中的最大值用於Pod的成本計算。這是因為一旦Request值分配給Pod,那麼這不是資源會被K8S預留,不會被其他Pod搶佔。所有Pod需要為Request部門的資源買單。同理,如果Pod的實際使用量大於Request,那麼這個Pod也需要為超出的部分買單。

華為云云原生FinOps解決方案,釋放雲原生最大價值

基於以上原理,我們就可以得出Pod的成本計算:

華為云云原生FinOps解決方案,釋放雲原生最大價值

將名稱空間下所有的Pod成本累加,就可以得出名稱空間維度的成本:

華為云云原生FinOps解決方案,釋放雲原生最大價值

基於以上計算邏輯,華為雲CCE雲原生成本治理特性實現了多種維度的叢集成本視覺化,比如:

叢集成本視覺化

華為云云原生FinOps解決方案,釋放雲原生最大價值

名稱空間成本視覺化

華為云云原生FinOps解決方案,釋放雲原生最大價值

節點池成本視覺化

華為云云原生FinOps解決方案,釋放雲原生最大價值

工作負載成本視覺化

華為云云原生FinOps解決方案,釋放雲原生最大價值

4、部門成本分攤與成本分析報表

很多企業會把一個叢集安裝名稱空間的粒度分配給不同的部門使用。那麼如何對各個部門的成本進行視覺化分析?

華為云云原生FinOps解決方案,釋放雲原生最大價值

從上圖可以看出,部門的成本不僅包括部門歸屬的名稱空間的成本,還應該承擔一部分公共成本。這部分功能成本包括系統名稱空間成本和空閒資源成本。

華為雲CCE雲原生成本治理支援基於部門的成本分攤策略配置,如下圖所示:

華為云云原生FinOps解決方案,釋放雲原生最大價值

同時,基於部門的成本分攤策略,華為雲CCE雲原生成本治理提供了月度/季度/年度報表功能,最大支援2年的報表查詢與匯出。

華為云云原生FinOps解決方案,釋放雲原生最大價值

雲原生FinOps - 成本最佳化

雲原生場景如何提升資源利用率?

據 Gartner 統計,企業CPU平均使用率不足15%,造成資源利用率低的原因有多種,典型場景有:

• 資源配置不合理:部分使用者對於自己服務的資源使用情況不瞭解,申請資源時具有盲目性,通常申請過量資源

• 業務波峰波谷:微服務具有明顯日級別波峰、波谷特性,使用者為保證服務的效能和穩定性按照波峰申請資源

• 資源碎片化:不同業務部門資源池獨立,無法做到資源共享,容易產生資源碎片。

華為云云原生FinOps解決方案,釋放雲原生最大價值

容器化能一定程度上提升資源利用率,但是存在部分問題單純依賴容器化無法得到有效解決:

• 資源過量申請:如果沒有有效的資源推薦和監控機制,普遍實踐還是是超額申請、積沙成塔造成資源浪費。

• 資源池統一:K8s原生排程器缺少組、佇列等高階排程能力;大資料業務存算一體難以利用容器彈性優勢。

• 應用效能:單純增加部署密度難以保證服務質量。

為了提升叢集資源利用率,CCE雲原生FinOps解決方案提供了多種最佳化手段,比如智慧應用資源規格推薦、雲原生混部、動態超賣等能力。

5、智慧應用資源規格推薦

為了保障應用效能和可靠性,同時由於缺乏足夠的視覺化工具,我們總是傾向為應用申請過量的資源。為了解決這一問題,CCE雲原生成本治理提供了智慧應用資源規格推薦功能。該功能基於應用的歷史畫像資料,基於機器學習演算法,為應用推薦最佳的申請值。

華為云云原生FinOps解決方案,釋放雲原生最大價值
華為云云原生FinOps解決方案,釋放雲原生最大價值

6、華為云云原生混部解決方案

華為雲CCE雲原生混部解決方案基於volcano外掛,支援一鍵部署,為容器業務提供高低優先順序混合部署,動態超賣,服務QoS保障等能力。關鍵能力主要包括:

  • 容器業務優先順序與資源隔離
華為云云原生FinOps解決方案,釋放雲原生最大價值
  • 融合排程
  1. 應用SLO感知:多型別業務智慧混合排程,應用拓撲感知,分時複用,超賣等;
  2. 資源感知排程:提供CPU NUMA拓撲感知、IO感知、網路感知排程,軟硬協同,提升應用效能;
  3. 叢集資源規劃:提供佇列、公平、優先順序、預留、搶佔等豐富策略,統一滿足高優、低優業務;
  • 節點QoS管理:多維度資源隔離、干擾檢查、驅逐機制。
華為云云原生FinOps解決方案,釋放雲原生最大價值

下面重點介紹動態超賣特性:如何將節點閒置資源再利用,提升資源利用率。

動態超賣的核心原理為:將節點Request和實際使用量的差值部分,作為可排程資源,供排程器重新分配,僅供低優任務使用。

超賣特性有如下特點:

  • 低於作業優先使用超賣資源
  • 高優作業預選超賣節點時只能使用其非超賣資源
  • 統一排程週期高優作業先於低優作業排程
華為云云原生FinOps解決方案,釋放雲原生最大價值

不管是雲原生混部還是超賣特性,都可以提升資源利用率。那麼如何在提升資源利用率的同時,保障應用效能與服務質量?

華為HCE 2.0 OS提供的CPU隔離能力,結合CPU快速搶佔、SMT管理控制和離線任務壓制指令的負載均衡能力,保障線上業務資源QoS同時,也能讓被壓制的離線任務指令儘量快速得到響應。

華為云云原生FinOps解決方案,釋放雲原生最大價值

根據實驗室中模擬線上和離線混部場景(CPU利用率70+%)與單獨業務部署線上的場景(CPU利用率30%)進行效能對比,混部場景中線上業務的效能(時延&吞吐)劣化幅度控制在單獨部署線上業務效能的5%之內。基本可以認為把混部對效能的影響降低到可以忽略不計。

華為云云原生FinOps解決方案,釋放雲原生最大價值

下面我們來看一個客戶案例,該客戶利用華為云云原生混部解決方案,最佳化資源配置,最終實現35%的資源利用率提升。

該客戶的主要痛點包括:

  • 應用干擾:大資料與線上語音、推薦等應用爭搶資源,e.g. cpu/memory,網路;影響高優任務服務質量。
  • 應用資源配置不合理:為了保證排程成功,request設定很小,不能反饋負載資源需求,引發資源衝突
  • 應用綁核:部分應用綁核,總體資源利用率低

基於客戶痛點,我們為客戶提供如下解決方案:

  • 客戶將原來節點OS由CentOS切換至華為雲HCE OS;
  • 將排程器由原來基於預設排程器切換至Volcano排程器;
  • 根據客戶業務屬性,配置排程優先順序、隔離等等策略;

透過華為云云原生混部解決方案,最終為客戶帶來資源利用率提升35%的收益。

華為云云原生FinOps解決方案,釋放雲原生最大價值

7、CCE Autopilot:按需付費與靈活規格助力客戶節約成本

CCE全新推出的Autopilot叢集,支援按照應用的實際用量按需付費,相對於CCE叢集的優勢是Autopilot叢集將節點的管理運維完全託管起來,這樣您無需提前規劃和購買節點資源,從而實現精細化的成本治理。

這裡我們看兩個客戶場景:

  • 網際網路文娛和社交業務,春節假期期間流量是平時的數倍,專項跟蹤運維保障,提前預留資源,成本巨大。
  • 網約車平臺,業務具有典型的早晚高峰特點,傳統駕駛模式需要客戶手動購買和提前預留資源,資源利用率低。

透過Autopilot可以實現成本精細化治理,最終實現整體成本降低與收益最大化。

華為云云原生FinOps解決方案,釋放雲原生最大價值

點選關注,第一時間瞭解華為雲新鮮技術~

相關文章