首先介紹一下方舟彈性調度的三層決策:class
1.第一層是策略決策,策略決策層由多個不一樣的策略組成,而且支持快速擴展。策略之間邏輯徹底隔離,每一個策略計算完成後都會獨立輸出動做(擴容、縮容、不變)和數量。爲了可以適應不一樣應用之間的異構,每一個應用分組也能夠根據實際狀況啓動或關閉不一樣的策略。容器
2.第二層是聚合決策,聚合決策收集第一層全部策略的決策結果,並依據聚合規則獲得一個合併後的<動做,數量>組。這一層的規則十分簡單:當同時存在擴容和縮容決策結果時,以擴容爲準,忽視縮容結果;當存在多個擴容結果時,以擴容數量最多的結果做爲最終結果;當存在多個縮容結果時,以縮容數量少的結果做爲最終結果。擴展
3.第三層是執行決策,這部分決策主要會考慮到一些規則,最終告訴擴縮容服務:要不要擴縮,要擴縮多少個容器,若是是縮容那麼要縮容哪幾個具體容器,若是是擴容那麼具體的容器規格、擴容到的機房等。執行決策進行判斷時須要考慮到的規則很是複雜,這裏簡單羅列一些相對重要的規則:配置
機房均攤規則; 請求
當前應用分組的擴縮容狀態規則,例如若是本次爲擴容:若是正在擴容,當本次擴容目標數量大於正在擴容的目標數量時,取差值再次發起一個擴容,由此實現並行擴容;當本次擴容目標數量小於正在擴容的目標數量時,忽略本次的擴容請求;若正在進行縮容,則當即中止縮容,並根據目標容器數和當前容器數發起擴容。 並行
模式規則:彈性調度目前支持全自動擴縮模式、人工審批模式兩種,若是當前分組爲人工審批模式,那麼本次決策會須要管理員進行審批。 di
最大值最小值保護規則:應用分組能夠配置最大值最小值,執行決策會保證由彈性調度發起的擴縮任務,不會使最終容器數超過最大值或小於最小值。管理
目前,方舟的彈性調度還處於一個發展成長的過程當中,對於一些應用的調度效果還要進行進一步的提高。