天天看點

春晚紅包大戰:19天,不可能的任務,他們是如何做到的?

作者:顯微故事
春晚紅包大戰:19天,不可能的任務,他們是如何做到的?

虎年春晚的精彩瞬間還曆曆在目。

也許你印象最深的是《憶江南》那仿佛在畫中遊覽的沉浸感、張小斐的青色大衣、或是演活了千裡江山圖的《隻此青綠》……

除了精彩紛呈的歌舞語言節目,虎年春晚也增加了各種和觀衆互動的趣味玩法,其中不得不提的是搶紅包環節。

今年央視春晚直播期間,京東共發放總價值達15億元的紅包和實物,邀請全民互動。官方資料顯示,春晚期間,全球華人參與京東APP紅包累計互動量達到691億。

這背後,是無數京東雲團隊成員的日夜奮戰——當這些流量洪峰在除夕當晚集中湧入京東,對京東的各團隊帶來巨大的挑戰。

京東春晚紅包的互動遠比往年複雜。

除了“搶紅包”這一動作外,還涉及後續的使用者下單、配貨等流程,每一個鍊路環節的增加,也使春晚場景的複雜度和應對難度呈指數級的增長,重新整理春晚全球最複雜場景的記錄。

算力資源如何配置設定、如何保證活動和使用者資訊的安全、如何保證支付的順暢、供應鍊精準的提前籌備,如何保證使用者的每一個疑問都得到解答,這些問題成為京東各技術團隊必須面對的問題。

本期顯微故事,聚焦京東春晚紅包備戰前的19天,看京東雲等京東技術團隊們,如何在這麼短的時間裡,逐一攻破各個鍊路環節的難點,讓此次春晚紅包互動能順利進行。

以下是關于他們的真實故事:

文 | 小北

編輯 | 卓然

春晚紅包大戰:19天,不可能的任務,他們是如何做到的?

1月3日,元旦假期還未結束,京東雲雲艦團隊的周光突然接到消息:京東将成為此次2022年央視春晚的獨家互動合作夥伴。

這是一個數百億級的互動活動,所需要比對的算力資源非常可觀。

在軟體上,使用者的任何行為都需要算力資源,而像春晚紅包互動這樣的人數規模,使用者增加必然會增加到數億,算力要求極高,且挑戰極大。

如果算力不足,可能導緻京東的界面或紅包界面重新整理不出來,使用者搶不到紅包,此外還無法支援系統的運作,整個系統可能都會垮掉。更何況,此次京東春晚互動的業務場景還比往年更為複雜。

京東作為一個購物app,它所需要承擔的不僅是紅包的互動,還包括使用者領取紅包後涉及到的交易、支付、客服等内容,且由于京東自營的商品都由京東配送,是以後續還會涉及到分揀、配送等業務場景,整個鍊路超長。

紅包互動和購物交易這兩個場景的差異又較大,峰值頻繁往返切換,技術挑戰極大。在這種情況下,算力資源的缺失,對這樣一場數以億計的活動而言,無疑是緻命的。

但留給京東雲的,隻有19天。

春晚紅包大戰:19天,不可能的任務,他們是如何做到的?

圖 | 正在備戰的京東雲雲艦團隊

業内通行的辦法,是為了比對這種算力需求,購入新的伺服器。但留給京東雲的時間實在太少了,他們甚至連采購也來不及,且如果要滿足此次春晚互動複雜的場景,他們需要在現有的CPU核的基礎上,另外采購上萬台的伺服器。

這根本是一個不可能實作的任務。在仔細思考之後,京東雲團隊決定:利用京東雲雲艦騰挪現有算力,來支援春晚紅包互動這個數百億級的活動。

這是一個艱難的挑戰。京東APP中有大量應用,這些應用如何配置設定,每個應用涉及到的資源要壓縮到什麼程度,才既不影響它本身的使用,又能為春晚的紅包互動提供空間?

同時,這種資源的騰挪還必須在秒級的時間裡壓縮或釋放,才能保障使用者體驗的順暢。京東雲雲艦團隊必須通過一次又一次的壓力測試和系統監測來解決這個問題。

為了避開使用者的使用時間,雲艦團隊通常都選擇晚上壓測。有一天晚上,淩晨1點壓測,到了3點,突然發現一些機器出現問題,挂掉了。

這是以前從未出現的情況。當時值班的同僚就打電話把相關人員全都叫起來,排查到底是什麼情況。

實際上,挂掉的機器數量并不多,對整個京東很大規模的伺服器來說,這部分的資源占比非常小。但京東雲雲艦進行大規模資源排程,對資源排程的精準性要求極高,哪怕隻是極少數的伺服器資源,也需要保障到位。

大家都很緊張,在第一時間趕到了公司,排查當時機器到底發生了什麼事,挂掉的機器的日志又是怎樣的,他們一刻不停地拉群、電話溝通,從早上4點,一直忙到晚上7、8點,中間沒有休息,吃飯也是外賣來了快速吃兩口,就怕來不及。

終于,他們在14個小時後定位到了問題,并快速解決。那個時候,盡管大家都被疲憊,但卻又都有一種自豪感:我們解決了這個問題,我們可以更有信心的保證春晚的運作了。

對一個軟體而言,算力資源是保證其運作的基石。

雲艦團隊這種迎難而上、立即想辦法解決問題的狀态,最終使得京東雲在不另外購置伺服器的情況下,實作了數以億計的春晚紅包互動,讓整個使用者體驗能順暢又愉快地進行下去。

同樣沉默但不可或缺的,還有安全團隊。春晚涉及到大量的新業務上線,而往往新業務又是最容易出現安全問題、最容易被外部利用。

有一些安全問題後果非常嚴重,比如指令執行漏洞,它可以直接操作伺服器,甚至把整個伺服器關掉,使得活動無法進行。還有些安全漏洞會定位到使用者登陸權限,或者将使用者重定向到其它網站,對使用者造成很強的幹擾。

安全團隊要做的,就是在春晚活動上線前,進行反複的測試和排雷,讓活動和使用者都不受影響。而在建構安全防控網上,有一個業内普遍存在的難點:如何防護DDoS的攻擊?

春晚紅包大戰:19天,不可能的任務,他們是如何做到的?

圖 | 京東安全團隊正在通力合作

這是一種試圖通過多個來源的惡意流量造成線上服務、網站和網絡應用程式不堪重負、算力耗盡而陷入癱瘓的攻擊手段。

它是正常請求,但請求量特别大,當量大到伺服器不能承載時,就會崩盤。在春晚紅包互動這樣一個本身就有超大量級的請求的前提下,如果再出現DDoS攻擊,後果不堪設想。

安全團隊收集了大量資料,從攻擊者視角對完成安全部署的雲環境進行滲透測試并自查,確定部署政策有效,確定應急響應、政策處置滿足項目要求。

安全團隊的王陶冉記得團隊為了制定有效的安全防禦政策,大家熬夜到淩晨。那種為了目标達成共同思考努力解決問題的感覺讓他頗受觸動。

當春晚活動上線後,使用者并沒有因安全問題而出現不好的體驗時,他覺得:一切都值得了。

春晚紅包大戰:19天,不可能的任務,他們是如何做到的?

同樣要在19天時間裡全面更新的,還有京東支付技術團隊與智能供應鍊Y團隊。

在算力能支援數億人完成紅包互動、安全防護為活動與使用者保駕護航的前提下,京東還必須做好此次紅包互動的使用者體驗,讓使用者在搶完紅包後的購物與商品送達環節能獲得良好的體驗。

元旦時,樊明幸接到了關于支付更新的通知。作為京東支付技術團隊中的一員,他知道京東的支付科技在無數次的大促中都在不斷進步。

春晚紅包大戰:19天,不可能的任務,他們是如何做到的?

圖 | 京東支付技術團隊正在緊張工作

以點選結賬後出現的支付頁面為例,這一頁面需要展示各種支付工具和活動資訊,各種支付方式目前又有怎樣的優惠活動,都需要向背景确認資訊并展示在這個界面上。

而當使用者選擇某種支付工具後,後端會進入真正的扣款流程,需要校驗密碼、報送風險、确認優惠券的使用邏輯,确認扣款邏輯等,而扣款成功後,也涉及到給商家結算等。因而盡管使用者隻是按下了“付款”這一按鍵,但背景需要走過的鍊路卻非常多。

在這種情況下,任何一個節點上的不順暢,都會導緻使用者整體體驗的滑坡。那時,使用者點選付款後,看到的往往不是付款方式頁面,而是顯示一個圈,不停地loading加載。

而經過多次京東618、11.11、年貨節等大考,樊明幸帶領技術團隊将支付的反應速度在原來的基礎上提升了6倍,使使用者的體驗更為順暢,也為保障春晚互動活動打下了堅實基礎。

春晚時,使用者會大量湧入京東,會出現較為集中的下單場景,頁面反應速度的提升能幫助使用者有更順暢的體驗。

但對樊明幸來說,此次京東支付技術團隊所面臨的最大挑戰并不是支付速度,而是面臨像春晚這樣數十億人的紅包互動活動,一切都是未知的,一切都要建立。

“以往,支付技術團隊關注的是使用者的交易支付鍊路,但在此次春晚紅包互動的過程中,使用者除了要付款外,還會有大量的流量湧入「我的錢包」檢視領到的紅包餘額,這意味着我們需要備戰一條全新的鍊路,并将之更新到一個較好的水準。”

在短短的19天的時間裡,京東支付技術團隊需要将整條新鍊路涉及到的内容都梳理清楚,預估各個環節涉及到的流量峰值,測試風險點,在短時間内進行架構的更新和優化。這在以往是需要提前2-3個月去準備的工作,但此次他們隻有不到一個月的時間,且未知的變數也較大。

但團隊中的每一個人,都抱着想把這件事做好的目的去,方案不夠完美,大家就一起提建議、修改,有的方案甚至改上幾十版,才最終确定下來。

後來的成果也是顯而易見的。在如此大體量的流量沖擊下,京東扛住了使用者的流量壓力,從紅包領取、檢視,到使用支付,都非常順利。

而在支付之外,京東還需要考慮的,是如何在春晚期間利用數智化供應鍊能力保障使用者的購物體驗。供應鍊對使用者購物體驗的保障主要包括兩方面,一是現貨率,一是履約時效。

雖然是春節期間,使用者下單的時候也需要有現貨,而且還需要保障履約時效。也就是讓消費者買到想買的東西,以及更快地把商品送到使用者手裡。京東自營的商品通常是當日達或次日達,而要做到這一點,各城市倉庫的提前備貨,就顯得尤為重要。

但京東僅自營就服務了千萬量級的商品,有近1300家倉庫的布局,而每個區域、每種種類的商品銷量預測都會不同,需要按區域、按倉庫去預判什麼地區、什麼倉庫應該提前備好哪種商品,整個計算量達到億級水準,計算難度非常大。

智能供應鍊Y業務部的石正新正是負責這一工作的團隊成員之一,使用者想買什麼,能買什麼,怎麼讓各區域的使用者買到他們想買的東西,是石正新必須解決的問題。

春晚紅包大戰:19天,不可能的任務,他們是如何做到的?

圖 | 京東智能供應鍊Y業務部

在春晚紅包互動這個節點上,由于觀看春晚的使用者體量的龐大,流量和訂單都會在那一時段集中爆發。這種爆發和大促有一定的相似性,不同的是,春晚是一個全新的場景,在這個場景下,一切都是需要重新計算的,春晚的收視率、各地疫情不同的程度,以及各地對物資的不同需求……

多重因素的影響,使得這次流量和商品庫存的運算變得非常複雜。

為了更好地提升使用者體驗,京東智能供應鍊Y業務部研發團隊的小夥伴通過遷移學習的算法,把從前大促經驗的留存,複刻到春晚的場景裡,專門針對這次活動做了一套銷量的預估模型,按區域、按品類做更準确的銷量預測。

以糖果為例,在年貨節期間,南方區域的糖果銷量往往會增加,如廣州是平時的2倍左右,而西北區域的銷量則變化不大。而京東自營的千萬量級商品,每一種都要做相關的區域和數量預測。

同時,為了應對突發情況,智能供應鍊Y業務部研發團隊還針對這次春晚活動專項進行了倉庫的布局和倉儲網絡的優化,以保證活動期間的訂單履約及貨物的靈活配送。

京東的倉儲有較大區域性的倉庫RDC,和一些小的倉庫的FDC,比如京津冀區域,北京是區域的RDC,覆寫整個北京周邊的倉儲,而天津、河北的一些城市則是FDC,在物流運輸時,通常是把大倉庫的貨物調去小倉庫,再由小倉庫進行配送。

這種時候,大倉和小倉貨物的配置設定,就顯得尤其重要。近1300個倉庫,智能供應鍊Y業務部研發團隊需要計算出每個倉庫的提前備貨與配貨,同樣是非常艱巨的挑戰。

但也正是這樣多、這樣複雜的提前準備,讓京東供應鍊真正做到了高效靈活。京東的春晚第一單,在當晚就已送到貴州畢節。消費者在這個春節,能買到自己想買的貨,貨也能及時送到家。

春晚紅包大戰:19天,不可能的任務,他們是如何做到的?

70歲的杜建軍今年又是一個人過年。

近幾年因為疫情反複,杜建軍擔心他們回鄉的安全,每年新年前和他們打電話時,都會先發制人地告訴他們:“你們莫回來,今年疫情兇的很,你們在外頭好生就行。”

為這,孫子遠端教會了他打視訊電話,也教着他在京東上購物;兒子和他共享了京東賬号,讓杜建軍想買什麼都能自己買。

大年三十晚上,杜建軍跟孩子們視訊完,坐在電視前等春晚。到互動環節時,他聽見主持人說搖一搖就能參與分15億紅包和好物,趕緊把手機拿出來,點進京東,把手機拿在手裡晃了晃。

嘿,還真中了個紅包!

杜建軍回回跟搶,有紅包有代金券,高興的合不攏嘴,他正好想買點年貨,但搶來的這些券啊、紅包啊,也不知道能不能用。他以前買東西也沒注意這些。

而且紅包下面還有一個擊鼓迎春的遊戲,看着也挺有趣的,而且還有福利能拿,但規則有點複雜。孩子們不在身邊,這種新玩意兒他也不知道問誰。他看見電視上說有咨詢熱線,想要打電話咨詢,但又不敢——他不會國語,還被孩子說過說的是“土四川話”,口音重,他怕别人聽不懂。

但電視上又說了,方言也能打。他猶豫了一下,還是撥打了電話,“那個,你們那個敲鼓的,囊個耍喃?”

對面的AI語音識别到了“敲鼓”的關鍵詞,知道他其實想說的是擊鼓迎春,耐心地告訴了他玩法,杜建軍把電話開成擴音,按電話裡說的去試,果然又獲得了一波福利。他興高采烈,又問:“那你們那個紅包,囊個用喃?”

客服同樣耐心地告訴了他紅包使用的方法,杜建軍浏覽京東頁面,很快下單了堅果年貨,沒想到第二天就到了。

他高興地和孩子們炫耀,對今年的活動贊不絕口。

“我一個不曉耍手機的,今年好安逸哦,搶到紅包了。那些接電話的,把我說的話聽得好清楚哦,兇(厲害)得很!我還買了東些(東西),到的好快哦!”

對這些不怎麼會玩手機的老年人而言,對方聽得懂他們的話,能給他們正常的解答,就能讓他們樂呵半天。因為他們不再覺得自己不懂、不知道、被時代抛棄了。

而這種利好于老年人的良好體驗背後,離不開京東智能客服智能語音團隊,在一周多的時間裡快速疊代出的智能語音識别功能。

春晚紅包大戰:19天,不可能的任務,他們是如何做到的?

圖 | 京東智能客服智能語音團隊

範璐在1月初得到消息,京東将會參與此次的春晚紅包互動,而觀看春晚的觀衆,很多是父輩、祖輩這些年紀較大的人,他們對app的互動不是很了解,卻能自然地打電話。

在春晚紅包互動這樣的場景下,因對紅包和活動有疑惑、打電話咨詢的人必然不在少數,智能語音團隊預估這一流量是雙十一高峰的數十倍左右。

這麼多電話咨詢如何承接?京東的客服不可能在短時間内迅速拓展數十倍,且這些年紀比較大的人多說方言,對客服而言也是很大的挑戰。

基于此,京東智能客服智能語音團隊決定,通過智能AI的語音互動,解答前來咨詢的使用者的問題。

他們梳理了使用者可能會問到的問題,通過智能AI對使用者的問題進行識别,并給出精準回複,這樣就能較好地提升效率。

而在過去的三年多時間裡,智能語音團隊也通過将方言按區域進行分類分析而建構出了一個方言資料庫的模型。

在智能AI接通電話時,它會通過接入使用者的問話,判斷這一使用者的語言來自什麼區域,再套用進這個區域裡面的語言表達,來分辨他們的意圖,進而給出正确的答複。

在應用時,這一智能AI的語音識别準确率(包括重口音方言)基本能達到95%以上。

從算力騰挪到安全防護,從支付更新到供應鍊提前籌備,再到智能AI對方言識别率的更新,在今年春晚新玩法的背後,是京東雲團隊的一群人的不懈努力,才最終支撐起京東春晚紅包的順利進行。

春晚紅包大戰:19天,不可能的任務,他們是如何做到的?

今年的春晚紅包,有着史上最短的備戰時間——19天,但又是世界上規模最大的網絡互動活動——峰值可達數億級别,同時也還又着全球最複雜的場景——春晚紅包互動疊加京東支援全國“年貨春運”中的整體供應鍊履約,重新整理了春晚全球最複雜技術場景的新紀錄。

在時間如此短,挑戰如此大的情況下,京東無疑交出了一份讓人滿意的答卷。

春晚紅包大戰:19天,不可能的任務,他們是如何做到的?

圖 | 春晚結束後,大家在慶祝

而這樣的成績之後,離不開京東雲團隊每一個人的努力與協同。

智能語音團隊的範璐還記得,臨上線前的周五,團隊還在繼續調試問題,他們當時對具體場景裡春晚的詞梳理時,發現了之前沒有考慮到、可以優化的點,在僅剩幾天的時間裡,他們又重新梳理工作、重新執行。當時大家加班到淩晨3點。

但在那個時刻,範璐卻覺得非常感動。當這個目标擺在眼前時,大家都以目标為導向、齊心協力地想着把事情做好,而這種“想做好事情”的狀态,讓大家願意付出、願意努力,而事成之後,内心也會湧出大量的喜悅:這是我做的,我把這件事做得很完美。

那個時刻,是無論如何也不會忘記的。

在京東雲,這樣的人很多,他們自願放棄了回家的機會,在公司随時監測系統和資料的動态;為了達成一個較滿意的目标或方案,多次修改,廢寝忘食。

而正是有了他們,有了京東雲内部這樣以目标為先的氛圍,京東雲才成為一支有效率、有戰鬥力的團隊,才能想他人之不敢想,将挑戰和困難都克服下來。

繼續閱讀