阿里巴巴云原生混部系统 Koordinator 正式开源
簡介:?脫胎于阿里巴巴內部,經過多年雙 11 打磨,每年為公司節省數十億的混部系統 Koordinator 今天宣布正式開源。通過開源,我們希望將更好的混部能力、調度能力開放到整個行業,幫助企業客戶改進云原生工作負載運行的效率、穩定性和計算成本。
作者 | 逐靈
來源 | 阿里技術公眾號
混部是什么?
業界很多互聯網公司或多或少都有布局將不同特征類型工作負載協同調度的技術方向,充分利用負載之間的消峰填谷效應,讓工作負載以更穩定、更高效、更低成本的方式去使用資源。這樣的一套系統或機制,也就是業界時常提及的 “混部”概念。
阿里巴巴的混部:
阿里巴巴在 2011 年開始探索容器技術,并在 2016 年啟動混部技術研發,至今經過了多輪技術架構升級,最終演進到今天的云原生混部系統架構,實現了全業務規模超千萬核的云原生混部,混部天平均 CPU 利用率超 50%,幫助阿里巴巴節省了大量的資源成本。
混部是在互聯網企業內部重金打造的成本控制內核,凝聚了眾多的業務抽象和資源管理的思考優化經驗,因此混部通常都需要數年的打磨實踐才能逐漸穩定并產生生產價值。是不是每家企業都需要很高的門檻才能使用混部,都需要大量的投入才能產生價值?那讓我們的Koordinator來嘗試給出回答。
Koordinator 正是基于內部超大規模混部生產實踐經驗而來,旨在為用戶打造云原生場景下接入成本最低、混部效率最佳的解決方案,幫助用戶企業實現云原生后持續的紅利釋放。
一 Koordinator 是什么?
Koordinator: 取自 coordinator,K for Kubernetes,發音相同。語意上契合項目要解決的問題,即協調編排 kubernetes 集群中不同類型的工作負載,使得他們以最優的布局、最佳的姿態在一個集群、一個節點上運行。
谷歌內部有一個調度系統名叫 Borg,是最早做容器混部的系統,在其論文公開發表之前在行業上一直是非常神秘的存在。云原生容器調度編排系統 Kubernetes 正是受 Borg 設計思想啟發,由 Borg 系統的設計者結合云時代應用編排的需求重新設計而來。Kubernetes 良好的擴展性使其能適應多樣的工作負載,幫助用戶很好的解決工作負載日常運維效率。
Koordinator 是完全基于 Kubernetes 標準能力擴展而來,致力于解決多樣工作負載混部在一個集群、節點場景下的調度、運行時性能以及穩定性挑戰。項目包含了混合工作負載編排的一套完整解決方案,包括精細化資源調度、任務調度、差異化 SLO 三大塊。通過這樣一套解決方案實現:
二 Koordinator 有什么優勢?
混部需要一套完整、自閉環的調度回路,但在企業應用混部的過程中,將要面臨的兩大挑戰是:
Koordinator 吸取了阿里巴巴內部多年的生產實踐經驗教訓,針對這兩大挑戰針對性的設計了解決方案,旨在幫助企業真正意義上的用上混部,用好 Kubernetes,而不是秀技術秀肌肉。
Koordinator 1.0 的整體架構如下圖所示,為了用戶提供了完整的混部工作負載編排、混部資源調度、混部資源隔離及性能調優解決方案,幫助用戶提高延遲敏感服務的運行性能,挖掘空閑節點資源并分配給真正有需要的計算任務,從而提高全局的資源利用效率。
1 超大規模生產實踐經驗錘煉
2021 雙 11 之后阿里對外宣布了“首次!統一調度系統規模化落地,全面支撐阿里巴巴雙 11 全業務”:
作為阿里巴巴的核心項目,阿里云(容器團隊和大數據團隊)聯合阿里巴巴資源效能團隊、螞蟻容器編排團隊,歷時一年多研發和技術攻堅,實現了從“混部技術”到今天“統一調度技術”的全面升級。
今天,統一調度已實現阿里巴巴電商、搜推廣、MaxCompute 大數據的調度全面統一,實現了 pod 調度和 task 高性能調度的統一,實現了完整的資源視圖統一和調度協同,實現了多種復雜業務形態的混部和利用率提升,全面支撐了全球數十個數據中心、數百萬容器、數千萬核的大規模資源調度。
作為云原生混部的踐行者,阿里巴巴是真刀真槍的在生產環境中推進混部技術理念,并在去年雙 11 完成了超過千萬核的混部規模,通過混部技術幫助阿里巴巴雙 11 節約超過 50% 的大促資源成本,在大促快上快下鏈路上提速 100%,助力大促實現絲滑的用戶體驗。
回頭去看,阿里巴巴堅定的推進混部技術,主要是考慮到以下方面帶來的問題:
- 利用率不均衡:在非混部時代,幾大資源池之間的資源利用率不均衡,大數據資源池利用率極高長期缺乏算力,而電商資源池日常利用率比較低,空閑了大量的計算資源,但出于災備設計又不能直接下掉機器提高在線密度。混部的初衷是讓全局資源調度更合理,在日常態通過混部將大數據的任務調度到電商資源池中,充分利用這部分空閑的資源。
- 大促備戰效率低:在大促時為了減少大促資源采購,希望在大促時能夠借用大數據資源池,部署電商任務支撐流量洪峰同時。在非混部時代,這樣的彈性資源借用只能通過騰挪機器的方式推進,大促支持的效率較低很難大規模實施。
正是在雙 11 這樣的峰值場景驅動之下,阿里的混部調度技術持續演進,積累了大量的生產實踐經驗,到今天已經是第三代即云原生全業務混部系統。這樣一套基于云原生理念的混部技術解決方案,脫胎于阿里巴巴,希望通過開源社區輻射到整個行業,幫助企業在云原生容器調度方向上加速快跑。
2 聚焦混部技術,支持豐富的場景
混部是一套針對延遲敏感服務的精細化編排+大數據計算工作負載混合部署的資源調度解決方案,核心技術在于:
上圖是 Koordinator 混部資源超賣模型,也是混部最關鍵最核心的地方。其中超賣的基本思想是去利用那些已分配但未使用的資源來運行低優先級的任務,如圖所示的四條線分別是:
這一套資源模型支撐了阿里巴巴內部全業務的混部,足夠精煉的同時也具備很強的靈活性。Koordinator 整個混部資源調度的大廈構建在這樣一個資源模型的基礎之上,配合上優先級搶占、負載感知、干擾識別和 QoS 保障技術,構建出混部資源調度底層核心系統。Koordinator 社區將圍繞這個思路投入建設,持續將混部場景的調度能力展開,將阿里巴巴內部豐富場景支持的經驗輸出到社區,解決企業面臨的真實業務場景問題。
3 雙零侵入,超低接入成本
企業接入混部最大的挑戰是如何讓應用跑在混部平臺之上,這第一步的門檻往往是最大的攔路虎。Koordinator 針對這一問題,結合內部生產實踐經驗,設計了“雙零侵入”的混部調度系統。
第一個零侵入,是指對 Kubernetes 平臺的零侵入。行業內的人大多知道,將 Kubernetes 應用于企業內部的復雜場景混部時,因為這樣或者那樣的原因總是需要對 Kubernetes 做一定量的修改,特別是節點管理(Kubelet)部分,這部分修改本身具備較大的技術門檻,同時也為給后續的 Kubernetes 版本升級帶來巨大的挑戰。企業為了解決這一問題,往往需要專門的團隊來維護這一些定制化的修改,并且具備很大的沉默成本,等到線上出現問題或者需要升級新版本時,熟悉這份修改的同學可能已不知去向。這給企業帶來了很大的技術風險,往往讓混部技術的推廣受阻。而 Koordinator 混部系統,設計之處即保證了不需要對社區原生 Kubernetes 做任何修改,只需要一鍵安裝 Koordinator 組件到集群中,不需要做任何配置,既可以為 Kubernetes 集群帶來混部的能力。同時,在用戶不啟用混部能力時,不會對原有的 Kubernetes 集群有任何形式的打擾。
第二個零侵入,是指對工作負載編排系統的零侵入。想像一下,在企業內部的 Kubernetes 集群之上提供混部能力之后,將面臨的問題是如何將企業的工作負載接入進來,以混部的方式運行。一般情況下將會面臨的兩種情況是:
Koordinator 針對應用接入層的改造成本,設計了單獨的工作負載接入層(Colocation Profile),幫助用戶解決工作負載接入混部的難題,用戶只需要管理混部的配置(YAML)即可靈活的調度編排哪些任務以混部的方式運行在集群中,非常的簡單且靈活。當前 Koordinator 為用戶提供了混跑 Spark 任務的樣例,未來,社區將持續豐富工作負載接入層的特性,支持更多場景的零侵入接入。
4 云上、云下一致的用戶體驗
Koordinator 開源項目是阿里巴巴云原生 2.0 的重點戰役,用戶除在自己的環境中可以體驗到 Koordinator 混部帶來的技術紅利,也可以將其部署到任意一個云廠商中,保持混合云、多云的架構一致。當然,也可以在阿里巴巴提供的多款云產品中獲得一致的用戶體驗,一次設計對接多處發揮價值。
可以看到,除了支持內部超大規模的業務混部外,Koordinator 也是阿里云容器服務集成的解決方案,社區將持續的保持活力,致力于將混部變成平民化、通用化、標準化的技術能力。
三 為什么要開源?
最早做容器混部的是 Borg, 在 Google 內部運行超過 15 年,最新公開的資料是 Borg: the next Generation[1]。國內互聯網公司內部推進混部接近 10 年,其中阿里巴巴的混部技術也經歷過了 3 代技術架構升級變遷,最終走到全局混部的終極形態。混部幫助阿里巴巴的電商、搜索、大數據業務極大的提高了大促的備戰效率,也為歷年的雙 11 大促節省了大量的計算資源。
我們堅信,云原生混部是企業容器調度技術發展的必然方向,只有通過工作負載的混合編排,才能在業務多可用區災備架構下實現更好的資源利用效率,才能充分的發揮不同類型負載的削峰填谷效應,從而完全的發揮出計算資源潛力,最大化釋放云計算的價值。
Koordinator 的開源,希望讓更多的企業能夠看見并用上云原生混部的能力,幫助企業加速云原生化的過程。在技術上,Koordinator 能夠幫助企業實現更多的負載能夠接入到 Kubernetes 平臺,豐富容器調度的工作負載類型,繼而發揮出工作負載錯峰分時的特征,從而實現效率、成本上的收益,保持長期可持續發展的健康形態。
當前,Koordinator 已經支持了 Spark 任務場景的混部,同時也提供了低成本接入混部的解決方案,期待看到你的混部應用案例,聽到你的反饋!未來,Koordinator 社區將持續的豐富混部的場景及業務形態,支持 Flink、Hadoop、AI Jobs、音視頻任務等,盡情期待。
原文鏈接
本文為阿里云原創內容,未經允許不得轉載。?
總結
以上是生活随笔為你收集整理的阿里巴巴云原生混部系统 Koordinator 正式开源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内核热补丁,真的安全么?
- 下一篇: RedShift到MaxCompute迁