獨家揭秘:阿里巴巴Zeus資源調度系統

2021-02-25 AlibabaInfrastructure

本文主要概述阿里巴巴Zeus資源調度系統的背景和實現思路。本文主線:問題、解決方案、依賴基礎知識、工程實踐、目標、經驗分享。立足企業真實問題、常規解決策略,引出依賴的容器技術、實踐方案,所有這些落實到工程實踐,要解決那些問題、實現哪些目標、技術大趨勢的影響。最後給出阿里巴巴的實踐經驗。本序列文章並不是突出架構上重大突破,畢竟這個領域已經發展了10多年了。而是,實踐過程中的一些細節、一些特殊場景下的特殊處理方法,作為一種新的認知素材。依賴的容器或周邊系統,都不會進行深入的分析,圍繞資源調度概括性地做一些總結和補充些細節描述。

1.背景:資源浪費剖析

企業裡面資源調度的存在或者必要性,與企業發展規模有很強的關聯關係。任何企業從一開始就有某種程度的、某種特有階段性的「伺服器資源分配使用方案」,只是對資源或者成本「優化」的度,或者效率的要求急迫性、重要性不是那麼突出。當伺服器數量以萬為單位增長,成本支出過億的大背景下,依賴面向容器技術的資源調度和管理,顯得非常急迫和重要。制定執行成本優化目標,落到實踐中,首先需要對資源浪費、已有系統的缺陷、資源利用率不高進行系統化的診斷,然後執行平穩的逐步優化、提升效率、利用率。這就是問題或者需求的源頭。

(1)資源管理混亂

資源管理系統沒有掌握資源的利用情況,當前的資源利用率是怎麼樣的,有哪些空閒資源不是太清楚。甚至有些資源脫離了系統的管理,成為殭屍資源。這樣造成了大量可用資源的閒置和浪費。

(2)申請和使用不一致

例如,營銷或者宣傳活動,申請幾百臺資源實例,由於業務沒有預期那麼好,或者預留buffer,應對超預期壓力。最終的結果是申請和使用不一致。活動期間,白天整體利用率偏高,晚上整體利用率偏低。例如,初期資源少,每一次申請和使用的一致性,並沒有系統統一追蹤沉澱、統一透明化度量,業務慢慢發展了,單純申請機器擴容不一定是最佳的。軟體是否也需要進行優化升級了呢。容量評估和預測、歷史趨勢追蹤預測等系統完善度直接影響申請和使用的過程一致性、長期一致性。

(3)在線業務的訪問低谷期間資源浪費

對於網站來說,訪問量是呈現成曲線分布的,有高峰有低谷。在訪問高峰的時候資源利用率比較高,在訪問低谷的時候,則資源比較閒置,從而造成大量資源的浪費

(4)故障修復

機器的磁碟、內存條、網卡,隨時都會壞掉,統計概率大約是萬分之三,一旦壞掉了,進入維修流程。1萬臺規模,每天來個3、5臺,一個禮拜也就20多臺,再花個1個禮拜慢慢修復。修復了,回歸可用資源池又是一段時間。這種浪費是隱形的,很零碎。一年下來累計的不可用工作小時非常大。故障自動識別、自動腳本處理、故障預警等直接影響效率、準確率。

(5)可達效率

在IT軟體中,基本上沒有解決不了的問題。系統分層、功能弱化總是能夠把問題的影響或者問題的複雜度降到最低,最終達到服務可上線的目標。系統之間的這種分層或者功能弱化形成的依賴關係,上下遊之間的可達效率,其實也非常影響系統的整體資源利用率。例如:A上遊RT、QPS非常大,A下遊B能夠處理的吞吐量大,但是RT相對增長,整體鏈路可達效率逐層降低。適當的整合能夠帶來一定的資源利用率提升。

2.阿里Zeus介紹

Zeus是一個資源調度系統,它對數據中心的伺服器資源進行統一的調度和分配。它的主要功能包括:

(1)對數據中心的物理資源進行了封裝,隱藏了其中的細節。對於外界來說,整個數據中心就像是一臺巨大的伺服器,對外提供CPU, 內存,存儲,網絡等資源。應用開發者不需要關心自己的應用部署在哪臺伺服器上。

(2)接收應用的資源申請請求,為應用調度分配資源。

(3)優化成本。通過超賣,混合部署等方法提高資源利用率,節約成本。

