後羿射日般的精準 - 阿裏雲ECS調度是如何煉成的
1.引子
彈性計算服務ECS(Elastic Compute Service)是阿裏雲營收的中流砥柱和流量擔當。作為各行業客戶新業務和技術創新的發動機和使能者,ECS不僅能在10分鐘內交付出一個中等體量互聯網公司所需的全部計算力,更能承載阿裏集團雙十一極大的峰值彈性需求以及互聯網巨頭客戶業務高峰所需的計算力,幫助所有用戶打破計算力邊界的限制。而默默工作在舞臺背後的正是ECS的調度系統,那個傳說中的“後羿”。作為一個創建交付了不計其數的虛擬機的資源調度系統,後羿帶來的感覺就像蒙娜麗莎的微笑,神秘而好奇。今天就讓我們扒一扒“後羿”的前世與今生。
2.上古起源:後羿誕生
時光機回到2009年,那時全球的科技公司都在布局著雲計算,演繹的精彩絕倫、百家爭鳴,一如當下風口上的區塊鏈、人工智能和新零售。也就在這一年,阿裏雲初試鶯啼,在雲計算領域開天辟地,自主研發了盤古、女媧、神農、誇父和伏羲。這些上古大神共同組成了阿裏雲的雲計算基礎系統平臺--飛天Apsara系統。後羿的誕生也就水到渠成,它基於飛天將計算(Host)、網絡(IP)和存儲(Pangu塊存儲)等資源統一調度並通過虛擬化技術生產出一臺臺可交付給用戶使用的虛擬服務器。2010年5月,第一個ECS集群在北京上線了。此時的後羿還是一個單純的小朋友,幹的活就是虛擬機生產線的流程控制,頭腦(調度策略)也相對比較簡單,因為一個集群內都是同等機型、同一網絡Pod、同一個Pangu存儲,所以基本都是按靜態資源分配的方式進行調度選擇。
3.工業革命:野蠻生長
唯快不破!是,就是這麽快進入“工業革命”了!雖然後羿還沒來得及懵懂幾下,但因為ECS上線之後,業務量發展非常迅猛,妥妥地成為阿裏雲增長最快的業務,沒有之一。ECS很快用事實證明以虛擬機的方式出售計算力是雲計算商業化最合適的路徑,它好比工業時代的蒸汽機,推動著阿裏雲進入了野蠻生長的時代。
ECS的規模很快達到了近百個飛天集群,而且每周都在繼續部署新的集群,加上每周至少發布一個新版本,這樣的節奏讓我們原來維護和升級後羿系統的同學不堪重負。哇,那些年一起使出洪荒之力的同學,還記得苦苦掙紮的模樣嗎?伴隨著規模的增長,後羿面對的簡單小世界一下子變成了星辰大海,調度面臨的復雜度與日俱增,需要突破網絡Pod,需要突破機房。成長的煩惱不可避免,新的系統架構設計目標,大Region級別的資源管理調度能力,快速叠×××發……
好在借力集團的技術支撐,後羿采用了分布式服務的技術逐步重構演進。這期間最大的挑戰是業務在發展,不可能停下來給我們幾個月的時間去完成這個任務。我們使用先搭框架、再小步遷移的方案,在不影響業務發展的前提下,把一個一個功能模塊,從功能遷移到數據遷移,逐步完成系統升級切換,用時髦的話講這是給飛行中的飛機換引擎。換了引擎的後羿,從原來的單集群管控系統,升級到了基於分布式服務架構實現的大Region多機房管控系統;調度策略由原來的集群內簡單的資源分配模型升級到目前經典的過濾器+權重因子評分模型;管理規模也由一套管控對應最大數百臺物理機的集群變成了目前的一套管控可以管理數萬物理機規模的集群。經過工業革命的錘煉,我們的後羿小夥子長大成人了。
這個時期ECS逐步完善的上層業務系統,主要提供了幾大能力:
標準化的ECS Open API接口,對接官網售賣和API用戶;
售賣約束,接入阿裏雲計費系統,實現了ECS特有的計費模式(包年包月、按量付費等);
在集群粒度配置業務屬性和售賣規格,按用戶的需求調度集群;
基本的庫存服務和水位控制。
4.信息時代:漸入佳境
如果說工業革命時代是規模這個單維度縱向量的高速發展,那麽信息時代則是個性化、多元化的多維度發展。一方面,ECS吸引了越來越豐富的客戶群體,需求越來越多樣化,包括不同的價格需求、穩定性需求、地域需求等等,這就需要ECS包裝出不同特點的產品滿足不同的客戶場景。另一方面,ECS相關的技術爆炸也帶來了“百家爭鳴”的盛況:虛擬網絡團隊重點推出了用戶可以定制的VPC網絡;塊存儲團隊推出高性能的SSD雲盤和高性價比的混合SSD雲盤,而ESSD雲盤則實現了性價比和高性能的雌雄同體;虛擬化團隊從最初的Xen全面遷移到KVM,同時推出了異構計算GPU、FPGA虛擬化技術,並開始自研新一代的彈性裸金屬雲服務器(神龍)。如此多的新產品和新特性對接的是底層幾十種物理機型、多種網卡和網絡架構、多種虛擬化方案和虛擬存儲以及多種版本的虛擬網絡。實現產品到資源的精準調度,並最大化資源使用效率,這,就是信息時代下的後羿系統需要提供的基本能力。
在野蠻生長期,集群級的調度由上層業務層負責、集群內的調度由後羿負責,因為當時每個集群部署一種業務,團隊的設置也是按這樣分兩層。但現在為了支撐豐富的產品形態和優化庫存效率,同一集群內的每個物理機都可能售賣不同的產品規格,原來那種分層的調度顯然已經不合時宜了。我們進行了一次合體手術,重新定義了上下系統的職責分工,上層業務系統負責業務功能,下層後羿系統負責所有的調度相關邏輯。統一了調度邏輯,不僅僅大大提高了後羿的調度能力,同時可以讓調度技術驅動產生了更多豐富的產品形態。列舉下這個時期調度技術主要支撐的系統功能和產品:
彈無虛發-的精準調度
後羿基於Tag標簽對資源進行分組和篩選,可在AZ大範圍內實現精細的產品規格調度。豐富的權重因子,讓後羿可以在多個目標下權衡出最優的調度決策,最佳配比裝箱(最少碎片)那是最低要求,其他的隨便舉幾個例子:
Deployment Set:滿足用戶自定義的部署位置要求,例如物理機粒度打散幾個VM
資源消費打散:保障性能SLA,提升用戶體驗
客戶VM打散
機架功耗平衡
……
神機妙算的庫存精細管理
其實VM調度只是後羿的業務愛好,庫存管理才是後羿的本職工作。由於產品形態的多樣性,同一個地域同一個產品規格按不同付費類型、不同的付費時間計算出來的庫存數據都是不同的!很多人知道電商的必殺技之一就是庫存和供應鏈管理,後羿其實就是一個在網上賣VM的掌櫃而已啦。他在背後可是耍了很多小聰明的:
庫存水位控制:保障每個可用區的每個產品的在接近斷供時可以保障剛需彈性擴容和升級需求;
庫存共享:應付多種產品的不時之需;
庫存預測:預測銷售並相應地進行庫存調配
賣跳樓價的競價實例
1折的跳樓價後羿掌櫃也敢賣?!是的,他已經賣好久了。這是一種叫競價實例的遊戲,而在遊戲中坐莊的正是後羿。說白了,他就是把那些暫時空在那裏的資源拿出來臨時賣一下。為什麽是”臨時“?因為後羿在庫存充裕時才賣競價實例,庫存緊張時就要收回去。但是回收實例也是有講究的,不是隨便回收的,比如要保證至少運行1小時,要提前5分鐘通知,如此等等。那為什麽要競價?在資源緊張的地區多賣點錢?其實更重要的是跟庫存的聯動,是一種價格杠桿,讓客戶主動去選擇價格便宜庫存充足的地區和規格。這其實就是調度客戶,背後的道道其實真不少。
火中取栗的性能突發實例
競價實例雖價格便宜,量又足, 無奈的是因為它會被隨時中止釋放,所以適合的業務場景有限或者需要技術能力架構適配才能愉快使用。 有沒有價格便宜,又不用擔心被釋放的高性價比實例類型呢?價格便宜、服務有保障的性能突發實例了解一下。這是後羿掌櫃和ECS強大的虛擬化團隊的一次高水平運作,可謂火中取栗。但在強大的技術保障下,後羿把一個物理線程掰成小片片拿出來賣,而且還能保障SLA。計算力在空閑時積攢人品(Credit),在需要突發計算力時來消費人品(Credit),未來還能拿錢來買Credit。
智能未來:演繹神話
未來的大門已然開啟,智能的時代已經到來。在經歷了野蠻生長和豐富功能的階段後,後羿步入了深水區,需要更多的智慧和更廣闊的視野來精耕細作。雲計算的核心競爭力之一就是性價比,後羿未來要做的就是數據驅動的全鏈路、精細化的庫存調配和調度一體化的大閉環,並在各個環節上挖掘使用更智能的方法帶來的紅利,從數據的可視化、到運營的自動化到最後實現綜合的智能化。
後羿的故事還在繼續。伴隨著ECS業務的發展,風風雨雨的路上,我們眼裏一路奇峰異景,執著前進!塊存儲、虛擬化、虛擬化網絡、ECS管控,一群有情有義的兄弟姐妹,一個凝聚力彪悍的團隊。當然,後羿是站在了巨人的肩膀上,他的成長離不開飛天雲計算平臺強大的核心技術和阿裏雲各個產品的All-In支持!很慶幸在阿裏集團,兄弟團隊無私的合作和幫助,能讓後羿未來真正可以成為一個業界的神話。
原文鏈接
後羿射日般的精準 - 阿裏雲ECS調度是如何煉成的