從步履蹣跚到舉重若輕,阿里基礎架構如何扛住全球最猛的流量洪峰?
第十個雙11即將來臨之際,阿里技術推出《十年牧碼記》系列,邀請參與歷年雙11備戰的核心技術大牛,一起回顧阿里技術的變遷。
今天,阿里平臺技術事業部資深技術專家叔同,為我們講述基礎架構這十年的演進歷程:從技術追趕期,技術成熟期,再到爆發期,我們不僅支撐了雙11年年攀升的峰值,更將萬筆交易新增成本下降為原來的1/4。這一切離不開集團容器化、統一排程、混合雲彈性架構、混合部署、儲存計算分離等技術。
資深技術專家叔同
2018年是雙11的第十個年頭,回過頭來看在基礎技術領域的發展可以分為三個階段:
1、2012年及以前屬於技術追趕期,主要是遇到問題解決問題,最大的挑戰是穩定性;
2、2013年到2014年屬於技術成熟期,沉澱和創造了大量技術。包括全鏈路壓測和異地多活,能夠保住穩定性基本盤,實現跨地域水平擴充套件,IDC/網路/伺服器從維護運營向自主研發演進。這一時期業界Docker和Kubernetes開始起步,阿里也同期開始了Pouch容器和Sigma叢集管理前身的研發(AliDocker/Zeus);
3、2015年及以後屬於技術爆發期,技術迭代速度加快,基礎設施通過集約化和統一化進一步釋放規模紅利。包括基礎設施的升級,大規模基地型資料中心落地,線上業務容器化的完成,從單一業務排程向統一排程全業務在離線混部演進,從集團自身到整合阿里雲公共雲搭建混合雲彈性架構,儲存計算分離等,統一排程雲化架構開始發揮威力。通過基礎技術的升級和統一,提高了全域性資源複用能力,不但提升了技術端的效率,大幅降低成本,還提升了技術控制力,進一步增強穩定性,並且開始了智慧化的嘗試和演進。
其中有幾個關鍵節點:
2013年全鏈路壓測上線,使我們具備了業務鏈條全覆蓋的壓測驗證手段,有能力在生產環境去保障系統穩定性的確定性。
2014年單元化異地多活應用於雙11,使我們具備了遠距離異地部署和異地擴充套件的能力。
這兩種技術結合起來,使我們具備了使用彈性資源快速擴充套件,並能快速驗證穩定性交付驗收的能力,使得雙11峰值高速增長快速擴充套件下的技術保障成為了可能。穩定性和可擴充套件的問題解決了,面對雙11峰值,接下來最大的挑戰就是成本。
2015年混合雲彈性架構,自研基礎設施;2016年容器化、統一排程;2017年混合部署、儲存計算分離試水;2018年基地型資料中心、大規模混合部署、儲存計算分離全面落地,初步實現datacenter as a computer。
全鏈路壓測和異地多活講的比較多了,今天重點介紹下容器化、統一排程、混合雲彈性架構、混合部署、儲存計算分離等技術,如何全面降低大促成本。
每年雙11只有一天,如上圖所示雙11雙12的峰值是日常峰值的幾十倍、十幾倍,為了準備雙11當天峰值容量要採購大量資源,數倍於平時,大促過後資源利用率不高,通過搬遷、騰挪、拆借去滿足集團各種各樣的其他活動,資源整體彈效能力不足,會形成較長時間的低效執行期,成本浪費較大;運維體系差異大,資源排程不統一,各版塊無法平滑複用,每個業務版塊有不同的Buffer池子,線上率、分配率、利用率無法統一,機型需求也比較龐雜。
這種支撐模式難以為繼,同時阿里雲技術發展很快體量較大,具備很大的資源彈效能力,所以在2015年我們發起了雲化架構專案,希望用電商Zeus排程打通阿里雲平臺的資源彈效能力,在雲平臺上快速搭建臨時交易單元站點,構建混合雲彈性架構,去支撐快速增長的交易峰值,降低大促成本,這裡面有大量技術細節和創新,先不展開。
大促資源成本 = 資源持有時間 * 資源持有規模
通過統一排程雲化架構優化,2016年雙11萬筆交易新增成本比2015年下降50%,2018年雙11萬筆交易新增成本比2016年又下降50%,可見資源持有時間從全年變為彈性持有優化效果最明顯,也可以看到我們做的一鍵建站和壓測輪次優化節省時間意義重大,省時間省人不光提升效率還能帶來省成本的效果。整個3年時間通過基礎技術優化,萬筆交易新增成本下降為原來的1/4,這也是為什麼我們能夠支撐這麼高速的交易峰值增長的原因之一。
為了看懂這張圖,先了解幾個公式:
交易日常容量 = 交易峰值容量 - 彈性容量合計
彈性容量合計 = 混合雲 + 混合部署 + 排程優化
我們的成本優化方向是:日常保持較小交易容量,大促時找到很多低成本彈性容量支撐臨時峰值。
彈性容量合計做得越高,越趨近交易峰值容量,交易日常容量越低,資源長期持有成本越低;彈性容量合計中免費的資源越多,大促交易新增成本則越低;對於有成本的大促增量部分,如混合雲彈性架構,降低成本,有兩種方式:縮小持有規模或者縮短持有時間,近幾年每年在一鍵建站上的效率優化都在50%以上,全鏈路壓測輪次和週期也會影響混合雲資源持有時間,這裡也還有很大優化空間,所以效率和成本是可以產生直接關係的,當然雲的售賣速度一直在上升,buffer未來足以支撐集團大促空缺需求;對於無成本的大促增量部分,加大持有規模,減少持有時間(儘量保證不影響共享資源的業務)。
為了增加免費大促資源,我們聯合多個兄弟BU從16年開始儲備預演,進行小規模驗證,17年混合部署支撐大促4萬筆交易,並在18年有3倍的規模提升;從17年開始儲備Sigma彈性和分時複用技術,在18年會有8萬筆大促容量的優化落地。基礎技術的演進落地都需要較長的準備週期,要提前兩到三年佈局。為了統一排程必須要先統一執行時,我們從15年年中開始啟動容器建設,年底完成和T4功能對齊,16年5月正式啟動全網容器化,當年100%的雙11交易流量都跑在了容器上。17年雙11前,完成核心電商應用100%容器化,應用數量破萬,容器規模達到百萬級。18年開始了離線計算任務Pouch容器化的嘗試。
所謂的統一排程雲化架構到底是什麼呢,可以參考上圖。集團是一朵雲,阿里雲是一朵雲,需要的時候可以打通構建混合雲。集團的Sigma排程雙11時會通過OpenAPI批量申請Houyi管理的ECS資源,通過VPC進行公共雲網路隔離,在大規格ECS上進行執行時Pouch容器分配和託管,通過一鍵建站部署交易單元,用最簡潔高效的形式上雲;在集團內部,逐層重構升級,彈性複用資源,全域性統一排程,使技術全面雲化,得以把線上服務和計算任務混合部署,通過Sigma和Fuxi排程打通,日常時將離線計算任務引入線上叢集,大促時將線上服務引入離線叢集,大幅優化成本。
在混部實施中,技術挑戰巨大,由於線上服務與計算任務對機型要求有較大的差別,通過儲存計算分離技術(盤古儲存),把資源分為計算節點和儲存節點兩大類,抹平了異構機型帶來的差異性。在資源隔離技術方面,從伺服器的核心層面,對 CPU、記憶體、IO、網路等多方面進行優先順序的劃分,做到對相關任務的毫秒級自適性排程或限制;通過執行干擾檢測和資源畫像排程優化,以保證高優先順序的任務少受影響。混部排程和運維體系的打通、相容和升級本身也花費了很大精力。
統一排程把多個資料中心像一臺計算機一樣來管理,可以跨多個不同的平臺來排程業務發展所需的資源,構建混合叢集以極低成本拿到伺服器,先解決有沒有的問題,通過彈性分時複用和混部大幅提升資源利用率,解決用得好不好的問題;真正實現彈性資源平滑複用、任務靈活混合部署,用最少伺服器、最短時間、最優效率完成容量目標,做到datacenter as a computer。混合部署不但支撐了大促,還可以通過任務排程使得日常線上伺服器CPU利用率超過45%,使得日常IT成本下降30%的優化,帶來統一排程和雲化架構領域的技術價值爆發。
這也說明容器、編排排程、叢集管理等雲原生技術最近幾年的流行是行業發展的必然趨勢,是雲端計算時代一股不可忽視的力量,運維層這一部分的行業價值還遠遠沒有被釋放,未來阿里集團儲備的這些有競爭力的技術都可以在雲上賦能行業客戶,並推動行業技術標準化的發展。
從2015年到2018年,雙11新增萬筆交易成本已經下降為原來的1/4,隨著交易峰值的不斷高速增長,統一排程這個技術方向與多個BU的通力合作,幾年累計帶來大促直接&間接成本節約效益巨大,釋放了規模化效應下的技術紅利。
隨著阿里繼續在統一排程雲化架構混合部署等技術方向的深耕,未來大促新增資源成本有望做到零增加,值得挑戰值得期待。
你可能還喜歡
點選下方圖片即可閱讀
關注「阿里技術」
把握前沿技術脈搏
相關文章
- 五張實時圖為證,美國經濟復甦步履蹣跚
- OceanBase X 成都有惠 | 扛住資料流量洪峰,找對 CP 是關鍵!
- go-zero 如何扛住流量衝擊(一)Go
- go-zero 如何扛住流量衝擊(二)Go
- 安全中臺:讓安全舉重若輕
- 《架構基礎 從需求到架構》讀書架構
- 扛住阿里雙十一高併發流量,Sentinel是怎麼做到的?阿里
- 阿里P8面試官:如何設計一個扛住千萬級併發的架構?阿里面試架構
- 美國通脹率“破9”創40年新高!加密步履蹣跚?全球屏住呼吸等待美國下一步動作!加密
- 今日資料行業日報(2020.07.14)『五張實時圖為證,美國經濟復甦步履蹣跚』行業
- 如何扛住遊戲流量高峰?Evil Dead 主創這樣說遊戲
- 特殊時期,釘釘如何透過單元化扛住流量高峰?
- 阿里P8面試官:如何設計一個扛住千萬級併發的架構(超級詳細)-續阿里面試架構
- 使用 CliWrap 讓C#中的命令列互動舉重若輕C#命令列
- 舉重若輕的人人車移動端資料平臺
- LLM 鏈式架構基礎:從入門到實踐架構
- 如何基於阿里雲搭建適合初創企業的輕量級架構?阿里架構
- 微服務架構基礎之輕量級部署微服務架構
- 如何把 ThinkPHP 5 的專案遷移到阿里雲函式計算來應對流量洪峰?PHP阿里函式
- IoT裝置訊息洪峰怎麼扛? 阿里雲AIoT訊息佇列深度解讀阿里AI佇列
- 微服務架構 spring boot 那些最基礎的知識點微服務架構Spring Boot
- 看CDN/DCDN/GA技術如何應對流量洪峰
- 如何把thinkphp5的專案遷移到阿里雲函式計算來應對流量洪峰?PHP阿里函式
- Vue學習路徑-輕鬆從基礎到實戰Vue
- IT架構的基礎實施架構
- MySQL基礎架構MySql架構
- MySQL 基礎架構MySql架構
- 自建最輕量的react+webpack+es6架構ReactWeb架構
- 輕鬆構建基於 Serverless 架構的小程式Server架構
- Spring Cloud雲架構-Restful 基礎架構SpringCloud架構REST
- 架構設計之一——基礎架構架構
- 億級流量系統架構之如何設計承載百億流量的高效能架構【石杉的架構筆記】架構筆記
- 重構:從Promise到Async/AwaitPromiseAI
- 從單體架構到分散式微服務架構的思考架構分散式微服務
- 從MVC到DDD的架構演進MVC架構
- redis哨兵架構基礎Redis架構
- MySQL基礎架構分析MySql架構
- 探索ABP基礎架構架構