(4)提升系統穩定性。Zeus在進行資源調度時,會監控系統的軟硬體故障,確保有故障的資源不被分配,對有問題的物理資源進行跟蹤處理。

 

3.資源的虛擬化

Zeus使用LXC容器技術對物理資源進行切分隔離,在CPU、Memory、Disk、Network量化後的數據基礎上,按照固定或者分時共享,實現資源動態共享,整體提升物理機的資源利用率。容器技術還有其他的優勢,例如屏蔽硬體的異構性,帶來面向API的資源分配和數據沉澱,從而為資源預測提供了規範、統一的數據。另外,容器技術是雲時代的加速器,以Docker容器為代表的容器技術極大的方便了應用運維管理。當然容器技術從某種角度看,也有一些不足,不能應用在所有場景當中、難以解決依賴關係問題、較差的隔離性、潛在的蔓延問題、缺乏工具。

容器技術把硬體等計算、存儲、傳輸資源進行了無狀態性、相對透明的共享。容器內的具體任務以及容器的生命周期等管理,交給了上層業務進行管理、運維。

從任務實現的語言來看,一類是編譯型語言(C、C++、Golang)實現的服務,一類是解釋型語言(Java、PHP、Javascript)。對於前者,進程啟動時並不需要一次性hold住固定大內存,對於後者特別是java,在進程啟動時候,配置固定內存開銷。兩種不同類型語言,使得物理機內存資源的動態共享模型有所不同,而Cgroup實現的CPU Set或者CPU子系統,可以動態共享CPU。磁碟IO、網絡IO通過隊列、聚合等也可以執行「限流」。另外,在單JVM進程中,合併部署多個應用,或者單JVM進程中,通過租用的方式,啟動多個服務,共享同一個JVM進程。

從資源生命周期看,長期租用、短期租用、不定時租用。不定時租用對應的往往是分時共享,而長期租用多半是固定配額共享或者專有共享。資源在時間、粒度、上下文環境一致、業務類型上進行平衡。

不論哪種角度看共享,只要有共享,就必須保障基礎環境的一致性,不能因為共享者的環境變更導致其他服務受影響。實時環境巡檢也就必不可少。

在一個大的生態性質的資源調度管理系統中,上面這些往往同時存在不同的業務集群中。在一個業務集群中、抽象出一套綜合的策略是很難滿足多場景需求的。不同業務集群,在底層的硬體抽象、運維監控管理工具是可以統一的。資源共享的粒度、時機,可以多樣化。

4.技術架構

Zeus主要採取分布式二層架構模式,分配策略空閒優先,融合業務相親相近、負載錯峰、業務穩定性等多種約束條件,基於超賣的資源共享。調度並發上,選擇資源是全局排序,採取的程式語言是Golang。容器服務的對象集中在在線Service。在線離線混部部分,採取分時共享資源。通過周邊多個系統的協調,為公司每年節約大量成本,並且所使用的策略是常態化的。也有一些一次性的策略,針對11大促特殊場景的需求。

Zeus從穩定性,資源利用率,運維自動化這三個方面來考慮調度的問題。實時監控基礎設施層的故障,並進行自動化處理,對上層應用屏蔽掉故障,從而提升系統的穩定性。通過多種調度策略,以及混合部署等方案提升資源利用率。通過提升調度的成功率,提供多種數據分析工具和數據視圖提升運維自動化程度。

架構圖如下:


5. 資源利用率

5.1 超賣

應用在申請的資源的時候,往往會申請比他實際使用更多的資源。也就是說他申請的資源,在實際使用中,他是用不了這麼多資源的。這樣就形成了資源的浪費。我們內部通過超賣來解決這個問題。

超賣帶來的挑戰就是,超賣多少比較合適。如果超賣多了,會引起資源競爭,導致系統的不穩定。如果超賣少了,會導致資源的浪費。我們需要找到一個平衡點,既不會影響系統的穩定性,也不會有很多的資源浪費。解決方案就是實行動態的超賣係數。先設置一個比較低的超賣係數,然後在系統運行的過程中,採集分析資源利用率情況,根據資源利用率的實際情況調高或者調低超賣係數。

5.2.混合部署

