0
| 本文作者: 王藝 | 2019-03-04 19:48 |
農(nóng)歷戊戌狗年的最后一夜,晚9點。當爆竹聲響徹大地,北京奎科大廈五樓的一間會議室里,卻沒有一個人笑得出來。大屏幕的光亮直射在每個人緊張的臉上,在場所有人,都目不轉(zhuǎn)睛地盯著流量監(jiān)控顯示屏上一根陡然升起的立柱,眼看著它所代表的數(shù)字就要沖破極限值。
「(復盤的)腹稿我都打好了,」眼前這個穿著灰色沖鋒衣的男人對雷鋒網(wǎng)AI金融評論說,「當時我們已經(jīng)做好了降級方案的準備。」時隔近一個月再回想起來,王繼平的語氣顯然輕快很多,在剛剛過去的春晚搖紅包活動中,他擔任春晚紅包度小滿金融(原百度金融)方面的總指揮。
這根立柱的升起是所有人始料未及的。在春晚主持人對搖紅包活動進行第一輪口播的前十分鐘,百度App團隊給度小滿團隊打了個電話,說由于百度App瞬間流量壓力過大,團隊決定在搖紅包最激烈的幾分鐘將紅包展示入口暫時關掉。
「當時我就預計到那里會有很高的流量。」王繼平口中的「那里」,是那根立柱所代表的百度App卡券包頁面,「用戶搖完一看,『哎?我搖到的東西怎么找不到了。』就到百度App各處去找。我們剛好有一個錢包服務搭載在百度App上,理所當然的,大批用戶會打開錢包去查看卡券包。」
核心流量產(chǎn)生了嚴重的分流,大規(guī)模流量突然聚集到卡券包頁面去了。
「我們當時為卡券包設計了5萬QPS,眼睜睜的看著那根柱子飛速漲上去,馬上就要打滿所有流量。」王繼平說,「在那個時間點,你是做不了任何事情的。所有能用的服務器都已經(jīng)用上了,多余的一臺都沒有了。」團隊能做的,就只有等待流量沖破閾值,激發(fā)降級方案。
21,000、22,000……,當數(shù)值漲到25,000的時候,增長速度開始變慢。王繼平和團隊松了一口氣,「峰值離我們準備的5萬還有一定距離,我們心里這才覺得穩(wěn)了。」
「走吧,吃餃子去,餃子都涼了。」王繼平轉(zhuǎn)頭向身邊人說。

春晚紅包「遭遇戰(zhàn)」
當時接到度小滿春晚總指揮的大旗,處在風口浪尖上的王繼平并沒有享受到?jīng)_浪的快感。「我們技術人信奉墨菲定律,凡是會發(fā)生的事情注定會發(fā)生。」王繼平說,「從復雜度和概率學角度來說,春晚紅包這個項目大概率是要出事的,圓滿成功的概率不到1%。」
好的戰(zhàn)爭是在想要的時間、地點,和選定的對手用自己希望的方式來打,但春晚紅包對度小滿顯然是一場遭遇戰(zhàn)。
說遭遇戰(zhàn)并非虛言。當王繼平知道這件事情的時候,距離春晚當天僅剩一個月的時間。12月28日,央視的春晚項目競標敲定百度;1月25日,活動上線。刨除掉前期商業(yè)協(xié)議及方案制定過程,真正留給產(chǎn)品設計和開發(fā)測試的時間僅有兩周多。
「時間短,是我們當時遇到的最大問題。」王繼平告訴雷鋒網(wǎng)AI金融評論,「我相信這件事情如果從從容容地做,有細致的準備和明確的分工,一步一步地演練推進,大概率是能夠比較順利地完成的。」
然而此時,時間成為了度小滿最大的敵人。「根本沒有辦法按照常規(guī)方式工作」,王繼平說,「如果想成功,我們只能寄希望于三點:勇氣、協(xié)作與實力。」
時間緊湊,業(yè)務又復雜。王繼平介紹,從他總指揮的角度看,信貸、理財、保險三大業(yè)務線的權益需要串聯(lián);除百度App外,貼吧、網(wǎng)盤、地圖等其他百度系產(chǎn)品對活動的展示推廣需要明確統(tǒng)籌;并且不同場景下預熱活動和正式活動的時間步調(diào)并不一致,導致用戶權益領取狀態(tài)的準確更新及記錄成為挑戰(zhàn)。
另外,就單個用戶來說,需根據(jù)其客群劃分情況展示不同的權益刺激。以信貸場景為例,有授信的用戶、授信未用信的用戶、已用信的用戶、結(jié)清的用戶和新用戶收到的權益推廣是不同的。
「這是一個N乘N乘N的復雜度關系,」王繼平說,「每件單獨的事情聽起來蠻簡單,但所有的事情串聯(lián)在一起,就會變成一個非常龐大的矩陣。」王繼平和團隊首先要做的,就是為矩陣上的每一個節(jié)點有效地設計展現(xiàn)和承接機制,并對相同的展現(xiàn)承接邏輯做歸并,把復雜矩陣壓縮成一個可執(zhí)行的線性的任務列表。
除業(yè)務的復雜性外,技術的復雜性更是壓在王繼平心頭的一塊大石。
「技術的復雜性主要體現(xiàn)在規(guī)模上。」王繼平說。度小滿金融日常面對的系統(tǒng)需求并非用戶每天打開幾十次的高頻業(yè)務,因此高并發(fā)并不是度小滿的日常戰(zhàn)事。「我們做金融業(yè)務,強調(diào)整體的穩(wěn)健型,信貸和理財?shù)榷际堑皖l剛需的業(yè)務。」
日常,就算是用戶規(guī)模達到幾百萬的時候,也僅需處理上千量級的并發(fā)。但春晚當天,在全國互動的規(guī)模體系下,上億用戶在同一時間節(jié)點涌入系統(tǒng),這樣的高并發(fā)事件是度小滿從未經(jīng)歷過的。
「常規(guī)來說,加機器就能解決規(guī)模的問題。但實際上,機器不是說加就能加的。」王繼平介紹,「加機器」這件事對整個中后臺及前端架構的可擴展性提出了非常高的要求,「是考驗基本功的時候。」
在短期內(nèi)增加系統(tǒng)規(guī)模,意味著團隊需要面對一個精細的管理問題。究竟需要有多少系統(tǒng)模塊,每一個模塊需要承載的流量壓力到底有多大,怎樣為不同的服務、模塊分配最合理的資源,這些問題都要仔細作答。
王繼平說,團隊拿到的機器數(shù)量不多。在百度集團為百度App準備的十萬臺機器中,只有3800臺可供度小滿使用。其中70%的計算資源需要砸在支付環(huán)節(jié)上,用來保證綁卡、簽約、紅包提現(xiàn)等關鍵路徑上的核心業(yè)務不出差錯。這樣一來,留給信貸、理財、保險等業(yè)務環(huán)節(jié)上的計算資源非常有限。
「我們用技術做了大量的迭代優(yōu)化,在資源并不充分的情況下,盡量做到單機利用率最高。」王繼平說。
另外,機器分散在不同的機房,這又帶來了另外一個維度的管理問題。怎樣做到南北協(xié)同,讓新增機器盡快完成上架部署;怎樣將服務、數(shù)據(jù)以最快程度進行遷移;怎樣保證所有服務在不同機房做同步和備份;怎樣在單機垮掉時做百分百的切換……這些問題在短短兩周時間內(nèi)都要得到妥善安排。
技術問題之外,外部合作又遭遇瓶頸。
度小滿自身的大后臺,包括征信、銀行卡四項驗證等第三方服務機構,無法配合度小滿處理瞬時的大量并發(fā)。團隊需要設計算法,將用戶的集中請求進行充分的緩沖,變成線性、平穩(wěn)的后端請求,再一一下發(fā)。
王繼平將這一過程比喻為構建堤壩,當上面的洪水沖下來,堤壩將水緩沖起來,再慢慢地通過一個小的流量將水釋放到下一個區(qū)域。「我們做了好幾層這樣的堤壩。」王繼平說。
最后的挑戰(zhàn)是壓測。在一個復雜的系統(tǒng)中,如何進行360度的壓測,找出整個系統(tǒng)(而非單個模塊)所承擔的問題,把設計短板找出來,并加以調(diào)節(jié),是非常考驗團隊基本功的事情。
「我們做到了,還比較合格。」回首這兩周克服的重重障礙,王繼平說。
斷直連后首次大考
1月14日,人民銀行「斷直連」工作全面完成,切斷此前第三方支付機構直連銀行的模式,接入網(wǎng)聯(lián)或銀聯(lián)。
「這意味著新的清算模式和系統(tǒng)架構模式。」度小滿支付業(yè)務總經(jīng)理萬濤告訴雷鋒網(wǎng)AI金融評論,「這個模式一出來,整個行業(yè)的很多事情都改變了。」萬濤戲稱,斷直連后的第一個大考,被百度趕上了。
大考的第一道考題,聚焦產(chǎn)品設計。「為了這次大考」,萬濤談到,「我們支付產(chǎn)品大版本就改動了22次。」
每次改動的背后,都需要設計師重新設計流程。「有的時候,上一版本的流程已經(jīng)優(yōu)化到用戶體驗最好的狀態(tài),但是提現(xiàn)方式、審核時間等要素發(fā)生改變,整個用戶體驗就變了,就需要推倒重來。」萬濤說。「甚至有的時候,被推倒的版本已經(jīng)進入到開發(fā)階段。」
政策要求的嚴格無疑給本就時間緊張的度小滿團隊帶來挑戰(zhàn),缺乏大考經(jīng)驗又讓項目難上加難。對于2019年的春晚紅包,度小滿只有一次機會。
本次春晚紅包項目產(chǎn)品架構師曾罡告訴雷鋒網(wǎng)AI金融評論,「第一次面對春晚這么大的流量考驗,我們需要窮盡所有可能出現(xiàn)的意外情況,例如如何應對宕機,如何瞬時恢復,如何再擴容等,每一種意外情況都要準備相應的應急預案,這樣才能保障產(chǎn)品體驗。」
為了保障系統(tǒng)的正常運行,團隊設計了數(shù)十種降級方案,并提出了一句口號:「自己的服務不能掛,第三方的服務不怕掛。」
萬濤向我們解釋道,首先,度小滿自己的服務要做到非常好的冗余穩(wěn)定性備份,但系統(tǒng)在運轉(zhuǎn)過程中難免會用到第三方服務,例如運營商的短信服務、公安網(wǎng)的身份驗證服務等。雖然所有合作伙伴已經(jīng)做了非常充分的準備,但支付團隊仍然做了16種降級預案,確保當意外情況發(fā)生時,可以切換到降級預案,保障用戶的產(chǎn)品體驗。
「我們的底線是,不能因為出現(xiàn)意外情況,整個流程就不通了。」萬濤說,「只要項目失敗,就是我們自己的責任。」
充分的方案準備之外,作為本次大考的加分項,度小滿還針對春晚的特殊性做了一些溫情的優(yōu)化。
萬濤告訴雷鋒網(wǎng)AI金融評論,考慮到三四線及以下城鎮(zhèn)、農(nóng)村居民的參與需求,團隊將銀行覆蓋個數(shù)從138家擴展到上千家。
「盡管這138家銀行已經(jīng)滿足超過98%的用戶綁卡提現(xiàn)需求,但考慮到三四線城市和村鎮(zhèn)居民會有城商行、農(nóng)商行以及農(nóng)信社的需求,團隊提出必須讓盡可能多的銀行支持紅包提現(xiàn)。」萬濤說。
為此,團隊設計了一套非常復雜的預案,針對每一家銀行的系統(tǒng)情況做流量限制,并實時監(jiān)控,在大屏幕上顯示。當流量飽和時,支付系統(tǒng)會針對銀行做排隊、提示換卡等操作。
「我們盡最大的努力方便用戶紅包提現(xiàn),而不是告訴用戶:『對不起,我們不支持您的銀行卡,請您更換銀行卡。』」萬濤說,這是團隊此舉的初心。
與此同時,支付團隊還考慮到海外僑胞的春晚感受,無論是港澳居民證還是護照,只要是在大陸銀行開通的人民幣賬戶都可以支持綁卡提現(xiàn)。
轉(zhuǎn)眼除夕

