阿里巴巴如何應對雙11流量洪峰?一文揭祕其數據中心強大之處

2015 年,微信在春晚發紅包,在全國觀眾的衝擊下,一度跪倒長達一小時,俯首拜年;

2018 年,淘寶在主持人口播活動開始的一瞬間,服務器瞬間超過負荷,重蹈騰訊三年前的覆轍;

2019 年,百度嘔心瀝血,成功接下春晚紅包項目,洗刷過往十年風塵。

春晚戰事下,強大如騰訊、阿里皆落得狼狽收場,百度也大有“一將功成萬骨枯”之勢方才穩下陣腳。

上述種種,在羅振宇的口中,“我們對春晚一無所知”,道出了其中的艱辛和挑戰。

無知、不慎、血拼之後,塵埃落定,春晚戰事告一段落。表面上看,是中國三大互聯網巨頭在春晚巨大流量面前的脆弱。再往深處看,看到的則是數據庫、服務器等 IT 設施無法滿足時代需求。

春晚一戰後,BAT 迴歸自己的商業地盤,在趨勢需求和技術驅動下,化曾經的不堪、不甘、不逮為新的動力,奮力去構建更穩固的護城河。

或許,相比之下,阿里有更多機會去再次證明自己。

2019 年雙 11,就是一個不錯的機會,在需求和挑戰面前,靜待曾經的不堪被打破。

96 秒成交額破 100 億,達全球最大流量洪峰,每秒訂單峰值 54.4 萬筆,在這個剛剛過去的 2019 年雙 11 中,一個個數字對於消費者多是一場驚歎的狂歡,對於局中人則是靜默的宣告著戰場的殘酷。

這一次,阿里技術團隊面對第十一次雙 11,他們扛住了。

在平穩度過 2019 天貓雙 11 流量峰值後,阿里宣佈其核心繫統已 100%跑在阿里雲公共雲上,中國唯一自研的飛天雲操作系統成功扛住全球最大規模的流量洪峰。今年的訂單創建峰值更是創下新的世界紀錄,達到 54.4 萬筆 / 秒,是 2009 年第一次天貓雙 11 的 1360 倍。

據阿里介紹,兩個月前悄悄完成這一浩大的遷徙工程,將數以十萬計的物理服務器從線下數據中心遷移到了雲上。由此,阿里巴巴成為全球首個將核心交易系統 100%運行在公共雲上的大型互聯網公司,同為雲計算巨頭的亞馬遜、微軟、Google 等無人能出其右。

天貓雙 11 十一年來一直在推動著阿里的技術進步,每一個峰值性能的背後都需要一個大規模數據中心來支撐,征服雙 11 流量洪峰意味著阿里雲已經有能力應對商業世界更加複雜的技術挑戰。

從 0 到 1 的跨越,外人或知此非易事,唯有阿里苦走了十年。今天,站在阿里以技術引領時代的潮頭,回顧往昔,憶其崢嶸歲月。

憶往昔崢嶸歲月

回顧阿里數據庫發展歷程,大概可以分為三個階段:

第一階段(2005-2009)商業數據庫時代;

第二階段(2009-2015)開源數據庫時代;

第三階段(2016 年 - 至今)自研數據庫時代。

商業數據庫時代:IOE 成癮

阿里巴巴如何應對雙11流量洪峰?一文揭秘其數據中心強大之處

商業數據庫時代是大家熟知的 IOE 時代。

IOE 即:

I(IBM,服務器提供商,他們提供的服務器俗稱“小型機”)

O(Oracle,數據庫提供商,他們的軟件是著名的“甲骨文商業數據庫”)

E(EMC,存儲設備提供商,他們提供的是“集中式存儲”)

商業數據庫時代,購買國外成熟的設備和系統,幾乎是 BAT 和所有國內大企業的唯一選擇。從阿里業務規模起始到 2008 年漸成規模,阿里的 IT 架構中,淘寶和支付寶使用的絕大部分都是 IBM 小型機、Oracle 商業數據庫以及 EMC 集中式存儲。

隨著用戶數和數據量的猛增,服務器的處理能力幾近滿載,同時伴隨著彼時阿里的崛起之勢,IOE 的設備和系統逐漸開始暴露出問題,價格太高以及對於大數據量處理能力的瓶頸成為了“去 IOE”最大的誘因。

2008 年中旬,研發一套新技術架構替換掉阿里舊引擎的計劃,在公司內部開始萌芽、發酵。

同年,王堅加入阿里,為阿里技術的基因埋下種子。

阿里巴巴如何應對雙11流量洪峰?一文揭秘其數據中心強大之處

開源數據庫時代:“去 IOE”擁抱開源數據庫

“去 IOE”

2009 年,阿里的 Oracle RAC 集群節點數達到了創記錄的 20 個,排名亞洲第一。但隨之而來的是服務器的頻繁宕機、無法很好滿足業務需求和設備、軟件等方面越來越高昂的成本支出。

規模和動盪之間,有對阿里業務發展速度的褒獎,另一方面又無不是對擺脫 IOE 的敦促。

在 2009 一整年的摸索和籌備之後,“去 IOE”正式寫進了阿里的公司戰略:“2010 年以後,再也不購買小型機、放棄 Oracle、轉投開源數據庫。”

“去 IOE”:即去除以 IBM、Oracle、EMC 為代表的小型機、集中式數據庫和高端存儲所組成的傳統 IT 基礎架構,轉而以商業化的 x86 服務器和 SSD、開源數據庫 AliSQL(阿里巴巴的 MySQL 分支)和分佈式數據庫中間件 TDDL 組成的更加靈活、易於擴展、成本更優的適合互聯網需求的新型 IT 基礎架構。

“去 IOE”帶來了三個重大的意義:

第一是解決了擴展性的問題,讓數據庫具備了橫向擴展(彈性)的能力,為未來很多年雙 11 零點交易峰值打下了很好的基礎;

第二是自主可控,阿里在 AliSQL 中加入了大量的特性,更能滿足雙 11 等特定情況下對於數據庫的技術要求;

第三是穩定性,原來在商業數據庫時代,把所有數據都放在小型機裡,去 IOE 之後不僅僅解決了單機故障,更是通過異地多活的架構升級讓數據庫跨出了城市的限制,可以實現數據庫城市間的多活和容災,大大提升了系統的可用性。

從更深層的意義上說,“去 IOE”是在互聯網+、雲計算快速興起後,企業用戶迫切需要能夠保證其業務發展和創新的更加開放、靈活、高效的 IT 基礎架構。此舉推動了用橫向擴展取代縱向擴展,用開源軟件代替商業軟件的進程,為雲計算的發展搭橋鋪路。

此外,“去 IOE”還促進了我國自主可控的發展。阿里的成功讓大量中國的服務器廠商、軟件平臺和應用軟件廠商,以及立足自主研發的存儲廠商看到了實現跨越式發展的契機。

2009 年,阿里雲正式成立,在王堅的帶領下從零開始打造那個想象中的屬於中國的雲計算系統,取名“飛天”。

阿里巴巴如何應對雙11流量洪峰?一文揭秘其數據中心強大之處

開源數據庫

“去 IOE”迫在眉睫,一眾阿里技術大牛投入其中。一年的努力,開源數據庫 MySQL 的一個阿里專屬分支 AliSQL 被雕刻出來。2011 年 7 月,淘寶商品庫完成了從 Oracle 到 AliSQL 的大遷移,意味著軟件替代方案被驗證成功。

硬件方面,AliSQL 團隊在硬件替代方案上不斷驗證,協助設計了一套兼顧網絡性能、存儲性能和成本最優的服務器採購方案。

軟硬俱全,阿里扣響了通往開源數據庫的大門。整個阿里巴巴集團進入了 2012-2013 年史詩般的整體大遷移。

AliSQL 數據庫開始一點一滴地滲透進集團每一個服務中。2013 年 5 月,阿里最後一臺小型機下線;2013 年 7 月,淘寶核心系統中的最後一臺 Oracle 數據庫下線。至此,“去 IOE”戰略宣告達成,這場史詩般的大遷移落下帷幕。

2012 年雙 11 前,淘寶天貓的所有數據庫都從 Oracle 替換成 AliSQL,阿里巴巴依靠 AliSQL 重返那個盛大的戰場,接受最嚴酷的考驗;

2013 年,阿里驚險的實現單集群 5000 臺服務器,把飛天推上 5K,杜絕了諸多業務停擺的災難。

其中,在 2013 年雙 11 前,阿里技術團隊還完成了兩項技術創新:“服務器資源彈性部署”和“數據中心異地雙活”。

服務器資源彈性部署,可以應對不可預知的業務爆發。一旦有超出預期的業務熱點出現,系統可自動調用其他資源使用不足的服務器,實現“分鐘級無縫切換”,在不增加硬件部署的情況下應對更復雜的流量變化;數據中心異地雙活則可以幫助阿里應對極端的情況,即使杭州的數據中心宕機,系統仍然能夠支撐雙 11 的順利運轉。

在此,有業內人士指出,目前行業普遍採用的是“兩地三中心”部署架構,即在一個城市設兩個機房,在另一個城市設一個冷備機房。而阿里的容災系統是“三地五中心”,即在三座城市部署五個機房,一旦其中一個或兩個機房發生故障,阿里的底層技術系統會將故障城市的流量全部切換到運行正常的機房,並且能做到數據保持一致且零丟失。

帷幕之下,大眾盡興四散,看不到的背後是阿里 2012 年雙 11 的涅槃重生,是 2013 年雙 11 有驚無險。驚險一躍,飛天 5K 的成功開始讓阿里雲駛上了快車道。

因為突破了技術瓶頸,在 5K 之後,ODPS(飛天 5K 計劃項目名)只用了幾個月就衝上了單集群 10K,進而實現了無限制擴展。到 2018 年,已經更名為 MaxCompute 的 ODPS 達到了數萬臺的規模。

飛天是國內目前唯一自主研發的雲操作系統,已發展成國內規模最大的計算平臺,調度全球數百萬臺服務器,在全球 200 多個國家和地區為數百萬客戶提供服務,可擴展至 10 萬臺計算集群,在阿里經濟體中支撐了全局數據存儲和計算,年數據處理量超過 600PB,阿里提供的數據顯示,公司 AI 服務的每日調用量高達百億次,服務全球近 15 億人。

阿里巴巴如何應對雙11流量洪峰?一文揭秘其數據中心強大之處

自研數據庫時代:開創未來

2016 年,阿里決定開始自研數據庫。

對於自研數據庫的原因,有以下三點:

第一,阿里需要一個能夠全球部署的原生分佈式數據庫;

第二,雙 11 的場景對數據庫提出了極高的要求:

性能:在雙 11 零點需要數據庫提供非常高的讀寫能力;

存儲成本:數據庫使用 SSD 來存儲數據,而數據存在明顯的冷熱特性,大量冷的歷史數據和熱的在線數據存放在一起,日積月累,佔用了大量寶貴的存儲空間,存儲成本的壓力越來越大。繼續在開源數據庫基礎上進行改進已經無法滿足業務需求。

第三,新的硬件技術的出現,如果說 SSD 的大規模使用和 X86 服務器性能的極大提升推動了去 IOE 的進程,那麼 NVM 非易失內存,FPGA 異構計算,RDMA 高速網絡等技術將第二次推動數據庫技術的變革。

POLARDB

2017 年 9 月,POLARDB 盛大發布。

POLARDB 是阿里自主研發的下一代關係型分佈式雲原生數據庫,目前兼容三種數據庫引擎:MySQL、PostgreSQL、高度兼容 Oracle 語法。計算能力最高可擴展至 1000 核以上,存儲容量最高可達 100T,能夠解決數據量瓶頸、擴展難以及數據一致性和可用性難保證等主要問題。

大概能夠理解為,過去需要 70 個小時的 10TB 的業務數據創建只讀副本,在 POLARDB 上只需 2 分多鐘。更關鍵的是,它的成本只有商用數據庫的十分之一。發佈後半年內,上千個用戶用上了這個新數據庫。

X-DB

此外,針對淘寶訂單地域多樣的特殊業務場景,要求數據要可擴展,持續可用、強一致。因此,新一代數據庫必須要包含全球部署、對存儲數據冷熱隔離等幾個重要特點。

一個自研的超大規模數據庫系統 X-DB 由此誕生。短短几個月,X-DB 就在集團體系內完成了 MySQL、AliSQL 集群的升級換代。

可以看到,對阿里的自研數據庫而言,2017 年意義非凡。正是從這一年開始,以大致勝的 X-DB 和以快致勝的 POLARDB 成為了阿里數據庫的兩款拳頭產品。

(X-DB 現已更名 POLARDBX,成為 POLARDB 的分佈式版本,共同通過阿里云為社會提供服務。)

神龍架構

同年,阿里雲“神龍架構”橫空出世,此後的 2018、2019 年,神龍架構一年一個臺階,第二代、第三代神龍服務器接踵而至。

在今年的阿里雲棲大會上,阿里雲正式發佈第三代自研神龍架構,全面支持 ECS 虛擬機、裸金屬、雲原生容器等,貫穿整個 IaaS 計算平臺,並在 IOPS、PPS 等方面提升 5 倍性能,用戶能在雲上獲得物理機 100%的計算能力。在歷經軟件虛擬化、通用硬件虛擬化、專用硬件芯片虛擬化三個階段後,第三代神龍架構實現了裸金屬服務器、ECS 虛擬機等計算平臺的架構統一,用戶可獲得高質量的彈性資源。

