《云原生成本管理挑戰和解決之道v8-劉建.pdf》由會員分享,可在線閱讀,更多相關《云原生成本管理挑戰和解決之道v8-劉建.pdf(39頁珍藏版)》請在三個皮匠報告上搜索。
1、云原生成本管理挑戰和解決之道云原生成本管理挑戰和解決之道劉建劉建2023年7月29日劉建劉建曾工作于騰訊、搜狗&IBM中國研究院,曾任騰訊專家工程師,Tech Leader&搜狗資深架構師。10+年基礎架構領域相關經驗。曾主導搜狗容器云平臺研發&規?;涞?,帶領搜狗商業廣告團隊完成從單體、到微服務和云原生架構的遷移。曾擔任QCon、全球運維技術大會等專業會議聯席主席和專題出品人。云智優本 創始人嘉賓照片目錄目錄CONTENTS云原生成本管理面臨的挑戰1 精細化成本度量2 智能成本優化方案3 總結&展望4 0101云原生成本管理面云原生成本管理面臨的挑戰及問題臨的挑戰及問題云原生已成為未來主流云
2、原生已成為未來主流架構架構云原生是未來IT主流架構。Gartner估計:到2025年,超過95%的新數字工作負載將被部署在云原生平臺。云原生(2018)=可彈性擴展的應用可彈性擴展的應用+松耦合系統松耦合系統+開源生態開源生態可彈性擴展的應用可彈性擴展的應用:有利于在公有云、私有云和混合云等新型動態環境中構建和運行可彈性擴展的應用。代表技術包括容器、服務網格、微服務、不可變基礎設施和聲明式API。松耦合系統松耦合系統:能構建容錯性好、易于管理和便于觀察的松耦合系統。結合可靠的自動化手段,使工程師能夠輕松地對系統作出頻繁和可預測的重大變更。開源生態開源生態:致力于培育和維護廠商中立的開源生態系統
3、用戶對云原生的成本顧慮越來越強烈用戶對云原生的成本顧慮越來越強烈20212023遷移至 Kubernetes 平臺后,68%的受訪者表示所在企業計算資源成本有所增加,36%的受訪者表示成本飆升超過 20%。-2021 CNCF FinOps Kubernetes ReportCNCF 發布的云原生 2023 年趨勢預測報告中,10 個熱點趨勢中有 4 個與 FinOps 相關,分別是 FinOps、GreenOps、GitOps 和削減成本。阿姆斯特丹2023年4月 KubeCon會議中,成本也是廣為關注的話題之一。云原生應用成本經常超支,難以管理和優化云原生應用成本經常超支,難以管理和優化應
4、用成本無法精確度量,管理難資源池化&應用動態性導致應用和IT資源不再對應,傳統成本度量方式不再適用,無法度量應用級別的成本,難以下鉆分析云環境中資源價格動態變化,成本度量精確性不足應用成本容易超支,追蹤難資源閑置&未及時釋放配置不當/不合理缺乏應用級的實時預警機制,賬單一般按月手工處理,實時性&自動化能力不足應用成本優化難缺乏工具,自研成本高云廠商提供的成本優化機制有限(多在節點維度),且不支持多云自研需要云原生平臺專業能力,成本高、ROI低。多數企業不具備深度優化能力(例如資源超賣,離在線混部等)云原生成本云原生成本管理管理云原生成本管理是云財務管理(FinOps)在云原生場景下的應用。Fi
5、nOps 基金會建議采用迭代方法來管理云服務的可變成本,最佳實踐包括三個環節:通知、優化和運營。通知:關注數據可視化和成本分配,可將資源精細和準確的分配到相應團隊,便于后續優化。優化:基于使用率、價格等指標進行成本優化。運營:通過自動化流程等機制,使成本優化長期可持續。0202精細化成本度量精細化成本度量成本度量的成本度量的必要性必要性應用成本度量是成本優化的基礎。洞察現狀 優化基線“It you cant measure it,you cant manage it”-彼得.德魯克容器特性導致成本度量變得容器特性導致成本度量變得復雜復雜靜態-動態節點1節點2節點N.Pod1容器1容器2Pod2
6、容器1容器2Pod3容器1容器2Pod4容器1Pod5容器1應用1應用2集群成本成本公式公式成本(t1,t2)=單位價格資源1(t1,t2)用量資源1(t1,t2)+單位價格資源2(t1,t2)用量資源2(t1,t2)+.單位價格資源N(t1,t2)用量資源N(t1,t2)應用成本應用成本公式公式單位價格cpuPodi(t1,t2)用量cpuPodi(t1,t2)+單位價格gpuPodi(t1,t2)用量gpuPodi(t1,t2)+單位價格MemPodi(t1,t2)用量MemPodi(t1,t2)+.單位價格NetworkPodi(t1,t2)用量NetworkPodi(t1,t2)+單位
7、價格其他Podi(t1,t2)用量其他Podi(t1,t2)Podi(i in(1.n)(t1,t2)()應用成本(t1,t2)=價格價格價格(CPU、內存.)怎么計算?Serverless 基于Pod計算 集群(容器服務)Pod與節點的關系?Pod單位價格=節點單位價格 節點單位價格?自定義靜態價格 基于云廠商提供了包年包月,按量付費,競價實例,節省計劃等機制計算動態價格。靜態價格靜態價格 vs vs 動態動態價格價格靜態價格 用戶/平臺指定(簡單,不反應真實價格,特別是在同一實例在不同計費模式下價格存在差異的時候)動態價格 基于訂單、計費等信息推算(復雜,能盡可能貼近真實價格)存在基于實例
8、價格反推每核CPU、每GB內存單位時間價格的情況。用戶操作對價格存在影響(計費方式轉換、升級、節省計劃、Spot實例等),價格與時間相關聯,且存在滯后性。4-205-206-087-02實例:i1包月(1月)CPU:0.1元/核/小時4-20 5-20實例:i1包月(1月)CPU:0.101元/核/小時5-20 6-20實例:i1包月-按量付費價格:CPU:0.2元/核/小時時間:6-08 實例:i1包月-按量付費(節省計劃)價格:CPU:0.13元/核/小時時間:7-02 (8-02)用量用量用量怎么計算?使用時間 使用量(對于CPU、內存等來說)使用次數(對于發送短信等服務來說)使用量(對
9、于按流量計費的網絡來說)主流技術方案主流技術方案技術技術方案方案優缺點優缺點分析分析典型典型代表代表Prometheus-Only優點:能夠利用Prometheus生態,擁有較多開箱即用的展示手段(例如:Grafana)。OpenCost缺點:1、性能較低,優化難度較高;2、成本計算失真:用戶折扣、競價實例、包年包月、節省計劃等計費策略會導致應用成本和實際賬單偏差較大。Prometheus-Hybrid優點:1、能盡可能貼近應用真實成本2、性能優化相對簡單Wisecost缺點:1、難以完全利用Prometheus生態2、存在自定義展示方式WisecostWisecost成本成本計算技術計算技術
10、架構架構阿里云騰訊云AWS.價格度量/監控PrometheusThanos成本計算成本聚合/過濾/緩存成本API.Kubernetes集群Web管理控制臺第三方數據集成WisecostWisecost用戶用戶界面界面0303智能成本優化智能成本優化主要技術主要技術維度維度主要技術主要技術說明說明應用資源推薦為用戶設置應用資源提供指導,避免資源不足或過量。智能擴縮容基于多個指標(CPU、內存、流量等)進行擴縮容。節點節點超賣基于節點資源使用情況及已分配應用情況,提升節點可分配資源量,便于集群額外調度應用到該節點。節點費用優化基于節點資源使用情況調整節點規格或變更計費模式,降低費用。集群在離線混部
11、在線&離線業務對資源分時共享,提升利用率。集群擴縮容在節點水位過高或者過低時對集群進行整體擴容和縮容。智能選擇合適費用的節點??缭瀑Y源調度評估各個應用在不同云上的使用成本,協助客戶將應用調度到低成本的云上,降低成本。資源推薦資源推薦目標:幫助用戶設置資源的合理值,避免資源浪費或者資源不足(導致OOM)。資源推薦架構資源推薦PodMetrics APIPrometheusWebAlertPod資源推薦核心算法資源推薦核心算法基于半衰期指數直方圖的資源推薦 半衰指數直方圖是Goole Autopilot垂直伸縮關鍵算法之一 可對容器CPU、Memory等的百分位數(例如p95、p90)預測組距頻數
12、17315資源推薦核心算法資源推薦核心算法組距(桶大?。┲笖抵狈綀D桶大小以指數速率逐步提升 首桶大?。築ucketSize1 第n個桶大?。築ucketSize1(1+ratio+ratio2+.+ratio(n1)=BucketSize1(ration1)/(ratio1)資源推薦核心算法資源推薦核心算法頻數 半衰期半衰指數直方圖增加了半衰期和樣本“年齡”的參考時間針對CPU、Memory 資源使用等,若半衰期為24小時,即每過24小時,直方圖中所有樣本的權重(重要性)衰減為原來的一半。半衰期可保證較新的樣本被賦予更高的權重,而較老的樣本隨時間推移權重逐步衰減。權重系數:CPU:權重是基于容
13、器 CPU Request 值確定當 CPU Request 增加時,對應的權重也隨之增加。舊的樣本數據權重將相對減少,有助快速應對 CPU 使用“尖刺”問題。Memory:一般固定為 1.0頻數:權重系數 x 2(sampleTime-referenceTimestamp)/halfLife)資源資源推薦推薦計算推薦值基于半衰指數直方圖的百分位數,比如p95,p90,p50,計算方式同直方圖不同類型負載可使用不同的百分位數作為推薦值批處理作業:p50,批處理作業可以承受一定的 CPU 壓制而正常運行在線服務:根據負載對延遲的敏感度分別為 p95或 p90推薦值微調基于安全邊際系數、全局最小值
14、等進行微調,避免推薦值過小最終推薦值:max(p90(1+safetyMarginFraction),podMinCPUMillicores0.0011.0/N)其中:安全邊際系數:safetyMarginFraction 全局最小值:podMinCPUMillicores Pod容器數:N節點超賣節點超賣目標 緩解集群中Pod無法正常調度問題 保證集群穩定性前提下,提升集群整體資源利用率節點超賣節點超賣原理原理容量可分配資源Pod資源請求總和使用量節點可重用資源使用量節點(超賣)容量可分配資源(超賣)可分配資源Pod資源請求總和可分配容量可分配容量可重用資源超賣率超賣率超賣率=可分配資源(超
15、賣)/可分配資源 =(可分配資源+Pod資源請求總和-使用量)/可分配資源預留部分資源超賣率=(可分配資源+Pod資源請求總和-使用量-預留比例*Pod資源請求總和)/可分配資源整體架構整體架構節點超賣PrometheusKubelet APIAPIServeretcd 節點CPU用量 節點Request總量kubelet PatchNodeStatus節點調整器 更新節點超賣率節點超賣節點超賣節點超賣組件:動態調整超賣比例:基于Promethous獲取Node歷史與當前負載情況,動態調整超賣比例,以控制節點資源利用率在合理水位,維持集群狀態穩定。超賣管控策略:可設置超賣節點、單節點超賣上限、超賣步長等。節點調整器 PatchNodeStatus:基于Mutating Admission Controller機制,攔截并修改Kubelet的Node Patch,成比例的擴大可分配資源,增加節點可用資源,達到節點資源超賣效果。0404總結總結&展望展望總結總結用戶痛點 應用成本無法精確度量,管理難 應用成本容易超支,追蹤難 應用成本優化難成本精準度量 成本度量公式 動態價格成本優化 從應用、節點&集群三個維度優化 資源推薦&基于半衰指數直方圖的推薦算法 節點超賣展望展望自動化能力的提升更先進的預測算法更便捷的產品和服務感謝聆聽感謝聆聽關注QECon公眾號