離線任務(Jobs或者短周期任務)、在線任務(service或者長周期任務)通過合併部署來共享宿主機資源。一種是實時錯峰共享資源,當調度系統發現當前在線任務的資源利用率比較低的時候,把離線任務調度上來運行,從而提高資源的利用率。但要確保在線任務優先搶佔資源,如果發生離線任務和在線任務爭搶資源的情況,要殺掉離線任務,把資源讓給在線任務。一種是固定配額來共享,service和jobs固定一定的資源,然後根據service空閒周期,jobs加大資源計算,動態調整CPU資源,假設內存、IO都不是瓶頸,也就是部分的調整資源給jobs。或者不關注service空閒,在jobs固定配額內自由提交jobs計算。這種時間窗口越短,對任務切換要求能力更高,需要資源實時預測模型。例如 Borg系統,針對進程最近時刻內存開銷進行實時調整。這對C、C++是有益處的,而對java就很難快速實施了,因為需要改JVM參數,從而JVM需要重啟,然後是業務代碼重啟。一種是分時獨佔交付,在service空閒周期內,service停止服務,完整的將資源空閒出來給jobs使用。

5.3.減少資源碎片

在資源分配的時候,有兩種方式,一種是湊整分配,一種是打散分配。湊整分配就是儘量將一臺宿主機分配滿,這臺宿主機分配滿了以後,再去分配到別的宿主機。這種分配方式的好處是資源碎片比較少,資源利用率比較高,但容易造成資源競爭,系統不穩定。打散分配就是每次分配的時候找到空閒資源最多的宿主機進行分配,這種分配方式的好處是各個宿主機的負載比較均衡,但是會造成較多的資源碎片。Zeus的處理方法是在這兩種方式之間找到一個平衡點,同時考慮湊整和負載均衡的問題,既要減少資源的碎片,也要考慮負載的適當均衡。

6. 穩定性

6.1. 故障處理

Zeus會實時監控基礎設施層的各種軟硬體故障。提前發現大量軟硬體或作業系統故障的宿主機,並標記為unavailable,線下定期處理。定期處理並回收失聯及load過高的宿主機(數10臺),成本回收並提高應用運行穩定性。提供黑名單機制,能快速屏蔽故障機和測試機,提高用戶操作效率。能提前發現IP衝突等網絡問題,並定期解決。

6.2. 穩定性調度策略

通過如下圖所示的各種調度策略來確保系統的穩定性。


6.2. 大促穩定性

在類似雙11這種大型促銷的活動中,由於負載超出平時數倍,會出現各種資源競爭異常的情況。Zeus通過對應用部署的自動洗牌,定點遷移,容器內核的調整等方式確保大促的穩定運行,不出現資源競爭的問題。

7. 運維自動化

Zeus能夠自動化的處理各種軟硬體故障,大大降低人工幹預的程度,從而提高了運維自動化程度。Zeus大大提升了應用擴容的成功率,為彈性伸縮的自動化運行也提供了可靠的保證。

Zeus還提供了多維度的運維工具,可以讓運維人員輕鬆的對資源進行控制和管理,提升了運維自動化程度。

本文引自微信公眾號:蝙蝠遐想。

掃碼關注,更多技術乾貨分享。


