作者 | 阿里云神龍團隊 楊航、姚捷
在平穩(wěn)度過2019天貓雙11流量峰值后,阿里巴巴正式宣布,雙11核心系統(tǒng)已100%跑在阿里云上。中國唯一自研的飛天云操作系統(tǒng),成功扛住全球最大規(guī)模的流量洪峰!
零點剛過1分36秒,天貓雙11成交總額便突破100億元,成交速度比去年更快。今年的訂單創(chuàng)建峰值更是創(chuàng)下新的世界紀錄,達到 54.4萬筆/秒,是2009年第一次雙11的1360倍。
據(jù)悉,兩個月前,阿里巴巴就已悄悄完成這一浩大的遷徙工程,將數(shù)以十萬計的物理服務(wù)器從線下數(shù)據(jù)中心遷移到了云上。然而,淘寶、天貓的消費者和商家對這個“給飛機換引擎”的過程毫無感知。
由此,阿里巴巴成為全球首個將核心交易系統(tǒng)100%運行在公共云上的大型互聯(lián)網(wǎng)公司。同為云計算巨頭的亞馬遜、微軟、Google,都尚未邁出這一步。
雙11極致的表現(xiàn)離不開阿里云自研神龍服務(wù)器架構(gòu)的支持。2019年,雙11核心系統(tǒng)全面搭載在神龍之上,后者輸出數(shù)百萬CPU核計算能力,全量承載電商、大數(shù)據(jù)、螞蟻、餓了么、Lazada等海內(nèi)外業(yè)務(wù)。
本文先從阿里巴巴雙11核心系統(tǒng)全面上云為何選擇神龍開始,繼而分享雙11 “All on 神龍”的架構(gòu)與運行情況,最后是神龍團隊備戰(zhàn)雙11的經(jīng)驗總結(jié)。
全面上云巨大挑戰(zhàn)
2019 年雙 11 的實測,集群的規(guī)模超過百萬容器,單容器集群節(jié)點數(shù)量過萬,數(shù)據(jù)庫的峰值超過 54 萬筆每秒,對應(yīng) 8700 萬查詢每秒,而實時計算每秒峰值處理消息超過 25 億條,消息系統(tǒng) RocketMQ 峰值處理了超過每秒 1.5 億條消息。
這些數(shù)據(jù)背后所代表的,就是上云過程中形成的巨大挑戰(zhàn)。
神龍,解決了傳統(tǒng)虛擬化痛點
雙11核心系統(tǒng)上云之所以選擇神龍架構(gòu),因其具備高性能,并支持二次虛擬化。
在阿里巴巴雙11核心系統(tǒng)大規(guī)模遷移到神龍架構(gòu)前,阿里云團隊在 618/99 大促時驗證,阿里巴巴集團電商的容器運行在云上反而比非云物理機的性能要好10%-15%。
雙 11 期間壓力測試也顯示,高負載壓力下的電商應(yīng)用,實現(xiàn) 30% 的 QPS 上升,而 rt 也有明顯下降,長尾 rt 下降尤其明顯。
神龍之所以能有如此明顯提性能提升,是因為將網(wǎng)絡(luò)/存儲的虛擬化開銷 offload 到硬件加速卡上,降低了約 8% 的計算虛擬化的開銷。
原來傳統(tǒng)x86虛擬化系統(tǒng)存在以下痛點:
(1)傳統(tǒng)虛擬化系統(tǒng)導致CPU計算特性缺失,比如Intel至強處理器的VT硬件輔助虛擬化能力會被虛擬化系統(tǒng)“消費掉”,讓客戶無法在公共云VM實例中再次部署虛擬化系統(tǒng)。這樣導致的后果就是:
- 傳統(tǒng)OpenStack和基于VMware的負載無法在公共云部署
- 云原生安全容器創(chuàng)新難以為繼,因其依賴Intel VT硬件輔助虛擬化能力輸出
公共云IaaS計算資源必須輸出包含VT硬件輔助虛擬化能力在內(nèi)的處理器完整ISA特性,才能加速Kata、Firecracker、gVisor等IaaS和云原生技術(shù)的創(chuàng)新。
(2)傳統(tǒng)虛擬化系統(tǒng)資源占用開銷無可避免。以傳統(tǒng)KVM虛擬化系統(tǒng)為例,其云盤塊存儲、網(wǎng)絡(luò)包轉(zhuǎn)發(fā)處理,都要占用Host主機側(cè)CPU和內(nèi)存資源來做,這就存在一定的資源占用開銷。
(3)傳統(tǒng)KVM虛擬化系統(tǒng)導致IO性能瓶頸
存儲虛擬化和網(wǎng)絡(luò)虛擬化雖然通過DPDK和SPDK等技術(shù)接近了軟件優(yōu)化的技術(shù)極限,但是仍然無法和芯片硬件加速的性能/時延/質(zhì)量相媲美。特別是在網(wǎng)絡(luò)吞吐向100GbE演進的過程中,尤其是在當下,交換網(wǎng)絡(luò)的帶寬能力和Intel至強處理器之間的處理能力差距逐漸拉大。
阿里云技術(shù)團隊通過專用芯片來解決上述問題。基于神龍架構(gòu)的裸金屬服務(wù)器,其架構(gòu)與傳統(tǒng)KVM完全不同,對云原生浪潮下容器等產(chǎn)品適配程度極高。從具體技術(shù)特征維度來看,神龍有以下特點:
- 存儲和網(wǎng)絡(luò)VMM以及ECS管控,和計算虛擬化分離部署;
- 計算虛擬化進一步演化至Nearmetal Hypervisor;
- 存儲和網(wǎng)絡(luò)VMM通過芯片定制IP業(yè)務(wù)加速;
- 并池支持彈性裸金屬(支持安全容器)和ECS虛擬機生產(chǎn)。
雙11:神龍+容器+Kubernetes
2019 年阿里巴巴雙11 系統(tǒng)以云原生的方式上云,基于神龍服務(wù)器、輕量級云原生容器以及兼容 Kubernetes 的調(diào)度的新的 ASI(alibabaserverless infra.)調(diào)度平臺。其中 KubernetesPod 容器運行時與神龍裸金屬完美融合,Pod 容器作為業(yè)務(wù)的交付切面,運行在神龍實例上。
下面是 Pod 運行在神龍上的形態(tài):
- ASI Pod 運行在神龍裸金屬節(jié)點上,將網(wǎng)絡(luò)虛擬化和存儲虛擬化 offload 到獨立硬件節(jié)點 MOC 卡上,并采用 FPGA 芯片加速技術(shù),存儲與網(wǎng)絡(luò)性能均超過普通物理機和 ECS;MOC 有獨立的操作系統(tǒng)與內(nèi)核,可為 AVS(網(wǎng)絡(luò)處理)與 TDC(存儲處理)分批獨立的 CPU 核;
- ASI Pod 由 Main 容器(業(yè)務(wù)主容器),運維容器(star-agent side-car 容器)和其它輔助容器(例如某應(yīng)用的 Local 緩存容器)構(gòu)成。Pod 內(nèi)通過 Pause 容器共享網(wǎng)絡(luò)命名空間,UTS 命名空間和 PID 命名空間(ASI關(guān)閉了 PID 命名空間的共享);
- Pod 的 Main 容器和運維容器共享數(shù)據(jù)卷,并通過 PVC 聲明云盤,將數(shù)據(jù)卷掛載到對應(yīng)的云盤掛載點上。在 ASI 的存儲架構(gòu)下,每一個 Pod 都有一塊獨立的云盤空間,可支持讀寫隔離和限制磁盤大小;
- ASI Pod 通過 Pause 容器直通MOC 卡上的 ENI 彈性網(wǎng)卡;
- ASI Pod 無論內(nèi)部有多少容器,對外只占用獨立的資源,例如 16C(CPU)/60G(內(nèi)存)/60G(磁盤)。
對于神龍創(chuàng)新性產(chǎn)品,團隊一直在努力改進和優(yōu)化它的相關(guān)方案,以提高運維的效率和機器本身的可靠性。這個是多方努力的結(jié)果,也是持續(xù)改進的結(jié)果,未來團隊繼續(xù)努力,不斷追求極致的性能與穩(wěn)定性。


