0
本文作者: 王藝 | 2019-03-04 19:48 |
農(nóng)歷戊戌狗年的最后一夜,晚9點(diǎn)。當(dāng)爆竹聲響徹大地,北京奎科大廈五樓的一間會(huì)議室里,卻沒有一個(gè)人笑得出來。大屏幕的光亮直射在每個(gè)人緊張的臉上,在場所有人,都目不轉(zhuǎn)睛地盯著流量監(jiān)控顯示屏上一根陡然升起的立柱,眼看著它所代表的數(shù)字就要沖破極限值。
「(復(fù)盤的)腹稿我都打好了,」眼前這個(gè)穿著灰色沖鋒衣的男人對(duì)雷鋒網(wǎng)AI金融評(píng)論說,「當(dāng)時(shí)我們已經(jīng)做好了降級(jí)方案的準(zhǔn)備。」時(shí)隔近一個(gè)月再回想起來,王繼平的語氣顯然輕快很多,在剛剛過去的春晚搖紅包活動(dòng)中,他擔(dān)任春晚紅包度小滿金融(原百度金融)方面的總指揮。
這根立柱的升起是所有人始料未及的。在春晚主持人對(duì)搖紅包活動(dòng)進(jìn)行第一輪口播的前十分鐘,百度App團(tuán)隊(duì)給度小滿團(tuán)隊(duì)打了個(gè)電話,說由于百度App瞬間流量壓力過大,團(tuán)隊(duì)決定在搖紅包最激烈的幾分鐘將紅包展示入口暫時(shí)關(guān)掉。
「當(dāng)時(shí)我就預(yù)計(jì)到那里會(huì)有很高的流量?!雇趵^平口中的「那里」,是那根立柱所代表的百度App卡券包頁面,「用戶搖完一看,『哎?我搖到的東西怎么找不到了?!痪偷桨俣華pp各處去找。我們剛好有一個(gè)錢包服務(wù)搭載在百度App上,理所當(dāng)然的,大批用戶會(huì)打開錢包去查看卡券包?!?/p>
核心流量產(chǎn)生了嚴(yán)重的分流,大規(guī)模流量突然聚集到卡券包頁面去了。
「我們當(dāng)時(shí)為卡券包設(shè)計(jì)了5萬QPS,眼睜睜的看著那根柱子飛速漲上去,馬上就要打滿所有流量。」王繼平說,「在那個(gè)時(shí)間點(diǎn),你是做不了任何事情的。所有能用的服務(wù)器都已經(jīng)用上了,多余的一臺(tái)都沒有了?!箞F(tuán)隊(duì)能做的,就只有等待流量沖破閾值,激發(fā)降級(jí)方案。
21,000、22,000……,當(dāng)數(shù)值漲到25,000的時(shí)候,增長速度開始變慢。王繼平和團(tuán)隊(duì)松了一口氣,「峰值離我們準(zhǔn)備的5萬還有一定距離,我們心里這才覺得穩(wěn)了?!?/p>
「走吧,吃餃子去,餃子都涼了?!雇趵^平轉(zhuǎn)頭向身邊人說。
春晚紅包「遭遇戰(zhàn)」
當(dāng)時(shí)接到度小滿春晚總指揮的大旗,處在風(fēng)口浪尖上的王繼平并沒有享受到?jīng)_浪的快感。「我們技術(shù)人信奉墨菲定律,凡是會(huì)發(fā)生的事情注定會(huì)發(fā)生?!雇趵^平說,「從復(fù)雜度和概率學(xué)角度來說,春晚紅包這個(gè)項(xiàng)目大概率是要出事的,圓滿成功的概率不到1%。」
好的戰(zhàn)爭是在想要的時(shí)間、地點(diǎn),和選定的對(duì)手用自己希望的方式來打,但春晚紅包對(duì)度小滿顯然是一場遭遇戰(zhàn)。
說遭遇戰(zhàn)并非虛言。當(dāng)王繼平知道這件事情的時(shí)候,距離春晚當(dāng)天僅剩一個(gè)月的時(shí)間。12月28日,央視的春晚項(xiàng)目競標(biāo)敲定百度;1月25日,活動(dòng)上線。刨除掉前期商業(yè)協(xié)議及方案制定過程,真正留給產(chǎn)品設(shè)計(jì)和開發(fā)測試的時(shí)間僅有兩周多。
「時(shí)間短,是我們當(dāng)時(shí)遇到的最大問題?!?/strong>王繼平告訴雷鋒網(wǎng)AI金融評(píng)論,「我相信這件事情如果從從容容地做,有細(xì)致的準(zhǔn)備和明確的分工,一步一步地演練推進(jìn),大概率是能夠比較順利地完成的。」
然而此時(shí),時(shí)間成為了度小滿最大的敵人。「根本沒有辦法按照常規(guī)方式工作」,王繼平說,「如果想成功,我們只能寄希望于三點(diǎn):勇氣、協(xié)作與實(shí)力。」
時(shí)間緊湊,業(yè)務(wù)又復(fù)雜。王繼平介紹,從他總指揮的角度看,信貸、理財(cái)、保險(xiǎn)三大業(yè)務(wù)線的權(quán)益需要串聯(lián);除百度App外,貼吧、網(wǎng)盤、地圖等其他百度系產(chǎn)品對(duì)活動(dòng)的展示推廣需要明確統(tǒng)籌;并且不同場景下預(yù)熱活動(dòng)和正式活動(dòng)的時(shí)間步調(diào)并不一致,導(dǎo)致用戶權(quán)益領(lǐng)取狀態(tài)的準(zhǔn)確更新及記錄成為挑戰(zhàn)。
另外,就單個(gè)用戶來說,需根據(jù)其客群劃分情況展示不同的權(quán)益刺激。以信貸場景為例,有授信的用戶、授信未用信的用戶、已用信的用戶、結(jié)清的用戶和新用戶收到的權(quán)益推廣是不同的。
「這是一個(gè)N乘N乘N的復(fù)雜度關(guān)系,」王繼平說,「每件單獨(dú)的事情聽起來蠻簡單,但所有的事情串聯(lián)在一起,就會(huì)變成一個(gè)非常龐大的矩陣?!雇趵^平和團(tuán)隊(duì)首先要做的,就是為矩陣上的每一個(gè)節(jié)點(diǎn)有效地設(shè)計(jì)展現(xiàn)和承接機(jī)制,并對(duì)相同的展現(xiàn)承接邏輯做歸并,把復(fù)雜矩陣壓縮成一個(gè)可執(zhí)行的線性的任務(wù)列表。
除業(yè)務(wù)的復(fù)雜性外,技術(shù)的復(fù)雜性更是壓在王繼平心頭的一塊大石。
「技術(shù)的復(fù)雜性主要體現(xiàn)在規(guī)模上。」王繼平說。度小滿金融日常面對(duì)的系統(tǒng)需求并非用戶每天打開幾十次的高頻業(yè)務(wù),因此高并發(fā)并不是度小滿的日常戰(zhàn)事。「我們做金融業(yè)務(wù),強(qiáng)調(diào)整體的穩(wěn)健型,信貸和理財(cái)?shù)榷际堑皖l剛需的業(yè)務(wù)。」
日常,就算是用戶規(guī)模達(dá)到幾百萬的時(shí)候,也僅需處理上千量級(jí)的并發(fā)。但春晚當(dāng)天,在全國互動(dòng)的規(guī)模體系下,上億用戶在同一時(shí)間節(jié)點(diǎn)涌入系統(tǒng),這樣的高并發(fā)事件是度小滿從未經(jīng)歷過的。
「常規(guī)來說,加機(jī)器就能解決規(guī)模的問題。但實(shí)際上,機(jī)器不是說加就能加的。」王繼平介紹,「加機(jī)器」這件事對(duì)整個(gè)中后臺(tái)及前端架構(gòu)的可擴(kuò)展性提出了非常高的要求,「是考驗(yàn)基本功的時(shí)候?!?/p>
在短期內(nèi)增加系統(tǒng)規(guī)模,意味著團(tuán)隊(duì)需要面對(duì)一個(gè)精細(xì)的管理問題。究竟需要有多少系統(tǒng)模塊,每一個(gè)模塊需要承載的流量壓力到底有多大,怎樣為不同的服務(wù)、模塊分配最合理的資源,這些問題都要仔細(xì)作答。
王繼平說,團(tuán)隊(duì)拿到的機(jī)器數(shù)量不多。在百度集團(tuán)為百度App準(zhǔn)備的十萬臺(tái)機(jī)器中,只有3800臺(tái)可供度小滿使用。其中70%的計(jì)算資源需要砸在支付環(huán)節(jié)上,用來保證綁卡、簽約、紅包提現(xiàn)等關(guān)鍵路徑上的核心業(yè)務(wù)不出差錯(cuò)。這樣一來,留給信貸、理財(cái)、保險(xiǎn)等業(yè)務(wù)環(huán)節(jié)上的計(jì)算資源非常有限。
「我們用技術(shù)做了大量的迭代優(yōu)化,在資源并不充分的情況下,盡量做到單機(jī)利用率最高?!雇趵^平說。
另外,機(jī)器分散在不同的機(jī)房,這又帶來了另外一個(gè)維度的管理問題。怎樣做到南北協(xié)同,讓新增機(jī)器盡快完成上架部署;怎樣將服務(wù)、數(shù)據(jù)以最快程度進(jìn)行遷移;怎樣保證所有服務(wù)在不同機(jī)房做同步和備份;怎樣在單機(jī)垮掉時(shí)做百分百的切換……這些問題在短短兩周時(shí)間內(nèi)都要得到妥善安排。
技術(shù)問題之外,外部合作又遭遇瓶頸。
度小滿自身的大后臺(tái),包括征信、銀行卡四項(xiàng)驗(yàn)證等第三方服務(wù)機(jī)構(gòu),無法配合度小滿處理瞬時(shí)的大量并發(fā)。團(tuán)隊(duì)需要設(shè)計(jì)算法,將用戶的集中請(qǐng)求進(jìn)行充分的緩沖,變成線性、平穩(wěn)的后端請(qǐng)求,再一一下發(fā)。
王繼平將這一過程比喻為構(gòu)建堤壩,當(dāng)上面的洪水沖下來,堤壩將水緩沖起來,再慢慢地通過一個(gè)小的流量將水釋放到下一個(gè)區(qū)域?!肝覀冏隽撕脦讓舆@樣的堤壩?!雇趵^平說。
最后的挑戰(zhàn)是壓測。在一個(gè)復(fù)雜的系統(tǒng)中,如何進(jìn)行360度的壓測,找出整個(gè)系統(tǒng)(而非單個(gè)模塊)所承擔(dān)的問題,把設(shè)計(jì)短板找出來,并加以調(diào)節(jié),是非??简?yàn)團(tuán)隊(duì)基本功的事情。
「我們做到了,還比較合格?!够厥走@兩周克服的重重障礙,王繼平說。
斷直連后首次大考
1月14日,人民銀行「斷直連」工作全面完成,切斷此前第三方支付機(jī)構(gòu)直連銀行的模式,接入網(wǎng)聯(lián)或銀聯(lián)。
「這意味著新的清算模式和系統(tǒng)架構(gòu)模式?!苟刃M支付業(yè)務(wù)總經(jīng)理萬濤告訴雷鋒網(wǎng)AI金融評(píng)論,「這個(gè)模式一出來,整個(gè)行業(yè)的很多事情都改變了?!谷f濤戲稱,斷直連后的第一個(gè)大考,被百度趕上了。
大考的第一道考題,聚焦產(chǎn)品設(shè)計(jì)。「為了這次大考」,萬濤談到,「我們支付產(chǎn)品大版本就改動(dòng)了22次?!?/strong>
每次改動(dòng)的背后,都需要設(shè)計(jì)師重新設(shè)計(jì)流程。「有的時(shí)候,上一版本的流程已經(jīng)優(yōu)化到用戶體驗(yàn)最好的狀態(tài),但是提現(xiàn)方式、審核時(shí)間等要素發(fā)生改變,整個(gè)用戶體驗(yàn)就變了,就需要推倒重來?!谷f濤說?!干踔劣械臅r(shí)候,被推倒的版本已經(jīng)進(jìn)入到開發(fā)階段?!?/p>
政策要求的嚴(yán)格無疑給本就時(shí)間緊張的度小滿團(tuán)隊(duì)帶來挑戰(zhàn),缺乏大考經(jīng)驗(yàn)又讓項(xiàng)目難上加難。對(duì)于2019年的春晚紅包,度小滿只有一次機(jī)會(huì)。
本次春晚紅包項(xiàng)目產(chǎn)品架構(gòu)師曾罡告訴雷鋒網(wǎng)AI金融評(píng)論,「第一次面對(duì)春晚這么大的流量考驗(yàn),我們需要窮盡所有可能出現(xiàn)的意外情況,例如如何應(yīng)對(duì)宕機(jī),如何瞬時(shí)恢復(fù),如何再擴(kuò)容等,每一種意外情況都要準(zhǔn)備相應(yīng)的應(yīng)急預(yù)案,這樣才能保障產(chǎn)品體驗(yàn)?!?/p>
為了保障系統(tǒng)的正常運(yùn)行,團(tuán)隊(duì)設(shè)計(jì)了數(shù)十種降級(jí)方案,并提出了一句口號(hào):「自己的服務(wù)不能掛,第三方的服務(wù)不怕掛?!?/p>
萬濤向我們解釋道,首先,度小滿自己的服務(wù)要做到非常好的冗余穩(wěn)定性備份,但系統(tǒng)在運(yùn)轉(zhuǎn)過程中難免會(huì)用到第三方服務(wù),例如運(yùn)營商的短信服務(wù)、公安網(wǎng)的身份驗(yàn)證服務(wù)等。雖然所有合作伙伴已經(jīng)做了非常充分的準(zhǔn)備,但支付團(tuán)隊(duì)仍然做了16種降級(jí)預(yù)案,確保當(dāng)意外情況發(fā)生時(shí),可以切換到降級(jí)預(yù)案,保障用戶的產(chǎn)品體驗(yàn)。
「我們的底線是,不能因?yàn)槌霈F(xiàn)意外情況,整個(gè)流程就不通了?!谷f濤說,「只要項(xiàng)目失敗,就是我們自己的責(zé)任。」
充分的方案準(zhǔn)備之外,作為本次大考的加分項(xiàng),度小滿還針對(duì)春晚的特殊性做了一些溫情的優(yōu)化。
萬濤告訴雷鋒網(wǎng)AI金融評(píng)論,考慮到三四線及以下城鎮(zhèn)、農(nóng)村居民的參與需求,團(tuán)隊(duì)將銀行覆蓋個(gè)數(shù)從138家擴(kuò)展到上千家。
「盡管這138家銀行已經(jīng)滿足超過98%的用戶綁卡提現(xiàn)需求,但考慮到三四線城市和村鎮(zhèn)居民會(huì)有城商行、農(nóng)商行以及農(nóng)信社的需求,團(tuán)隊(duì)提出必須讓盡可能多的銀行支持紅包提現(xiàn)。」萬濤說。
為此,團(tuán)隊(duì)設(shè)計(jì)了一套非常復(fù)雜的預(yù)案,針對(duì)每一家銀行的系統(tǒng)情況做流量限制,并實(shí)時(shí)監(jiān)控,在大屏幕上顯示。當(dāng)流量飽和時(shí),支付系統(tǒng)會(huì)針對(duì)銀行做排隊(duì)、提示換卡等操作。
「我們盡最大的努力方便用戶紅包提現(xiàn),而不是告訴用戶:『對(duì)不起,我們不支持您的銀行卡,請(qǐng)您更換銀行卡?!弧谷f濤說,這是團(tuán)隊(duì)此舉的初心。
與此同時(shí),支付團(tuán)隊(duì)還考慮到海外僑胞的春晚感受,無論是港澳居民證還是護(hù)照,只要是在大陸銀行開通的人民幣賬戶都可以支持綁卡提現(xiàn)。
轉(zhuǎn)眼除夕
「我不知道你玩過德州沒有?」王繼平問向雷鋒網(wǎng)AI金融評(píng)論,「當(dāng)你All in的時(shí)候,你是什么想法?」
他頓了頓:「那時(shí)候輸贏已經(jīng)不重要了,我想看牌。」
除夕當(dāng)天下午四點(diǎn)多,春晚項(xiàng)目組同學(xué)們簡單的年夜飯開始了。在奎科大廈附近的小飯館,老板包了餃子,配上簡單的炒菜,讓大伙兒填飽肚子。
為了緩解團(tuán)隊(duì)緊張的氛圍,萬濤在除夕當(dāng)晚的動(dòng)員會(huì)上笑道,「我說大家不用著急,我們做了最充分的準(zhǔn)備。今天晚上我們就一邊打牌,一邊看著大盤的數(shù)據(jù)。」
「但事實(shí)上哪是這樣,」曾罡說,「合作四五年,我從沒見過研發(fā)同學(xué)那樣緊張。那根柱子往上竄的時(shí)候,研發(fā)兄弟的臉『唰』一下就白了?!?/p>
好在前期,產(chǎn)品和研發(fā)經(jīng)過了充分的討論溝通,對(duì)流量預(yù)估把握得較為準(zhǔn)確?!?0多套降級(jí)方案及風(fēng)險(xiǎn)預(yù)案,最終一個(gè)也沒用上。」曾罡說到。
平穩(wěn)度過后,王繼平給度小滿金融CEO朱光發(fā)了一條信息。大致內(nèi)容是,這夜有驚無險(xiǎn),僥幸過關(guān),不辱使命,下周復(fù)盤。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。