做一個天貓雙十一這樣級別的活動,技術難度有多大?

養碼場訂閱號發表於2022-12-08

在平穩度過2019天貓雙11流量峰值後,阿里巴巴正式宣佈,其核心繫統已100%跑在阿里雲公共雲上。中國唯一自研的飛天雲作業系統,成功扛住全球最大規模的流量洪峰!
零點剛過1分36秒,天貓雙11成交總額便突破100億元,成交速度比去年更快。訂單峰值達到 54.4萬筆/秒,是2009年第一次雙11的1360倍。
據悉,阿里巴巴已將數以十萬計的物理伺服器從線下資料中心遷移到了雲上。
併成為了全球首個將核心交易系統100%執行在公共雲上的大型網際網路公司。同為雲端計算巨頭的亞馬遜、微軟、Google,都尚未邁出這一步。
從技術層面來講,扛住雙十一這種量級的流量高峰難度有多大?「全面上雲」對於一個網際網路科技公司又意味著什麼?

全面上雲

對於一個網際網路科技公司意味著什麼

這次的雙十一,阿里巴巴核心系統100%上雲。就是說阿里巴巴的所有核心業務,包括支付體系(支付寶)、交易系統(天貓、淘寶等)、物流系統(菜鳥)等等被稱為“阿里動物園”的拳頭產品,都在阿里雲上執行。
有人會說,這不是廢話嗎,阿里是目前中國最大的雲服務提供商,阿里自己的業務不在阿里雲上跑,那在哪裡跑。
這樣想的人就太單純了。
舉個例子,有個江湖上流傳很久的傳說。一家做得很好的小飯館,夫妻店,每天打烊時,老闆會親自下廚,給自己和老闆娘炒幾個菜。此時,老闆會蓋上平時給顧客炒菜用的油瓶,開啟櫥櫃的最後一層,從一個角落裡拿出專門給自己用的油...所以說朋友你有沒有覺得很熟悉?誰家還沒有個不待客的獨家珍藏,是不是。
早期的、甚至目前的很多雲服務廠商,像傳說中的小飯館一樣,對外提供的雲服務和執行自己業務的服務是兩套完全不同的系統。對,注意這個詞,完全不同。是不是很魔幻,突然覺得網際網路,沒有想象中那麼公平共享了。
這樣你就能真正理解阿里核心系統100%上雲有多難得了。也就是說,阿里和阿里的客戶一樣,吃同一種油炒的菜,一旦油有問題,拉肚子的不僅僅是客戶,阿里也拉。阿里巴巴的 CTO 張建鋒說,「今年雙11,阿里巴巴把身家性命放到雲上,雙11真正證明了雲端計算的穩定性」。
這種做法,在世界範圍內,阿里是第一家。真正的實現了雲共享、雲公平。
扛住雙十一
這種量級的流量高峰難度有多大? 
據阿里員工所述,今年他們有幾個比較重要的點,也是需要反覆推敲的。說起來容易,其實做起來並沒有想象中的簡單。
監控——你的監控能說明業務嗎?
監控其實在整個阿里經濟體都是一個比較有沉澱的東西。但是雙十一其實對於監控的要求更高,業務指向性更強。需要監控系統打磨出更合適的 Metrics、鏈路追蹤能力以及秒級的監控能力。包含且不限於這些點都是要考慮的:
· 系統監控;
· 程式監控;
· 業務監控;
· 鏈路追蹤;
· 資料聚合;
· 分鐘級監控、秒級監控。
總的來說,每一個系統(這已經不僅僅是侷限於雙十一了)都要具有可觀察性,可以從方方面面來體現,日誌、Trace、Metrics 等。畢竟一個系統的健康指標都在這上面,任何一環出了問題,要儘早地發現、止血,才不至於出現崩盤的現象。而雙十一則是需要有千千萬萬個這類系統,這千千萬萬個系統都需要有自己的一個監控。
壓測——你的壓測夠真實嗎?
中介軟體團隊需要打造出全鏈路壓測的能力,這一點至關重要。一個系統,甚至一整條鏈路的抗壓能力如何,瓶頸在哪一環,決定了我們要在哪個地方做最佳化、堆機器。壓測是一個需要極度負責任的一環,只有儘可能擬真的壓測才能體現出資料的可靠性。需要對線上的全鏈路統統進行壓測,並且還不能影響日常業務的正常運作。
總的來說,就是要掌握線上的真實容量,還要配合各種預案、限流,保證業務無損,絕對不掛。
實際上,Render 就對各種緊急情況有各種應對措施,如老生常談的限流、本地快取、擴容等等。這些都可以算是一個雙十一專案(甚至是日常專案)的標配了。
流量——流量控制地夠精細嗎?
這一點其實就是高可用中的一個環節了,關鍵字是分散式、流量。一個資料中心、同城雙活、異地多活,並且各種系統都上雲。
在各種系統架構下,我們需要做到精細切流,而不是一刀切,那就有點太粗糙了。還有一點值得一提的就是,我們自己的 OceanBase 的是有分散式資料中心的。
總的來說,對於各種分散式系統來說,需要有精細的流量控制,助力上雲工作。
Node.js
最後再說點更貼近我的領域的,Node.js 在阿里和螞蟻實現了什麼?隨便列個列表吧:
· alinode 程式級別的監控,還有各種堆疊、CPU 時間的 dump 能力,助力生產的穩定;
· 中介軟體的多語言實現,雖然阿里是 Java 為主的,但是各種一開始只適配 Java 的重要中介軟體和 SDK 最終都會實現出一個 Node.js 版本;
· 開源的 Egg.js 在阿里內部基本上已經成為了 Node.js 應用的標配,以及金融級別的 Node.js 架構;
· BFF 架構的大量接入應用層;
· 例如我們團隊產出的就有之前提到的 Render,還有各種 apimg、osscombo 等系統,而我們團隊也只是整個經濟體使用 Node.js 的團隊中的一小撮。
如果這些硬核解釋
沒辦法滿足你的好奇心
在今年的雙11,阿里巴巴將核心系統100%上公有云。投入10年自研的飛天雲作業系統,排程全球數百萬臺伺服器,支撐全社會的雙11。也可以說,這是對中國雲技術進行一次巔峰的壓測。如果你知道0點開始的那一刻發生了什麼,你就會了解為什麼這些工程師這麼緊張。
在全世界上億人提交訂單的那個瞬間,數以百萬計的移動裝置訊號光速飛向最近的訊號基站。在經過解析之後,又傳送到最近的資料中心裡。它們可能是位於千島湖邊上的水冷資料中心,也可能位於氣溫僅為零下5攝氏度的張北。
沒辦法,瞬間迸發的資料洪流可以立馬將機房燒燬,而最好的降溫方式,就是天然低溫。
在資料中心裡,無數的請求開始在阿里此前設定好的庫存、金額、支付等應用間不斷撞擊。經過一系列解析運算後它又從原路返回,最終回到了所有人的終端裝置上。
你能在手機上看到訂單上的數字在跳轉,卻看不到它在幾秒之內飛越了半個中國。
打個比方。一個反應靈敏的人,在聽到10個名字,可以瞬間想起他們的名字,性別,做過什麼事,再事無鉅細的描述出來。

而一個好的雲作業系統,就像是一個頂級聰明的人,在聽到100個複雜的不同的繞口令後,能用最快的速度記住,並用最快的速度一字不差的說出來。在這個過程中,既不能記錯繞口令,也不能說錯,反應還得快。聽上去不復雜,但是在世界範圍內,能做好的公司真的不算很多。

做一個天貓雙十一這樣級別的活動,技術難度有多大?
這幾年,全世界的雲端計算是三足鼎立的狀態,亞馬遜的AWS,微軟的Azure和阿里巴巴的阿里雲。而中國異常巨大的市場,無法複製的人口紅利,給予了飛天獨一無二的考驗。雖然亞馬遜和微軟都在大力推進上雲,但是亞馬遜還沒有完全基於AWS,微軟也還沒有完全基於Azure。
於是,在2019雙十一消費狂潮的倒逼中,阿里巴巴成了全世界第一個將核心系統100%放在公共雲上的大型網際網路公司。而飛天也成功的扛住了全球最大規模的流量洪峰:訂單峰值54.4萬筆/秒。
這麼說吧,如果你一秒能數2個數字,那這個峰值夠你數上3天3夜不合眼。而這只是飛天1秒處理的訂單。這下你能稍微理解到飛天的強大之處了吧。
今年的雙十一堪稱世界級史詩,世上從未有過這樣宏大的上雲場景。除了10年磨練出來的飛天,還有10年投入的資料庫、神龍、中介軟體等核心技術,哪個不過關,都過不了關。
所以,你只需要從自身的業務特點,去決定上不上雲、哪些模組上雲。阿里雲的可靠性已經不是要考慮的因素了,既然阿里自己都如此信任阿里雲,那其他人也沒有不信任的理由。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900361/viewspace-2664409/,如需轉載,請註明出處,否則將追究法律責任。

相關文章