天天看點

阿裡巴巴搜尋在離線統一排程

1. 發展曆程

        Hippo是搜尋事業部排程系統團隊自研的支撐集團内外多個BU搜尋與推薦體系和阿裡雲上Opensearch/ES等的排程系統,經過了5年的快速發展,提供了可靠、簡單、低成本的資源及應用托管方案,通過自動化運維、機器合池、智能彈性排程、混部和在離線統一排程等手段解決成本和效率的問題。

阿裡巴巴搜尋在離線統一排程

2. YARN on Hippo on Sigma

        在2017年天貓雙11,搜尋在離線混合排程方案是YARN on Hippo on Sigma,在NC上通過Sigma(集團一層排程系統)拉起Hippo Slave容器交由Hippo Master管理,Topia向Hippo Master申請用于部署NM的資源(資源基本保證和彈性上限由Hippo決定)并拉起NM交由YARN RM統一管理,具有較強的通用性(衍生出多種X on Y的形态)和現實性,我們做到了2個月和集團資源池合并,平滑支援多種排程系統生态融合,對上層各類業務無感覺,平穩經過了大促檢驗。但是,該方案有一定的局限性,不同排程系統有不同的資源和業務視圖,優先級,管控等,資源QoS和業務SLA難以很好的定義和滿足。是以,在搜尋在離線排程系統需要深度融合的訴求下,我們走向了在離線統一排程。

阿裡巴巴搜尋在離線統一排程

3. AliYARN

       2018年搜尋工程技術排程系統團隊和計算平台實時計算引擎團隊合作,在社群YARN3.1的基礎上開發了AliYARN3.1版本,以期解決搜尋在離線排程系統深度融合的訴求,主要涉及以下幾個方面:

         * 線上服務與Blink流/批任務混合排程和部署

         * 搜尋線上和離線資源合池

         * 統一資源QoS、業務SLA标準、管控平台等

         * 優化超賣、擠占、智能彈性排程和重排程等政策

         * 提供Blink線上隔離能力

         * 加強YARN線上服務排程能力

        在開發過程中我們遵循的基本原則是支援生态多樣性和走向社群,AliYARN3.1版本主要新特性包括:

* 全局排程架構,異步多線程并發基于實時負載批量排程配置設定Guarantee和超賣Opportunistic container

        * 擺放政策,應用内和應用間,allocationTag/nodeAttribute上的多種表達式

        * 多元資源,支援ip/disk/gpu/fpga等資源排程配置設定

        * 資源配置設定計劃持久化,保證線上服務類應用更高的資源穩定性和可靠性

        * 資源更新接口增強

        * 熱點負載遷移和均衡

        * 資源和業務解耦

        * 基于優先級的搶占

        * 優雅下線機器和container

        * 單機資源QoS排程

        * 實時更新RM排程配置和單機NM排程配置

        * 更強的CPU/Memory/Blkio/DiskQuota/Network/resctrl等資源隔離特性

        * 重排程的能力

        * 請求幹預,如G/O幹預,資源幹預,擺放政策幹預等

        * 請求配置設定過程跟蹤和診斷

        * Restful API增強等

        通過Hippo Master橋接Hippo協定和YANR RM協定,對上層業務透明,将Hippo Slave使用為YARN NM上的一種executor,讓YARN具備了更強大的多程序類VM和POD編排和托管的能力,進而實作了Hippo in YARN的方案,灰階上線中,拉開了在離線資源合池和統一排程的序幕。

阿裡巴巴搜尋在離線統一排程

4. 總結和思考

        任何一種新的方案的落地都不可能一蹴而就,也并不代表新的方案就是今後唯一存在的排程形态,整個排程生态必然會随着面臨的問題和場景的變化而發生變化。一個排程系統想要有強大的生命力,既要自身有能力直接管理和配置設定裸資源,也需要有能力生長在别的排程系統之上,跨不同地域、不同機房、不同部署域,将資源合理的配置設定給上層業務。永不止步,Hippo Federation和Hippo on K8S在路上,讓我們和各合作夥伴一起砥砺前行。

附錄:

阿裡巴巴搜尋混部解密

繼續閱讀