2684 億背後的虛擬化技術:雙 11 All on 神龍 | 問底中國 IT 技術演進

csdn 發佈 2020-01-23T06:05:12+00:00

下面是Pod 運行在神龍上的形態:ASI Pod 運行在神龍裸金屬節點上,將網絡虛擬化和存儲虛擬化 offload 到獨立硬體節點 MOC 卡上,並採用 FPGA 晶片加速技術,存儲與網絡性能均超過普通物理機和 ECS;MOC 有獨立的作業系統與內核,可為 AVS與 TDC分批獨

作者 | 阿里雲神龍團隊 楊航、姚捷

在平穩度過2019天貓雙11流量峰值後,阿里巴巴正式宣布,雙11核心系統已100%跑在阿里雲上。中國唯一自研的飛天雲作業系統,成功扛住全球最大規模的流量洪峰!

零點剛過1分36秒,天貓雙11成交總額便突破100億元,成交速度比去年更快。今年的訂單創建峰值更是創下新的世界紀錄,達到 54.4萬筆/秒,是2009年第一次雙11的1360倍。

據悉,兩個月前,阿里巴巴就已悄悄完成這一浩大的遷徙工程,將數以十萬計的物理伺服器從線下數據中心遷移到了雲上。然而,淘寶、天貓的消費者和商家對這個「給飛機換引擎」的過程毫無感知。

由此,阿里巴巴成為全球首個將核心交易系統100%運行在公共雲上的大型網際網路公司。同為雲計算巨頭的亞馬遜、微軟、Google,都尚未邁出這一步。

雙11極致的表現離不開阿里雲自研神龍伺服器架構的支持。2019年,雙11核心系統全面搭載在神龍之上,後者輸出數百萬CPU核計算能力,全量承載電商、大數據、螞蟻、餓了麼、Lazada等海內外業務。

本文先從阿里巴巴雙11核心系統全面上云為何選擇神龍開始,繼而分享雙11 「All on 神龍」的架構與運行情況,最後是神龍團隊備戰雙11的經驗總結。

全面上雲巨大挑戰

2019 年雙 11 的實測,集群的規模超過百萬容器,單容器集群節點數量過萬,資料庫的峰值超過 54 萬筆每秒,對應 8700 萬查詢每秒,而實時計算每秒峰值處理消息超過 25 億條,消息系統 RocketMQ 峰值處理了超過每秒 1.5 億條消息。

這些數據背後所代表的,就是上雲過程中形成的巨大挑戰。

神龍,解決了傳統虛擬化痛點

雙11核心系統上雲之所以選擇神龍架構,因其具備高性能,並支持二次虛擬化。

在阿里巴巴雙11核心系統大規模遷移到神龍架構前,阿里雲團隊在 618/99 大促時驗證,阿里巴巴集團電商的容器運行在雲上反而比非雲物理機的性能要好10%-15%。

雙 11 期間壓力測試也顯示,高負載壓力下的電商應用,實現 30% 的 QPS 上升,而 rt 也有明顯下降,長尾 rt 下降尤其明顯。

神龍之所以能有如此明顯提性能提升,是因為將網絡/存儲的虛擬化開銷 offload 到硬體加速卡上,降低了約 8% 的計算虛擬化的開銷。

原來傳統x86虛擬化系統存在以下痛點:

(1)傳統虛擬化系統導致CPU計算特性缺失,比如Intel至強處理器的VT硬體輔助虛擬化能力會被虛擬化系統「消費掉」,讓客戶無法在公共雲VM實例中再次部署虛擬化系統。這樣導致的後果就是:

  1. 傳統OpenStack和基於VMware的負載無法在公共雲部署

  2. 雲原生安全容器創新難以為繼,因其依賴Intel VT硬體輔助虛擬化能力輸出

    公共雲IaaS計算資源必須輸出包含VT硬體輔助虛擬化能力在內的處理器完整ISA特性,才能加速Kata、Firecracker、gVisor等IaaS和雲原生技術的創新。

(2)傳統虛擬化系統資源占用開銷無可避免。以傳統KVM虛擬化系統為例,其雲盤塊存儲、網絡包轉發處理,都要占用Host主機側CPU和內存資源來做,這就存在一定的資源占用開銷。

(3)傳統KVM虛擬化系統導致IO性能瓶頸

存儲虛擬化和網絡虛擬化雖然通過DPDK和SPDK等技術接近了軟體優化的技術極限,但是仍然無法和晶片硬體加速的性能/時延/質量相媲美。特別是在網絡吞吐向100GbE演進的過程中,尤其是在當下,交換網絡的帶寬能力和Intel至強處理器之間的處理能力差距逐漸拉大。

阿里雲技術團隊通過專用晶片來解決上述問題。基於神龍架構的裸金屬伺服器,其架構與傳統KVM完全不同,對雲原生浪潮下容器等產品適配程度極高。從具體技術特徵維度來看,神龍有以下特點:

  • 存儲和網絡VMM以及ECS管控,和計算虛擬化分離部署;

  • 計算虛擬化進一步演化至NearMetal Hypervisor;

  • 存儲和網絡VMM通過晶片定製IP業務加速;

  • 並池支持彈性裸金屬(支持安全容器)和ECS虛擬機生產。

雙11:神龍+容器+Kubernetes

2019 年阿里巴巴雙11 系統以雲原生的方式上雲,基於神龍伺服器、輕量級雲原生容器以及兼容 Kubernetes 的調度的新的 ASI(alibaba serverless infra.)調度平台。其中 KubernetesPod 容器運行時與神龍裸金屬完美融合,Pod 容器作為業務的交付切面,運行在神龍實例上。

下面是 Pod 運行在神龍上的形態:

  • ASI Pod 運行在神龍裸金屬節點上,將網絡虛擬化和存儲虛擬化 offload 到獨立硬體節點 MOC 卡上,並採用 FPGA 晶片加速技術,存儲與網絡性能均超過普通物理機和 ECS;MOC 有獨立的作業系統與內核,可為 AVS(網絡處理)與 TDC(存儲處理)分批獨立的 CPU 核;

  • ASI Pod 由 Main 容器(業務主容器),運維容器(star-agent side-car 容器)和其它輔助容器(例如某應用的 Local 緩存容器)構成。Pod 內通過 Pause 容器共享網絡命名空間,UTS 命名空間和 PID 命名空間(ASI關閉了 PID 命名空間的共享);

  • Pod 的 Main 容器和運維容器共享數據卷,並通過 PVC 聲明雲盤,將數據卷掛載到對應的雲盤掛載點上。在 ASI 的存儲架構下,每一個 Pod 都有一塊獨立的雲盤空間,可支持讀寫隔離和限制磁碟大小;

  • ASI Pod 通過 Pause 容器直通MOC 卡上的 ENI 彈性網卡;

  • ASI Pod 無論內部有多少容器,對外只占用獨立的資源,例如 16C(CPU)/60G(內存)/60G(磁碟)。

對於神龍創新性產品,團隊一直在努力改進和優化它的相關方案,以提高運維的效率和機器本身的可靠性。這個是多方努力的結果,也是持續改進的結果,未來團隊繼續努力,不斷追求極致的性能與穩定性。

關鍵字: