高峰之巔:騰訊的“春節保衛戰”
2021年春節,在全國上下“就地過年”的號召下,很多人第一次經歷了除夕夜沒有與家人團聚。而對鄒方明來說,除夕夜在公司早已是家常便飯,過去九年,他的年夜飯時間都是與同事們一起度過。
以往,鄒方明和同事們習慣叫海底撈的外賣到公司,大家以一頓火鍋來為過去的一年收尾,但今年,因為搬到新的大廈,不能開火,所以大家只能跑到公司對面的一個餐廳去吃飯。
所謂的年夜飯,整個過程也十分平淡,沒有人喝酒,吃飯時間也只有下午5點半到6點半約一個小時,用餐完畢,大家都快速回到了工作崗位上。因為不出意外的話,晚上7點他們會迎來一波用戶高峰,而接下來的時間,他們的任務就是監測一波又一波的用戶高峰,并應對可能到來的突發流量。
伴隨著新年的鐘聲敲響,鄒方明眼前的監測軟件一切正常,他們終于可以松一口氣,因為又挺過了一年“春保”。
鄒方明現在是騰訊基礎架構部自研業務中心總監,他所在部門的主要職責是做騰訊內部自研業務的研發支撐,簡單來說,就是該部門接入了騰訊超過90%的業務,用戶平時使用的騰訊產品,如微信、QQ等,底層的技術支撐都與它相關。
而“春保”是春節重保的簡稱,鄒方明告訴21世紀經濟報道,騰訊的產品以社交產品為主,而社交產品一定會有熱點事件、關鍵時刻以及重點保護時刻,其中,春節則是挑戰最大、任務最重的重點保護時刻。
據悉,騰訊內部開始設立“春保”項目是從2013年春節開始。騰訊云副總裁、騰訊基礎架構部總經理肖志立在接受記者采訪時表示,春節的高峰期其實在PC互聯網時代就有,只不過那時候,用戶上網還沒有那么方便,所以當時的高峰不是在除夕,而是在初四或初五,大家過完春節開始工作后,要把一些照片上傳到QQ空間進行分享,但整體來說,那時候的保障壓力不是很大。
但從2012年開始,尤其是當微信出現之后,移動互聯網的浪潮席卷而來,用戶的溝通互動變得更加實時,也由此催生出真正的春節高峰。之所以說這是真正的高峰,是因為與過去PC互聯網時代相比,它的峰值有了成百上千倍的增長,當然,這種巨大的反差,也給從事技術保障的工作人員,留下了許多慘痛的回憶。
意外不斷的“春保”
對鄒方明來說,2013年是他第一次經歷“春保”,那也是他最“痛苦”的一年。
當時,2011年1月發布的微信正快速發展,2012年3月,微信的用戶量突破1億,到了2013年初,微信的用戶量已經突破3億。而鄒方明是微信聊天圖片以及聊天視頻整套系統的研發負責人,如上文所述,2013年之前,騰訊內部并沒有明確的“春保”概念,鄒方明也沒遇到過增長如此之快的產品,所以,在他腦海里,也沒想過微信會突然出現“大擁堵”。
2013年的除夕,在整個移動社交如火如荼的背景下,人們在移動端的互動變得越發頻繁。微信里,用戶們拉起各種群聊,并開始群發拜年視頻。社交產品的魅力在于它的裂變,一傳十,十傳百,但對技術人員來說,這種裂變帶來的則是恐怖的高并發。
鄒方明回憶,2013年除夕,拜年視頻的量突然增長了六七倍,這已經超過他們的儲備。當時,面對突如其來的巨大視頻量,鄒方明有些束手無策,因為沒有準備預備方案,也無法臨時調取更多服務器資源,為了保護整個系統不崩掉,他們只能采取降級的方法。
這里的降級,是指限制用戶發視頻的大小,一開始的限制是10兆以上的視頻不讓發,后來變成6兆、4兆、2兆,整個降級過程從當日晚上7點一直持續到10點,整整三個小時。鄒方明稱,晚上8點多最高峰的時候,他們幾乎限制了70%-80%的用戶發視頻,這是非常可怕的,其間他們也收到了大量用戶投訴,但當時確實束手無策,只能通過這種粗暴的方式,把流量高峰熬過去。
有了2013年春節的慘痛經驗之后,騰訊內部開始進行“春保”籌備。鄒方明介紹,“春保”項目的籌備周期基本上從每年10月份開始,持續兩到三個月左右。籌備過程中,產品和技術團隊會先把春節期間的產品玩法大致都確定下來,然后再根據這些玩法來衡量各個產品要用多少帶寬和存儲等。
當然,這個時候并不是產品提出多少資源需求就都能滿足,鄒方明團隊還會把需求和資源做一個著重的平衡,目的是在資源有限的情況下,通過技術的提升和柔性的策略,確保各個產品的用戶體驗。
但2015年春節,在進行了“春保”準備下,意外還是發生了。因為2014年10月,微信上線了小視頻功能,可以分享到朋友圈和聊天界面,所以“春保”前夕,即10月、11月時,微信小視頻的用戶量并不大,在做預估時,也根據它的量級給了幾十倍的容量。
可到了2015年除夕,微信小視頻突然產生了超出預期的巨大峰值。在春晚開始前的一個小時左右,小視頻的發布量激增,系統開始出現故障。鄒方明和同事們開始緊急擴容,但是,由于當時微信小視頻的系統是復用騰訊視頻的,更加偏向PGC,而不是UGC,所以處理過程也更加復雜。
鄒方明回憶稱,當時緊急擴容了一個索引模塊后,索引沒問題了,但隨著量繼續上漲,前端接入模塊又出現問題,然后處理好接入模塊后,另一個視頻處理模塊又不行了。
“所以當天晚上,問題也持續了約三個小時,當我們把能擴的地方都擴完之后,用戶高峰已經過去。”鄒方明說,雖然整個系統沒有受影響,但是對用戶來說,這個除夕的小視頻體驗是不好的。所以2015年春節過后,騰訊基礎架構部對整個視頻系統架構做了調整,并針對小視頻的場景做了優化。
扛住紅包壓力
2015年春節,除了微信小視頻帶來的緊急狀況之外,騰訊“春保”實際上還迎來了另外一場大考——微信紅包的春晚互動。
肖志立向記者表示,大概2014年11月,他們從微信支付團隊得知,春節要和春晚合作進行一場紅包活動,觸達的用戶規模會很大。當時,距離春節只有兩個月的時間,這對肖志立團隊而言,無疑是一次重大考驗。
肖志立稱,當時面臨的問題主要有三個:首先是原來的紅包系統肯定不能用了,因為原來的系統本來是面向公司內部幾萬人使用的,現在要擴大到給10億用戶發紅包,整個系統必須重做。
其次,春節的紅包活動是通過春晚口播的形式,讓用戶參與搶紅包,這里面的挑戰是很難預估系統要承載多少訪問量。“不知道要承受多大的壓力,這其實是做架構的大忌,但我們當時確實沒有任何參考。”肖志立說。
最后,是這次技術保障工作只許成功,不許失敗,“如果失敗,那就是在全國人民面前丟臉,所以技術層面的壓力會比任何時候都大。”
在這不到兩個月的時間里,肖志立帶著騰訊基礎架構部的紅包系統團隊和微信支付團隊一起,通宵達旦地待在深圳騰訊大廈,每天基本上是晚上12點鐘提交版本,凌晨1點開始做測試,大概凌晨三四點鐘出結果,大家再繼續上來研究第二天如何優化和改造。
一直到2015年2月10日左右,整個紅包系統基本上確定了下來。但直到除夕前三天,整個團隊仍然在改代碼,因為在反復測試過程中,只要發現可能帶來風險的地方,肖志立都會讓團隊把它改掉,“我們必須盡量把所有風險都排除掉。”
最終,騰訊的2015年春晚紅包活動圓滿完成,微信支付也憑借這次合作,在移動支付領域完成了對支付寶的追趕。據微信官方數據顯示,2015年除夕當日,微信紅包收發總量達到10.1億次,在晚上8點到次日凌晨零點四十八分的時間里,春晚微信搖一搖互動總量則達到110億次。
騰訊基礎架構部技術運營中心總監肖攀告訴21世紀經濟報道記者,對于紅包系統來說,如果遇到了超預期的巨大流量壓力,他們也會采取一些降級的辦法,比如從金額上做一些限制,這樣就可以把并發量快速降下來。
另外據肖攀介紹,整個紅包系統其實像漏斗一樣,它每一層都在過濾,所以搶紅包的“搶”這一下,是用戶并發量最高的,其次是拆,等到最后真正的交易環節,其實用戶并發量已經少了很多。
雖然近幾年,微信紅包的發展速度也很快,但是再也不會像2015年那樣出現從10萬量級到10億量級的飛躍式增長。目前,微信紅包的用戶量已經接近于微信的用戶量,春節期間并發量的增長也相對穩定,對騰訊的紅包系統來說,現在的主要工作就是對系統進行不斷優化,降低成本和資源。
“春保”變成常態
鄒方明告訴記者,若回顧騰訊過去九年的“春保”,大致可以分為兩個階段,第一個階段是2013年至2016年,可以稱為承載力不足的階段。
在這段時間,有業務快速發展的原因,也有騰訊自身技術架構不完善的原因,總之就是系統能力不夠支撐業務的增長,導致了各種故障的出現。所以這個時期,主要工作就是提升承載能力,除了增加硬件設備,在技術手段上,也要不斷進行性能提升。
第二個階段則是2016年以后,這個階段,在過去幾年的沉淀和優化下,騰訊的承載能力已經基本沒有問題,這時候要做的就是精益求精。伴隨著用戶對產品體驗的要求不斷增加,騰訊也需要在保證系統正常運行的基礎上,不斷優化承載能力,比如過去,可能對技術的要求是不能拒絕服務超過30分鐘,而現在,拒絕服務的情況已經不會發生,對技術的要求則變成服務的時延不能超過5分鐘。
今年的“春保”,肖志立整體體驗下來,感覺十分順暢,所有的高峰期都在預測范圍內。所以,對肖志立帶領的騰訊基礎架構部來說,像“春保”這樣的重點時刻的保障工作,在現有的業務條件下,壓力已經趨于平穩,要提防的主要是一些突然出現的關鍵時刻。
比如2020年初,因為新冠疫情的原因,讓2019年底才上線的騰訊會議迎來了一次關鍵時刻。按照騰訊會議團隊原先的目標,是預計2020年底的DAU達到5萬,到2月中旬時,騰訊會議的同時在線用戶已經突破400萬,達到了1000倍的增長。
這種大幅的增長,也給騰訊基礎架構部帶來了巨大的挑戰。肖志立表示,其實單從技術層面,在線用戶幾百萬的業務騰訊有很多,做這種業務的支撐也不是什么難題。但當時之所以情況緊急,是因為疫情的影響下,他們無法找到足夠的物理資源,比如運營商的BGP寬帶滿足不了,外網的IP地址也滿足不了,一些設備供應商無法復工,各種設備也供應不上。
這個時候,這些硬件的問題只能通過軟件來想辦法解決。肖志立稱,IP地址不夠,就想辦法用端口復用的技術,新機器供應不了,就從全國各地調集服務器,重新通過虛擬化或者軟件架構的方式去適配,爭取先把騰訊會議的業務支撐起來。
就是在這種條件極為艱巨的情況下,騰訊會議完成了100萬核的擴容。其實從難度上來講,騰訊會議的緊急擴容要比2015年應對春晚紅包活動更難,因為這是在完全沒有準備的情況下,應對的一次挑戰。而騰訊之所以能夠頂住壓力,也是因為過去經歷了太多次像“春保”一樣的重要時刻。
鄒方明便表示,現在從故障發生的頻率和維護的穩定性來說,技術保障工作變得更加容易了,因為大家都身經百戰,很多員工從2013年“春保”工作至今,對每個業務的性能和需求都十分熟悉。所以現在出現大狀況,主要就是因為沒想到,但實際上,這種沒想到的情況也已經越來越少。

2、本網其他來源作品,均轉載自其他媒體,目的在于傳遞更多信息,不表明證實其描述或贊同其觀點。文章內容僅供參考。
3、若因版權等問題需要與本網聯絡,請在30日內聯系我們,電話:0755-32905944,或者聯系電子郵件: 434489116@qq.com ,我們會在第一時間刪除。
4、在本網發表評論者責任自負。
網友評論僅供其表達個人看法,并不表明本網同意其觀點或證實其描述,發言請遵守相關規定。