相關焦點

  • 淺析集群調度系統的演進
    Kubernetes 是一個集群調度系統,今天這篇文章主要是介紹 Kubernetes 之前一些集群調度系統的架構,通過梳理他們的設計思路和架構特點,我們能夠學習到集群調度系統的架構的演進過程,以及在架構設計時需要考慮的主要問題,對理解 Kubernetes 的架構會非常有幫助。
  • 阿里巴巴雲原生實時數倉核心技術揭秘
    Hologres為何能支撐阿里巴巴核心場景的落地。 Hologres核心技術揭秘 Hologres架構非常簡單,是存儲計算分離的架構,數據全部存在一個分布式文件系統中,系統架構圖如下圖所示: 服務節點Backend真正去接收數據、存儲和查詢,並且能夠支持數據的計算; 執行引擎
  • 獨家解析:阿里巴巴到底為什麼要做盒子?
    獨家解析:阿里巴巴到底為什麼要做盒子?除了阿里巴巴CEO陸兆禧以及華數發麵的高層外,中國網絡電視臺總經理汪文斌、康佳全球多媒體研發中心副總經理儀海波悉數到場,這也說明了這次阿里要玩真的,再也不是推出音樂頻道這樣的小打小鬧。
  • 水利部海河水利委員會水文局永定河水資源實時監控與調度系統數字...
    項目概況永定河水資源實時監控與調度系統數字平臺與應用系統建設 招標項目的潛在投標人應在天津普澤工程諮詢有限責任公司(天津市河西區解放南路中段(與湘江道交口)富裕中心2號樓701A)獲取招標文件,並於2020年10月14日 09點30分(北京時間)前遞交投標文件。
  • 【精品】長江雲融媒體平臺新聞指揮調度系統的構架與設計
    本文由《廣播與電視技術》雜誌獨家授權。本文刊發於2020年第11期。 平臺新聞指揮調度系統以全媒體新聞生產與指揮調度為窗口,通過創新廣播電視融合媒體「採、編、播、存、用」 等業務體系,再造新聞策、採、編、審、發、控全流程,實現「一次採集、多元生成,多渠道傳播」。
  • 「獨家」阿里巴巴戰略投資CRM SaaS企業小滿科技
    記者 | 林北辰8月26日,界面新聞獨家獲悉,阿里巴巴將以數億元人民幣戰略投資深圳市小滿科技有限公司。戰略投資後,小滿科技將繼續保持獨立運營。阿里巴巴國際站將在技術、市場等方面幫助小滿加速發展。此外,小滿科技原有的OKKI CRM產品升級後,最快將在9月上線。據官方介紹, 小滿科技的主營產品OKKI CRM軟體,主要針對B2B出口企業業務場景,幫助外貿企業建立屬於自己的數位化客戶管理系統,實現從線索到訂單全周期的智能化管理。
  • 直擊系統領域頂會OSDI'18現場,探秘阿里集團基礎設施團隊
    作為作業系統和體系結構領域的頂級會議,在本次OSDI'18中,阿里巴巴集團在其舉辦的專題研討會(BoF)上分別介紹了阿里巴巴OS開發優化方面的最新進展,阿里雲存儲系統盤古2.0,以及阿里巴巴的資源管理系統Sigma在日常和雙十一期間進行的多種優化和面臨挑戰。
  • 揭秘阿里巴巴最有權力部門:馬雲、張勇都去這裡學習鍛鍊!
    說到阿里巴巴,外界都知道這是一家市值近5000億美元的集團,中國網際網路公司的卓越代表。但是,你知道阿里巴巴哪個部門權力最大嗎?就連董事局主席馬雲、CEO張勇都要過去當學生、師弟。一起來跟牛鏡揭秘。1月5日一大早,阿里巴巴集團CEO張勇(花名:逍遙子)就來到阿里集團客戶體驗事業群,參加一個「親聽」項目,作為一名客服接聽商家、買家的電話,聽取客戶心聲。據說,這是他2018年的第一項工作。從上午10點開始,這位CEO客服一直在不停問、不停記,刨根問底。聽完電話後,張勇現場為阿里客戶體驗團隊打call:「要讓全集團的人都進來,親聽客戶聲音,解決客戶需求。」
  • IP多媒體調度系統SS3000-D
    產品概述:  大唐高鴻NGN架構多媒體調度系統SS3000-D是運用了先進的融合通信技術開發生產的調度指揮系統,能夠同時提供語音、視頻在內的綜合多媒體通信手段。該系統集PCM話音、IP語音處理、GSM/3G無線通信技術、數據通信調度、視頻調度為一體,實現多媒體指揮調度,廣泛應用於礦山、電力、石油、冶金、化工、銀行、航空、鐵路、公路等企業行業,並能與各種業務系統進行高度集成。
  • 油氣管道智能監控及調度系統的特點及方案設計
    整體解決方案說明 油氣管道智能監控及調度一體化解決方案基於智能管理平臺,由智能視頻監控、應急指揮調度、光纖光柵傳感報警等多種子系統組成。經過對油氣管道行業應用進行了深入研究,針對目前大規模聯網監控和多業務融合管理的需求,將電信領域「多媒體子系統」的先進理念引入油氣管道智能監控調度解決方案,實現了系統中異構網絡的融合與多業務的融合。
  • [獨家] 揭秘「12345」:實打實的政府熱線
    原標題:[本網獨家] 揭秘「12345」:實打實的政府熱線 2007年5月,『12345』升級為北京市非緊急救助服務中心,整合了原有區縣的服務熱線、公益熱線,實現了除緊急報警之外的一切公眾諮詢和求助受理,成為一個包括51個分中心在內的服務系統,擁有了200個坐席,日均電話受理能力達2萬件。
  • MiWAVE系統:保證高效調度和決策
    作為重要的應急通信手段,該系統在災區通信基礎設施嚴重毀損的情況下發揮了關鍵作用。     就MiWAVE寬帶無線應急通信系統的特點以及其在本次抗震救災過程中起到的重要作用,《中國電子報》獨家採訪了中科院上海微系統與信息研究所研究員卜智勇。
  • 電力調度自動化系統特點及發展趨勢
    電力調度自動化系統的基本特徵        該技術應該能夠及時並準確地採集、檢測和處理電網中各元件、局部或整個系統運行的實時信息。 能根據電網的實際運行狀態和系統各元件的技術、經濟等指標要求,為調度人員做出準確的調節和控制的決策提供依據。
  • 中國移動:融合調度系統,打造多通信手段互聯互通的指揮方案
    為此,中國移動推出了融合調度解決方案,滿足用戶在複雜的通信環境下,融合各種資源和數據,滿足日常、應急等場景的安全保障。 ,實現直觀高效的調度指揮工作;支持報警點周邊資源展示(設備、圖像、視頻、設施);支持Windows、Android平臺,即時消息、語音、視頻、上傳並分發;支持省、市、縣多級組網;GIS位置服務:實時位置查詢、歷史軌跡回放、電子圍欄、監控。
  • 阿里巴巴投資臺灣旅遊電商AsiaYo 未來或對接飛豬資源
    《阿里巴巴投資臺灣旅遊電商AsiaYo 未來或對接飛豬資源》文章已經歸檔,不再展示相關內容,編輯建議你查看最新於此相關的內容:浙江省教育廳聯手阿里巴巴探索「網際網路+教育」新模式上課不只在課堂,城鄉可以上「同一堂課」……浙江利用雲計算技術推進優質資源全覆蓋打造智慧教育技術環境,構建智慧教育支持服務體系,促進教育教學方式和學習方式的深刻變革,浙江正積極推進
  • 亞馬遜測評系統養號環境及資源揭秘!
    亞馬遜測評說是門檻低,裡面卻蘊含著巨大的信息差,畢竟是跨境的項目,涉及到亞馬遜測評系統搭建、自養號軟體、外幣支付、多語種翻譯等方方面面知識。今天就重點給大家揭秘一下亞馬遜自養號測評系統是如何搭建的,會用到哪些軟體及資源。亞馬遜測評自養號項目需要用到哪些資源呢?
  • Kubernetes 調度詳解!
    調度瓶頸儘管 Kubernetes Scheduler 能選擇最佳節點,但是在 Pod 開始運行之後,「最佳節點」可能會改變。所以從長遠來看,Pod 的資源使用及其節點分配可能存在問題。資源請求(Request)和限制(Limit):「Noisy Neighbor」「Noisy Neighbor」並不特定於 Kubernetes。任何多租戶系統都是它們的潛在地。假設有兩個容器 A 和 B,它們在同一節點上運行。
  • 【今日頭條】獨家揭秘武侯法院保全組
    【今日頭條】獨家揭秘武侯法院保全組 2021-01-08 14:20 來源:澎湃新聞·澎湃號·政務
  • 王金寶:捷思銳多媒體調度指揮系統的研發之路
    之所以在行業中能夠獲得廣泛的關注,憑藉的就是自身的實力,而實力主要體現在產品上,比如說公司的多媒體調度系統(MDS)。請問多媒體調度系統(MDS)是在什麼樣的契機促使下研發的呢?  王金寶:在2005年,當時還沒有調度的概念,捷思銳洞悉到了行業用了符合行業用戶的產品解決方案,而且在技術上不斷創新和突破,成為MDS廠家的領頭羊。
  • 湖南省應急廳應急指揮綜合業務系統——智能指揮調度子系統項目...
    湖南省應急廳應急指揮綜合業務系統——智能指揮調度子系統項目設計方案編制服務競爭性談判採購公告 湖南省應急管理廳 yjt.hunan.gov.cn 時間:2020-11-24 15:37 【字體: 大 中 小 】 湖南省應急廳應急指揮綜合業務系統 -- 智能指揮調度子系統項目設計方案編制服務 進行競爭性談判採購