BAT春晚暗戰(zhàn)云計(jì)算

2 評(píng)論 99918 瀏覽 72 收藏 18 分鐘

春晚紅包的挑戰(zhàn),正是提前練兵的好時(shí)機(jī)。這場(chǎng)看不見的云計(jì)算戰(zhàn)爭(zhēng),推動(dòng)了中國(guó)互聯(lián)網(wǎng)技術(shù)整體演進(jìn)。

2007年,國(guó)內(nèi)情報(bào)史專家高金虎出版過一本《看不見的第二戰(zhàn)場(chǎng)》,講述無線電情報(bào)與戰(zhàn)爭(zhēng)的關(guān)系。

“看不見的第二戰(zhàn)場(chǎng)”,這段話拿來形容BAT春晚紅包戰(zhàn)背后的云計(jì)算技術(shù)戰(zhàn)再合適不過了。每年的春晚紅包戰(zhàn)似乎成了BAT的正面戰(zhàn)場(chǎng),三巨頭呼風(fēng)喚雨,在短時(shí)間內(nèi)把紅包、福利全都撒出去。

大家明面上能看到是三家發(fā)了多少紅包、撒了多少現(xiàn)金,背后牽扯到的技術(shù)、資源等配置確是錯(cuò)綜復(fù)雜。

從2014年春節(jié),騰訊就因?yàn)椤凹t包”太受歡迎遇到了技術(shù)上的“驚險(xiǎn)一刻”。2016年、2017年、2018年騰訊、阿里紛紛在云計(jì)算戰(zhàn)場(chǎng)投入重兵把分布式計(jì)算、線上智能容災(zāi)這些技術(shù)不斷普及并逐漸提高。

為支持春晚項(xiàng)目,百度再一次技術(shù)進(jìn)化,讓全自動(dòng)自如擴(kuò)容縮容,技術(shù)體系彈性容器設(shè)計(jì),智能調(diào)度系統(tǒng)智能感知不同地區(qū)資源緊張程度成為日常。

2019年春晚直播期間,百度APP紅包互動(dòng)活動(dòng)次數(shù)達(dá)208億次。還共發(fā)出1000萬個(gè)20.19元的紅包,100萬個(gè)88元紅包,10萬臺(tái)小度AI音箱,1萬個(gè)2019元紅包以及若干手氣紅包??偣惭?qǐng)全球觀眾參與共同瓜分了9億現(xiàn)金紅包大獎(jiǎng)。

在蘋果APP Store、小米應(yīng)用商店、華為應(yīng)用商店以及微信紅包都在春晚出現(xiàn)崩潰時(shí)刻的時(shí)候,百度APP歷經(jīng)208億次紅包互動(dòng)反而沒倒??梢姳澈蟀俣仍朴?jì)算的技術(shù)進(jìn)化速度之快,技術(shù)能力之強(qiáng)其他互聯(lián)網(wǎng)公司均沒能出其右。

崩潰不崩潰?這是個(gè)問題。BAT春晚紅包戰(zhàn)背后暗暗較勁的正是云計(jì)算技術(shù)。它如正面戰(zhàn)場(chǎng)背后的情報(bào)戰(zhàn)一樣,看不見摸不著,但卻往往起到了決定作用。

春晚“驚險(xiǎn)一刻”,家家都要應(yīng)對(duì)

2017年年初,我當(dāng)時(shí)在一家媒體工作時(shí),曾經(jīng)和騰訊FIT(騰訊支付基礎(chǔ)平臺(tái)與金融應(yīng)用線)春晚紅包技術(shù)負(fù)責(zé)人聊過紅包戰(zhàn)背后的技術(shù)問題。

2014年春節(jié)前十幾天,騰訊春節(jié)紅包團(tuán)隊(duì)為活躍新年氣氛,想到要在微信里加入搶紅包功能。一個(gè)大約10人,隸屬于騰訊FIT技術(shù)部門的核心團(tuán)隊(duì)主導(dǎo)了開發(fā)過程。

春節(jié)紅包正式上線前,團(tuán)隊(duì)內(nèi)測(cè)時(shí)便發(fā)現(xiàn),這個(gè)“小功能”使用人數(shù)遠(yuǎn)遠(yuǎn)超過預(yù)期:從廣州等一線城市開始,發(fā)紅包的習(xí)慣逐漸擴(kuò)展到二、三、四線城市,直至全國(guó)。數(shù)據(jù)增長(zhǎng)得“驚心動(dòng)魄”,春節(jié)紅包團(tuán)隊(duì)每天都要忙著給紅包系統(tǒng)擴(kuò)容。

春節(jié)紅包團(tuán)隊(duì)當(dāng)時(shí)隱隱覺得,除夕夜可能會(huì)出問題,“用戶增長(zhǎng)量太大了,這個(gè)功能一開始架構(gòu)就是按照小系統(tǒng)來設(shè)計(jì)的,但臨時(shí)改動(dòng)已經(jīng)來不及了。”

墨菲定律中有這樣一條:如果你擔(dān)心某種情況發(fā)生,那么它就更有可能發(fā)生。

1月28日,除夕前倒數(shù)第二天那個(gè)下午,“新年紅包”的圖標(biāo)第一次出現(xiàn)在“我的銀行卡”界面中,微信紅包潮隨即引爆全國(guó)。

驚險(xiǎn)瞬間在除夕夜一觸即發(fā),春節(jié)紅包團(tuán)隊(duì)迅速啟動(dòng)了過載保護(hù)。過載用戶想發(fā)紅包時(shí),系統(tǒng)會(huì)提示“當(dāng)前系統(tǒng)繁忙”。除夕夜還在加班的程序員們就像是交警一樣,在一條堵死的十字路口上不斷控制流量。

幸好,當(dāng)時(shí)騰訊FIT技術(shù)團(tuán)隊(duì)臨時(shí)調(diào)來了10倍于原設(shè)計(jì)數(shù)量的服務(wù)器,最終有驚無險(xiǎn)地扛住了考驗(yàn)。

此一役后,安全、容災(zāi)、性能成了每個(gè)春節(jié)紅包團(tuán)隊(duì)需要長(zhǎng)期考慮的問題。在2016年以后,騰訊FIT技術(shù)逐漸為春節(jié)紅包構(gòu)建了一套“多點(diǎn)多活、多地多中心”的分布式交易系統(tǒng)。

BAT春晚暗戰(zhàn)云計(jì)算

后來的微信紅包、支付寶紅包背后的云計(jì)算團(tuán)隊(duì)每年都需要“一把屎一把尿”,不斷改進(jìn)春晚紅包的技術(shù)框架,除夕這天加班加點(diǎn)避免紅包宕機(jī)。

創(chuàng)業(yè)邦在2017年就曾以《支付寶17年新春紅包技術(shù)體系剖析》一文介紹螞蟻金服技術(shù)團(tuán)隊(duì)在春晚前的技術(shù)準(zhǔn)備,其中這樣一段非常值得注意:

螞蟻金服在終端上采用了限流無感知、資源預(yù)下載、用戶操作數(shù)據(jù)緩存、開獎(jiǎng)時(shí)間離散、數(shù)據(jù)項(xiàng)與開關(guān)動(dòng)態(tài)配置等穩(wěn)定性操作;在服務(wù)端,進(jìn)行了全鏈路梳理、全鏈路壓測(cè)、限流保護(hù)、應(yīng)急熔斷機(jī)制等。

BAT春晚暗戰(zhàn)云計(jì)算

百度今年也不例外。2019年1月4日收到百度春晚要發(fā)紅包的消息后,百度技術(shù)團(tuán)隊(duì)首先要想的問題是,如何搭建春晚紅包的技術(shù)框架,原因很復(fù)雜。

百度APP不像微信是個(gè)日常應(yīng)用,它是一個(gè)剛需但低頻的工具型APP,用戶用完即走,不會(huì)保持長(zhǎng)時(shí)間在線。但在春晚期間,用戶搶紅包、集卡會(huì)使得使用時(shí)長(zhǎng)、操作頻次大大提高。

同時(shí),春晚紅包涉及百度數(shù)十個(gè)產(chǎn)品、數(shù)百個(gè)操作場(chǎng)景,這會(huì)給百度APP帶來高并發(fā)、大流量,同時(shí)給百度云的服務(wù)器、帶寬等技術(shù)基礎(chǔ)設(shè)施帶來巨大沖擊。后果可能是用戶打開百度APP緩慢,無法登錄賬號(hào),點(diǎn)擊界面無反應(yīng),甚至白屏,更別說搶紅包。

因此,百度技術(shù)團(tuán)隊(duì)需要梳理的問題很多,甚至比騰訊FIT、阿里云團(tuán)隊(duì)更要繁瑣:

  1. 需要針對(duì)本次春晚的突發(fā)需求,讓外網(wǎng)骨干網(wǎng)可以支撐大帶寬快速接入;
  2. 技術(shù)方案確定后,還要解決資源供應(yīng)問題。比如要在2周內(nèi)采購到貨3000臺(tái)服務(wù)器。還需要運(yùn)營(yíng)商資源為百度核心IDC提供近10T帶寬和數(shù)十個(gè)CDN節(jié)點(diǎn)等資源;
  3. 準(zhǔn)備時(shí)間過短引發(fā)運(yùn)營(yíng)商資源提供方面的許多問題,比如商務(wù)部門需要和50多個(gè)城市的CDN運(yùn)營(yíng)商資源緊急談判;
  4. 外部對(duì)接結(jié)束之后,內(nèi)部技術(shù)團(tuán)隊(duì)還需要進(jìn)行資源部署、系統(tǒng)聯(lián)調(diào)、壓力測(cè)試。

可以說,2019年以前,幾乎每一個(gè)春晚紅包團(tuán)隊(duì),都會(huì)遭到煉獄一般的技術(shù)考驗(yàn),從騰訊到阿里無一幸免。然而,2019年春晚,百度APP的“零宕機(jī)”紀(jì)錄是互聯(lián)網(wǎng)公司的首創(chuàng)。

你開心搶紅包時(shí),程序員卻在心驚膽戰(zhàn)

春晚時(shí),每一個(gè)人都在開心搶紅包。你以為只是頁面偶爾卡頓了一下、網(wǎng)絡(luò)延遲了1秒,實(shí)際上背后有著無數(shù)個(gè)技術(shù)團(tuán)隊(duì)的“緊張時(shí)刻”。每一個(gè)程序員都是心驚膽戰(zhàn),時(shí)時(shí)刻刻準(zhǔn)備著對(duì)系統(tǒng)進(jìn)行搶救。

對(duì)于2019年的春晚紅包而言,期間也是考驗(yàn)頻頻,而背后的百度技術(shù)團(tuán)隊(duì)總算讓這場(chǎng)紅包狂歡有驚無險(xiǎn)。

BAT春晚暗戰(zhàn)云計(jì)算

簡(jiǎn)單說,春晚紅包帶來的技術(shù)難點(diǎn)基本是這幾個(gè):不可預(yù)見的峰值流量瞬間涌入,紅包系統(tǒng)架構(gòu)復(fù)雜帶來了協(xié)調(diào)成本,春節(jié)返鄉(xiāng)導(dǎo)致地區(qū)間流量資源分配要臨時(shí)調(diào)整。

1. 不可預(yù)見的峰值流量瞬間涌入

淘寶春晚項(xiàng)目技術(shù)負(fù)責(zé)人此前在2018年春晚淘寶多次崩潰時(shí)曾出面解釋其中的原因——我們真的對(duì)春晚的力量一無所知。

以2018年春晚為例,當(dāng)時(shí)淘寶是那年春晚的主角,主要策略是綁親情賬號(hào)、發(fā)紅包。技術(shù)團(tuán)隊(duì)很早就預(yù)估到了登錄系統(tǒng)壓力。當(dāng)時(shí)基于一些歷史數(shù)據(jù)推導(dǎo)出了極端情況,最終決定以2017年雙十一的容量為基礎(chǔ),對(duì)登錄數(shù)擴(kuò)容3倍。

結(jié)果,春晚當(dāng)晚登錄的實(shí)際峰值超過了2017年雙十一的15倍,尤其新用戶的瞬時(shí)登錄更是完全超出預(yù)料。

可以說,互聯(lián)網(wǎng)公司上春晚,等于是往下沉市場(chǎng)扔了一顆炸彈——這一次據(jù)百度技術(shù)部門統(tǒng)計(jì),春晚期間登錄值可達(dá)到日常用戶登錄峰值的2500倍。

大量用戶在同一時(shí)間發(fā)、搶紅包、點(diǎn)頁面,瞬間產(chǎn)生每秒千萬級(jí),甚至億級(jí)的請(qǐng)求,請(qǐng)求如果不加以疏導(dǎo)處理直接到達(dá)后臺(tái),會(huì)導(dǎo)致服務(wù)過載甚至崩潰。

為完成今年春晚的高并發(fā)流量考驗(yàn),百度提前進(jìn)行服務(wù)流量隔離、系統(tǒng)升級(jí)、專線新增以及服務(wù)器擴(kuò)容等工作,完善流量峰值時(shí)段的體驗(yàn),還進(jìn)行了多輪全鏈路壓力測(cè)試和多輪的方案預(yù)演。

今年春晚百度APP也的確相對(duì)平穩(wěn),沒有出現(xiàn)崩潰的情況。

2. 紅包系統(tǒng)架構(gòu)復(fù)雜帶來了協(xié)調(diào)成本

和淘寶注冊(cè)、登陸系統(tǒng)還不一樣,注冊(cè)登陸一般只有一次響應(yīng),注冊(cè)登陸之后響應(yīng)就結(jié)束了。今年百度的紅包系統(tǒng)更多是支付系統(tǒng),支付系統(tǒng)的響應(yīng)次數(shù)往往是多次的,而且表面上看,一個(gè)紅包從發(fā)出到搶到時(shí)間不足一秒,但背后是在紅包業(yè)務(wù)系統(tǒng)、交易支付系統(tǒng)、零錢賬戶系統(tǒng)這三個(gè)層級(jí)之間游走——它需要多方提前溝通測(cè)試。

因?yàn)橐粋€(gè)紅包如果是通過銀行卡發(fā)出,必須要先向銀行提出申請(qǐng),銀行會(huì)進(jìn)行扣款,扣款成功后,后臺(tái)會(huì)通知支付系統(tǒng),紅包系統(tǒng)到這時(shí)才會(huì)把紅包放出。在其他用戶搶到紅包后,又會(huì)以零錢形式進(jìn)入用戶賬戶中。

紅包幾秒鐘現(xiàn)金出出進(jìn)進(jìn),都需要耗費(fèi)服務(wù)器資源,由于資金頻繁進(jìn)出銀行,部分銀行的技術(shù)能力又非常有限,百度也需要和銀行前期協(xié)調(diào),進(jìn)行承壓測(cè)試。

百度工程效率部對(duì)用戶剛登錄APP時(shí)的內(nèi)容加載進(jìn)行了優(yōu)化。后臺(tái)系統(tǒng)還會(huì)自動(dòng)檢測(cè)流量變化,快速計(jì)算資源,智能調(diào)度早已準(zhǔn)備好的冗余資源,增加系統(tǒng)容量,合理分配帶寬。這些措施可以讓數(shù)億級(jí)用戶同步登錄APP,正常加載服務(wù),不出現(xiàn)白屏。

3. 春節(jié)返鄉(xiāng)導(dǎo)致地區(qū)間流量資源分配要臨時(shí)調(diào)整

搶紅包的指令是從全國(guó)不同地區(qū)下達(dá)的,服務(wù)器還需要根據(jù)不同地區(qū)進(jìn)行響應(yīng)。

百度系統(tǒng)部一位負(fù)責(zé)人就提到,因?yàn)榛丶疫^年,網(wǎng)民會(huì)從一線城市下沉到三四線城市。這使得流量結(jié)構(gòu)發(fā)生改變,DC數(shù)據(jù)中心和CDN帶寬不得不進(jìn)行調(diào)整。

阿里云2017年也曾遇到過這個(gè)問題,當(dāng)時(shí)的解決方案還相對(duì)簡(jiǎn)單。螞蟻金服技術(shù)專家天鏡飛在2017年的一場(chǎng)活動(dòng)中就曾提到阿里是如何應(yīng)對(duì)流量結(jié)構(gòu)變化這個(gè)問題的:

華東1機(jī)房和華南機(jī)房分別承擔(dān)40%和60%的流量,并且它們都是非云的機(jī)器。在新春紅包業(yè)務(wù)上,支付寶將60%的流量切到華東2機(jī)房中,并且將其上云。

此外,在華南機(jī)房會(huì)部署15%的云機(jī)器。也就是說,新春紅包業(yè)務(wù)中,75%的機(jī)器是在云上運(yùn)行的,在活動(dòng)結(jié)束后,流量又會(huì)切出。

不過,百度吸取前人教訓(xùn)后,把這種應(yīng)對(duì)策略進(jìn)行了改進(jìn)調(diào)整:提前規(guī)劃好了不同地區(qū)的所需要的網(wǎng)絡(luò)資源。通過智能調(diào)度系統(tǒng),分鐘感知不同地區(qū)資源緊張程度,并進(jìn)行相對(duì)應(yīng)的資源調(diào)度和補(bǔ)給。也就是說,流量資源調(diào)度分配更智能了。

在這個(gè)系統(tǒng)中,整個(gè)體系就像一個(gè)彈性容器,可以全自動(dòng)自如擴(kuò)容縮容。

云計(jì)算從“雙十一時(shí)代”邁向“春晚時(shí)代”

2014年-2019年這6年間,BAT應(yīng)對(duì)春晚紅包的技術(shù)一直處于進(jìn)步之中。

從最早的懵懵懂懂、毫無認(rèn)知,對(duì)技術(shù)難點(diǎn)預(yù)估不足,到后來每年都會(huì)提前做好準(zhǔn)備,但依舊要靠熔斷機(jī)制來限制流量。再到今天限制為輔,分布式、自動(dòng)化、智能化為主,云計(jì)算技術(shù)不斷在演進(jìn)之中。

  • 分布式:紅包系統(tǒng)可適性強(qiáng)。高度靈活,能應(yīng)對(duì)多種不同環(huán)境。某個(gè)部件發(fā)生突變,不會(huì)影響整個(gè)系統(tǒng)。在某些部件失效的情況下,仍然能夠應(yīng)對(duì)響應(yīng),抗風(fēng)險(xiǎn)能力高。
  • 自動(dòng)化:基于需求預(yù)期和流量模式進(jìn)行自動(dòng)合理規(guī)劃,不需要太多人工干預(yù),保持相對(duì)較低的運(yùn)營(yíng)成本。
  • 彈性化:可彈性擴(kuò)展的資源用量,在高峰期可以根據(jù)需求按需所取、彈性分配,系統(tǒng)如同彈簧一般可以根據(jù)用戶搶紅包的需求來自動(dòng)分配資源。

百度使用這樣的技術(shù)架構(gòu)中,使得整個(gè)技術(shù)保障體系就像一個(gè)彈性容器,可以全自動(dòng)自如擴(kuò)容縮容。當(dāng)遇到流量洪峰時(shí),系統(tǒng)智能化調(diào)度,快速接入帶寬資源,據(jù)用戶任務(wù)的不同,匹配適應(yīng)的容量。

凱文凱利在《失控》一書中曾提到蜂群的一個(gè)特征:

蜂群的能力不會(huì)因?yàn)槠渲袔讉€(gè)成員的損失而喪失機(jī)能……必須從簡(jiǎn)單的局部控制中衍生出分布式控制,必須從已有運(yùn)作良好的簡(jiǎn)單系統(tǒng)上衍生出復(fù)雜系統(tǒng)。

這段話拿來形容春晚紅包這幾年來的技術(shù)演進(jìn)再恰當(dāng)不過了。

在當(dāng)年的雙十一時(shí)代,互聯(lián)網(wǎng)公司的云計(jì)算基礎(chǔ)設(shè)施用來應(yīng)付每年一度活動(dòng)期的瞬時(shí)高峰流量,但畢竟運(yùn)用電商的人還是有限的。在如今的春晚時(shí)代,流量有了數(shù)十倍的增長(zhǎng),互聯(lián)網(wǎng)公司需要更龐大的云計(jì)算基礎(chǔ)設(shè)施來應(yīng)對(duì)。

正如我在《春晚紅包宕機(jī)史,也是半部中國(guó)互聯(lián)網(wǎng)技術(shù)進(jìn)步史》中所說的:

春晚的流量規(guī)模,未來可能正是5G和物聯(lián)網(wǎng)時(shí)代的“常規(guī)需求”。提前排兵布陣,百利無一害。

要知道,2018年全球有70億臺(tái)IoT設(shè)備,有機(jī)構(gòu)預(yù)測(cè)到2020年全球?qū)⒂?00億臺(tái)設(shè)備同時(shí)連接網(wǎng)絡(luò),2023年則是有790億設(shè)備連接到物聯(lián)網(wǎng)。5G時(shí)代流量每小時(shí)所產(chǎn)生的數(shù)據(jù)高達(dá)數(shù)百GB,預(yù)計(jì)將處理比4G多1000倍的數(shù)據(jù)。

春晚紅包的挑戰(zhàn),正是提前練兵的好時(shí)機(jī)。這場(chǎng)看不見的云計(jì)算戰(zhàn)爭(zhēng),推動(dòng)了中國(guó)互聯(lián)網(wǎng)技術(shù)整體演進(jìn)。

如果說過去的云計(jì)算還停留在“雙十一時(shí)代”。BAT歷經(jīng)的春晚紅包戰(zhàn)之后,云計(jì)算正在邁向“春晚時(shí)代”。

#專欄作家#

吳俊宇,微信公眾號(hào)“深幾度”。獨(dú)立撰稿人,人人都是產(chǎn)品經(jīng)理專欄作家。關(guān)注人工智能、移動(dòng)互聯(lián)網(wǎng)以及數(shù)碼家電的產(chǎn)業(yè)融合。

本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. ????

    回復(fù)
  2. 微微感覺到云計(jì)算的“驚心動(dòng)魄”,那5G時(shí)代的云計(jì)算呢

    回復(fù)