設(shè)想你是一個應(yīng)用開發(fā)人員,編寫業(yè)務(wù)代碼是你的主業(yè),應(yīng)用需要多少資源,往往通過壓測決定,這導(dǎo)致非業(yè)務(wù)高峰期時段巨大的資源浪費(fèi)。正好,社區(qū)和公司都在積極推動云原生,聲稱可以利用其強(qiáng)大的調(diào)度和彈性解決資源浪費(fèi)問題。你興致勃勃的擁抱云原生,但最終發(fā)現(xiàn),云原生業(yè)務(wù)的資源配置,同樣還是需要壓測這種傳統(tǒng)而手工的方式。
又比如你是一個平臺側(cè)運(yùn)維人員,你背負(fù)著提升平臺資源利用率的 KPI。集群內(nèi)運(yùn)行著眾多負(fù)載規(guī)律波動的應(yīng)用,你驚喜的發(fā)現(xiàn),Kubernetes 提供了自動擴(kuò)容能力,你很想試試看。但真正使用了HPA,從負(fù)載上升觸發(fā)閾值,到彈性控制器開始擴(kuò)容,到應(yīng)用啟動完成,可能有數(shù)分鐘甚至數(shù)十分鐘的滯后,在彈性起作用之前,應(yīng)用已經(jīng)被壓垮。于是你拋棄自動彈性能力,繼續(xù)回歸到鎖定超量資源的老路上來。
研發(fā)人員到底能否從資源配置的深淵中解脫出來,是否能讓彈性能力高效實(shí)用?于是你帶著問題去社區(qū)尋找答案。你發(fā)現(xiàn)將應(yīng)用代碼和基礎(chǔ)架構(gòu)徹底分離的 Serverless 技術(shù)似乎是一個選項(xiàng),但是隨著深入了解你發(fā)現(xiàn),Serverless 只是一個概念,不是一個標(biāo)準(zhǔn),由于完全拋棄了服務(wù)器,底層自主可控和性能優(yōu)化能力完全喪失;另一類是以谷歌 Autopilot 集群為首的資源托管類集群,這類集群應(yīng)該滿足你的訴求,但它平臺綁定并且需要付費(fèi)。
我們決定改變現(xiàn)狀,我們在對騰訊內(nèi)部業(yè)務(wù)做成本優(yōu)化時積累了眾多經(jīng)驗(yàn),結(jié)合資源預(yù)測、智能彈性和全構(gòu)混部能力,在不犧牲穩(wěn)定性的前提下,將集群峰值利用率提升到了50%以上,下圖是優(yōu)化的效果。我們期待與社區(qū)同道一起優(yōu)化應(yīng)用資源配置和彈性的共性問題,于是我們給大家一個不重造輪子的可能,選擇了開源。
圖1:Crane 在大規(guī)模場景下的優(yōu)化效果
Crane 的誕生:首款企業(yè)成本優(yōu)化的開源工具
為推進(jìn)云原生用戶在確保業(yè)務(wù)穩(wěn)定性的基礎(chǔ)上做到真正的極致降本,騰訊推出了國內(nèi)第一個基于云原生技術(shù)的成本優(yōu)化開源項(xiàng)目 Crane( Cloud Resource Analytics and Economics )。Crane 遵循 FinOps 標(biāo)準(zhǔn),旨在為云原生用戶提供云成本優(yōu)化一站式解決方案。
當(dāng)前 Crane 項(xiàng)目主要貢獻(xiàn)者包括有騰訊、小紅書、谷歌、eBay、微軟、特斯拉等知名公司的行業(yè)專家。
。–rane 開源項(xiàng)目地址:https://github.com/gocrane/crane/)
符合 FinOps 標(biāo)準(zhǔn)的 Crane 成本優(yōu)化工具能力模型
Crane 是騰訊內(nèi)部云資源優(yōu)化流程方法和工具的系統(tǒng)性輸出,同時,Crane 核心能力的構(gòu)建與規(guī)劃均與 FinOps 基金會提出的能力模型完全契合。
圖2:Crane 能力模型
圖片圖3:Crane 架構(gòu)
Crane 致力于推薦資源和智能彈性配置,業(yè)務(wù)人員無需再為業(yè)務(wù)需要多少資源,自動擴(kuò)縮容應(yīng)該如何配置等問題而煩惱,Crane 會基于業(yè)務(wù)的時序變動數(shù)據(jù)給出最優(yōu)解。
一鍵部署
Crane 保持平臺獨(dú)立,通過一個 Helm 包將 Crane 安裝至任意 Kubernetes 集群,無論云上還是云下,即可享受一站式資源優(yōu)化能力。Crane 侵入性小,核心組件包括集中控制器 craned 和節(jié)點(diǎn)代理 crane agent,你可以自由組合安裝,通過 featureGate 選擇開啟哪些能力。
簡單易用可視化控制臺
為降低使用門檻,Crane 提供內(nèi)置控制臺,用戶可基于控制臺查看成本分配,成本走勢,并通過鼠標(biāo)點(diǎn)擊實(shí)現(xiàn)成本優(yōu)化。所有能力均提供灰度控制和預(yù)覽模式,以及回滾的能力,以消除業(yè)務(wù)側(cè)對資源變動的顧慮。
開箱即用的巡檢能力
Crane 可以全局掃描整體浪費(fèi)情況,將隱藏浪費(fèi)可視化的呈現(xiàn)出來,使運(yùn)維人員免除拉取監(jiān)控數(shù)據(jù),編寫查詢腳本等重復(fù)性工作。
優(yōu)化方案包含對成本變化的展示,對利用率變化的展示,可能的風(fēng)險點(diǎn),甚至是優(yōu)化建議的排序。因?yàn)槲覀兿嘈牛總業(yè)務(wù)都是獨(dú)一無二的,都有其最適合的優(yōu)化方案,不能一概而論。
即時迅速的彈性 (EffectivePodAutoscaler(EPA))
傳統(tǒng)基于事件的彈性工具會導(dǎo)致一個天然缺陷——當(dāng)業(yè)務(wù)指標(biāo)偏離正常值后才會觸發(fā)彈性,這種滯后性使得云用戶不敢使用彈性。EPA 支持可擴(kuò)展的預(yù)測算法,以預(yù)測結(jié)果驅(qū)動橫向和縱向彈性,確保業(yè)務(wù)能提前彈出來,徹底避免原生彈性能力未彈先死的尷尬。同時 Crane 將社區(qū)的 HPA 和 VPA 兩種彈性能力統(tǒng)一起來,提出了彈性概念 EPA。
提前擴(kuò)容
穩(wěn)定性與資源優(yōu)化的雙重兼
Crane 對資源利用率的提升,絕不是以犧牲穩(wěn)定性作為代價。Crane 允許用戶對業(yè)務(wù)進(jìn)行定級,節(jié)點(diǎn)代理負(fù)責(zé)周期性檢查節(jié)點(diǎn)資源水位和系統(tǒng)指標(biāo),識別應(yīng)用干擾,并通過調(diào)度禁止,調(diào)整 cgroup,驅(qū)逐等多種手段確保敏感業(yè)務(wù)服務(wù)等級不受損。
Crane 現(xiàn)狀與未來
當(dāng)前 Crane 已發(fā)布0.2.0版本,具備了資源推薦,彈性推薦,智能彈性和穩(wěn)定性增強(qiáng)等核心能力,更多開發(fā)計劃請參考里程碑[1]。來源:騰訊云原生