天天看點

菜鳥彈性排程系統的架構設計讀後感

閱讀文章:菜鳥彈性排程系統的架構設計

文章網址:https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247487005&idx=1&sn=fd7db29c85eac932f2d8c86ae6f8a017&chksm=e9293312de5eba043eb6b6f745fedf1358779f821d34ab3385c46c4e527d0cd7053581ddca63&scene=21#wechat_redirect

在彈性排程出現之前,菜鳥整體資源使用率都處于一個比較低的水準,這是因為:

(1)線上應用一般是通過單機性能壓測,并且結合經驗預估業務流量的方式來确定所需容器數量。這種方式很大程度上會受到評估者主觀因素的幹擾,在估算業務流量時也通常會保留較大的備援。 

(2)以往的模式下,一個應用分組的擴縮容操作頻率很低,這使估算業務流量時,需要以每天的峰值流量以及未來一段時間(通常以月為機關)内業務的發展情況來作為評估标準。而一般峰值流量出現時段可能隻占全天時間的一小部分,非峰值時段就出現大量的資源浪費。 

彈性排程翠然能夠帶來較大的使用收益,但并不是适應所有的公司或組織,而之是以能夠成功在菜鳥實作落地,主要取決于以下幾點原因:

(1)菜鳥的業務特點是協調商家,cp,消費者之間的資訊流轉,而且物流訂單流轉的長鍊路多互動的特點也決定了資訊流大于實操流。

(2)菜鳥在2017年年初全面實作容器化并且接入混合雲架構體系後,已經完成了資源管理從“面向機器”到“面向應用”的轉變,應用的部署、擴縮容等核心運維流程得到了極大的簡化和提效。

(3)  菜鳥的應用遵從阿裡集團規範,彈性排程可以直接讀取alimonitor、鷹眼、alimetrics等工具提供的監控運維資料,并且核心應用所使用的技術棧基本上得到了收斂,這就位彈性排程的落地提供了充分的環境基礎。

彈性排程的基本模式為閉環回報式。這有模式的優越性在于:(1)具備一定程度的自我進化能力。(2)以更高的抽象層次來進行海量參數的配置,以解決普遍問題。

方舟彈性排程的三層決策:

(1)第一層是政策決策,政策決策層由多個不同的政策組成,并且支援快速擴充。政策之間邏輯完全隔離,每個政策計算完成後都會獨立輸出動作(擴容、縮容、不變)和數量。為了能夠适應不同應用之間的異構,每個應用分組也可以根據實際情況啟動或關閉不同的政策。

(2)第二層是聚合決策,聚合決策收集第一層所有政策的決策結果,并依據聚合規則得到一個合并後的<動作,數量>組。這一層的規則十分簡單:當同時存在擴容和縮容決策結果時,以擴容為準,忽視縮容結果;當存在多個擴容結果時,以擴容數量最多的結果作為最終結果;當存在多個縮容結果時,以縮容數量少的結果作為最終結果。

(3)第三層是執行決策,這部分決策主要會考慮到一些規則,最終告訴擴縮容服務:要不要擴縮,要擴縮多少個容器,如果是縮容那麼要縮容哪幾個具體容器,如果是擴容那麼具體的容器規格、擴容到的機房等。

方舟彈性排程的決策政策支援快速橫向擴充,目前已經包含多個決策政策,部分政策處于測試驗證狀态,這裡對幾個最為核心,同時也是最早上線運作的政策進行介紹:

(1)資源安全政策:資源安全政策關注的是系統資源使用情況。

(2)資源優化政策:資源優化政策同樣關注的是系統資源的使用情況,但是它的存在是為了在系統空閑時回收資源。同樣關注上述三個系統參數,當這三項同時低于下限門檻值時,發起縮容。

(3)時間政策:目前的彈性決策模式是後驗的,即在發生門檻值違反後,才發起擴容。

(4)服務安全政策:服務安全政策是目前最為複雜的一個政策,目前,服務包含消息隊列Consumer、RPC服務、HTTP服務三種。每天有至少一半以上的擴容任務是由服務安全政策發起的。

很多的彈性政策排程系統會選擇服務的qps作為最重要的一個考慮因素,但是我們在經過前期的一系列思考讨論後,決定放棄qps而使用rt,主要出于以下幾點原因:

(1)qps是一個服務的變量,它的變化受限于使用者的使用情況。

(2)通過目前qps和單機最大可承受qps來得到目前容器數,在資源完全隔離,且每個query使用的資源近乎相等時才成立。

通過閱讀這篇部落格,我對彈性排程的架構體系、毛刺的處理、計算擴容和縮放數量有了一定的了解。

轉載于:https://www.cnblogs.com/lijing925/p/11040121.html