「我不知道你玩過德州沒有?」王繼平問向雷鋒網(wǎng)AI金融評論,「當你All in的時候,你是什么想法?」
他頓了頓:「那時候輸贏已經(jīng)不重要了,我想看牌。」
除夕當天下午四點多,春晚項目組同學們簡單的年夜飯開始了。在奎科大廈附近的小飯館,老板包了餃子,配上簡單的炒菜,讓大伙兒填飽肚子。
為了緩解團隊緊張的氛圍,萬濤在除夕當晚的動員會上笑道,「我說大家不用著急,我們做了最充分的準備。今天晚上我們就一邊打牌,一邊看著大盤的數(shù)據(jù)。」
「但事實上哪是這樣,」曾罡說,「合作四五年,我從沒見過研發(fā)同學那樣緊張。那根柱子往上竄的時候,研發(fā)兄弟的臉『唰』一下就白了。」
好在前期,產(chǎn)品和研發(fā)經(jīng)過了充分的討論溝通,對流量預估把握得較為準確。「20多套降級方案及風險預案,最終一個也沒用上。」曾罡說到。
平穩(wěn)度過后,王繼平給度小滿金融CEO朱光發(fā)了一條信息。大致內(nèi)容是,這夜有驚無險,僥幸過關,不辱使命,下周復盤。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。