阿里雲官方透露,神龍架構已大規模應用於淘寶、天貓、菜鳥等業務。未來,阿里雲遍佈全球的百萬服務器將全面升級至第三代神龍架構。

上述是阿里在數據庫方面的改進和革新,三個階段分別代表著阿里在三個不同的發展時期對不同業務需求做出的應對之舉。每一個階段過渡的背後,都是一代代阿里人對於信念和執著的真實寫照。

那麼,數據庫之外,阿里還做了哪些嘗試和顛覆?

其它技術突破

Tair

在雙 11 的歷史上,阿里自研緩存 Tair 是非常重要的技術產品,Tair 是一個高性能、分佈式、可擴展、高可靠的 key/value 結構存儲系統。數據庫正是因為有了 Tair 的幫助,才扛起了雙 11 如此巨大的數據訪問量。

但是,在 2016 年雙 11 期間,Tair 遇到熱點這一技術難題,由於熱點無法預測,加上訪問量非常大,很容易就超出了單機的容量限制,CPU 和網卡都會成為瓶頸。

對 Tair 來說,在保證高併發訪問的同時,如何確保低延遲,如何確保成本低於業務增速的技術挑戰越來越大。對於分佈式存儲系統來說,熱點問題都是比較難解決的。而緩存系統流量特別大,熱點問題更為突出。

2017 年,團隊開發出熱點散列技術,當發現熱點後,應用服務器和 Tair 服務端就會聯動起來,根據預先設定好的訪問模型,將熱點數據動態散列到 Tair 服務端其它數據節點的 HotZone 存儲區域去訪問。通過將熱點散列到整個集群,所有集群的水位均降低到了安全線下。

“預熱”技術

雙 11 期間,購物車等數據庫在零點的一剎那,由於 Buffer pool 中的數據是“冷”的,當大量請求在零點一瞬間到來時,數據庫需要先“熱”起來,需要把數據從 SSD 讀取到 Buffer pool 中,這就導致瞬間大量請求的響應時間變長,影響了用戶的體驗。

因此推出“預熱”技術,即在雙 11 前,讓各個系統充分“熱”起來,包括 Tair,數據庫,應用等等。為此專門研發了一套預熱系統,預熱分為數據預熱和應用預熱兩大部分,數據預熱包括:數據庫和緩存預熱,預熱系統會模擬應用的訪問,通過這種訪問將數據加載到緩存和數據庫中,保證緩存和數據庫 BP 的命中率;應用預熱包括:預建連接和 JIT 預熱,我們會在雙 11 零點前預先建立好數據庫連接,防止在高峰時建立連接的開銷,也保證了 JAVA 代碼可以提前充分編譯。

存儲計算分離

如果計算和存儲綁定在一起,無法實現極致的彈性,因為計算節點的遷移必須“搬遷”數據。此外,發現在雙 11 高峰時,對於計算能力的要求陡增,但是對於存儲能力的要求並沒有發生顯著變化,如果可以實現存儲計算分離,雙 11 高峰只需要擴容計算節點即可,因此催生出存儲計算分離技術。

2018 年雙 11,隨著存儲計算分離技術的大規模使用,標誌著數據庫進入了一個新的時代。

在線離線混部

日常讓離線任務跑在在線(應用和數據庫)的服務器上,雙 11 大促在線應用使用離線的計算資源,在實現存儲計算分離技術後,數據庫可以在雙 11 使用離線的計算資源,從而實現極致的彈性能力。通過使用雲資源和混部技術,可以最大程度降低雙 11 交易峰值帶來的成本。

智能化

數據庫和智能化相結合也是阿里一直在探索的一個方向,比如 Self-driving Database 等。2017 年,第一次使用智能化的技術對 SQL 進行自動優化。近年來,全網推廣 SQL 自動優化和空間自動優化,希望可以藉此來降低 DBA 的工作負擔,提升開發人員效率,並有效提升穩定性。相信,在未來的雙 11 備戰工作中,會有越來越多的工作可以交給機器來完成。

達摩院

2017 年雲棲大會上,“達摩院”成立,致力於通過科技研究和創新探索未知領域,誓要爭奪未來 10 年的技術高峰。阿里巴巴達摩院由三大主體組成,一是在全球建設的自主研究中心;二是與高校和研究機構建立的聯合實驗室;三是全球開放研究項目 - 阿里巴巴創新研究計劃(AIR 計劃)。

如今,達摩院建立 14 個實驗室,專注於機器智能、數據運算、機器人技術、金融科技 X 實驗室五個方面的研究。

