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支援!很慶幸在阿裡集團,兄弟團隊無私的合作和幫助,能讓後羿未來真正可以成為一個業界的神話。