平頭哥

2018 年,平頭哥成立,平頭哥是阿里全資收購杭州中天微後的半導體芯片業務主體,主要針對下一代雲端一體芯片新型架構開發數據中心和嵌入式 IoT 芯片產品。平頭哥從雲和端兩個方面進行軟硬深度協同的技術創新,目標是讓數據和計算更普惠,持續拓展數據技術的邊界。

如今,平頭哥已陸續有多款產品亮相:

2019 年 7 月,平頭哥發佈了高性能 RISC-V 架構處理器玄鐵 910,集成 16 個核心,主頻 2.5GHz,採用 12 級亂序流水線,最大支持 8MB 二級緩存,搭載 AI 增強的向量計算引擎,可用在人工智能加速器、網絡通信和自動駕駛等領域。當時公佈的數據顯示,玄鐵 910 較業界主流芯片性能提高 40%,較標準指令性能高出 20%。

8 月,平頭哥又發佈 SoC 芯片平臺“無劍”,無劍平臺由 SoC 架構、處理器、各類 IP、操作系統、軟件驅動和開發工具等模塊構成,面向 AIoT 提供的集芯片架構、基礎軟件、算法與開發工具於一體的整體解決方案。根據官方的說法,無劍能夠幫助芯片設計企業將設計成本降低 50%,設計週期壓縮 50%。

9 月,在阿里今年的雲棲大會上,平頭哥發佈了其第一顆自研芯片含光 800,該芯片推理性 78563IPS,業界第一,能效比 500IPS/W,是目前全球最強 AI 推理芯片。目前,含光 800 正在應用於城市大腦、拍立淘等業務,基於該芯片的 AI 雲服務也已正式上線,明年雙 11 將大規模應用平頭哥自研的含光 AI 芯片。

另外,在生態建設方面,平頭哥還將成立芯片開放社區。不僅如此,平頭哥還在研發用於阿里雲神龍服務器的 SoC 專用芯片。未來,阿里還將進一步完善產品形態,推出包括雲端 AI 訓練芯片和終端 AI 推理芯片,滿足更多場景的算力需求。

“雙 11”回顧

阿里巴巴如何應對雙11流量洪峰?一文揭秘其數據中心強大之處

回顧歷屆雙 11,根據阿里雲官方分享的數據可以看到,阿里雲的發展歷程和算力峰值都在不斷變化和提升。

對於本次如何撐住了雙 11 世界級的流量洪峰,阿里巴巴集團 CTO、阿里雲智能總裁張建鋒總結道:

第一,阿里在核心虛擬機系統上,自研神龍架構,用自研的服務器來做虛擬化。一般的服務器隨著壓力增長,最終負載能力會慢慢下降,它不是線性的。而神龍服務器壓力越大,輸出也是保持線性的,這是非常難做到的;

第二,自研了雲原生的數據庫。今年有兩個數據庫,一個是自研的 OceanBase,大家知道我們在 TPC-C 測試裡面拿下了全球第一。第二是 POLARDB,也廣泛用在這次雙 11 上,每秒峰值也是遠遠超越於原來 Oracle 這樣傳統的數據庫。

第三,計算與存儲做了分離,現在阿里存儲是有一個地方專門存數據。數據都是從遠端存取的,有一個專門的池,所以存儲可以很方便的擴容。原來做不到是因為遠端存儲,訪問網絡速度跟不上。

第四,之所以現在能夠做到在遠端存儲,能夠比本地讀寫磁盤更快,是因為阿里做了 RDMA 網絡,這也是全球第一個大規模做 RDMA 網絡的公司。

在上述四個方面都做了核心突破,以此來應對愈發龐大的交易峰值。相信,隨著達摩院和平頭哥的發展和產品融合,未來將會有更完善的產品去助力算力提升,應對更大的流量洪峰,滿足更高的業務發展需求。

結語

十年來,阿里巴巴數據庫團隊秉承著推動中國數據庫技術變革的使命,從商業數據庫到開源數據庫再到自研數據庫,一直在為這個使命而努力奮鬥。

如果說“去 IOE”是變革的開始,那麼雲就是變革的繼續,如今的阿里雲,已經在中國公有云市場佔據了近一半的份額,穩居全球前三大雲之列,40%的中國 500 強企業和 80%的科技類公司都彙集在阿里雲之上,使用著阿里雲提供的雲服務。

下一個十年,阿里雲又將帶來怎樣的驚喜和顛覆?

未來可期是留給我們最好的答案。


分享到:


相關文章: