左林右狸頻道按:
毫無疑問,快手是有危機感的,這種危機感不僅來自於競品的增長,也來自於自身成長變化帶來的失控感。
過去的兩三年時間裡,快手的員工人數增長了十倍以上,從一個數百人的小型團隊,增長成了萬人以上的巨型團隊,這也意味著管理難度的幾何式增長。怎樣讓一支龐大的隊伍心往一處想,勁往一處使,高效運轉起來,這是快手高層必須回答的問題。
2019年6月份,宿華程一笑給快手全體員工發布了一封內部信,文中將「偉大」定為目標,表示快手的願景不僅僅是成就偉大的產品,更是要成就偉大的公司,並且提出了3億DAU的目標,為這艘萬噸巨輪指引了方向。
讓一匹馬跑起來,只需策馬揚鞭,讓一艘萬噸巨輪開動起來,就必須得有一聲響徹天際的汽笛長嘯。
有了方向的快手還差一個推力,春晚來的正是時機——這個流量世界的地獄關卡。
只有經歷巨大的挑戰,只有付出艱苦卓絕的努力,才可能成就一家偉大的公司,經歷春晚的快手再也不會和「佛系」沾邊。
文 | 林覺民
如果把做春晚紅包比作登珠峰,快手無疑是選擇了最危險最難爬的北麓,他們前所未有的選擇了最難做的視頻紅包作為載體。
大眾最常見的網絡信息介質莫過於文字、圖片、視頻三種,稍有經驗的網民都會知道,傳輸文字、圖片和傳輸視頻完全是兩回事。
如果把文字、圖片比作網絡公路上的行人、自行車,那視頻無疑是重型貨車。
快手之前做過春晚紅包項目的BAT三家無一例外都是採用了前兩種。
即便如此,當春晚洪峰來臨的時候,還是有成千上萬的人「堵」在了路上,走在前面的更是出現了伺服器瞬間超過負荷的事故,以至於網絡上有人調侃「春晚紅包宕機史,就是半部中國網際網路技術進步史」。
現在快手拿到了春晚紅包的接力棒,卻選擇了最難的道路,這也就意味著「宕機史」和「進步史」快手只能繼承其中之一,再也不可能有妥協的中間形態。
從某種意義上來說,這也是快手唯一的道路。
「你們想一下,如果因為這件事,春節回來後公司就倒閉了,那麼你們現在要怎麼做?」
在討論紅包形式的產品決策會上,CTO陳定佳說出了這句話。快手對春晚紅包活動的重視程度可想而知。
經歷了8年的發展,「慢公司」的標籤曾經像影子一樣貼在快手身上,肌肉變得無力,反應變得遲鈍。快手要重新跑起來,K3戰役的打響已經讓這家公司飛速的跑了起來,春晚紅包這場戰役將是一場披荊斬棘的挑戰與重生。
一、「不可能實現的方案」
時間回到2019年國慶後,春晚紅包的第一次產品方案討論會,這次的參會人員不但包括產品線所有核心成員,還有研發線的眾多高管,宿華、程一笑兩位創始人也在場,CTO陳定佳因人在深圳,通過視頻電話接入。
很顯然,第一次討論會沒有得出令人滿意的方案。
陳定佳說出了上文那句事關生死的話,宿華也表達了兩點意見,一是他認為目前方案思考太淺;二是他認為產生方案的方法有缺陷,他不能接受一個成本如此巨大,甚至決定生死的方案就是這麼定下來的。
為了選出最佳方案,快手高層決定做一次方案賽馬:首先確定8支參賽隊伍,每支隊伍各自提出方案進行初賽;然後從8支隊伍中選出四組,再進行一次決賽。
10月份的一個月對於參與方案賽馬的同學來說,一定是職業生涯內難忘的經歷。
在項目保密階段,很多快手的同學還不知道公司今年要在春晚發紅包,參與賽馬的產品部、市場品牌部、商業化等多個部門的幾十位同學已經開始通宵達旦。
每組同學為了達到最好的效果,在規定的短時間內出創意、設計方案、演示、迭代,參與的人都拼盡了全力。
快手最終選擇了「視頻+點讚」這一組的紅包方案。
這是比較特殊的一組,其他的組基本都是同部門人組隊,這組的參與人員由商業化、市場品牌部、運營部等多個部門的同學組成。他們提了一個「視頻+點讚」的紅包方案,春晚主持人口播的時候,幾億人一起看視頻並雙擊屏幕點讚,最後彈出來紅包。
這個玩法方案演示的時候,團隊裡走出一個學過播音主持的女同事模擬春晚當晚的主持人,她口播的同時,一段視頻隨即播放,解說的聲音和視頻播放完全同步,配合著主持人的口播,APP端用戶同時點讚,最後彈出紅包。
主持人的口播十分精彩,兩分鐘包含大國重器、坦克、飛機的混剪視頻又燃又爆,這個演示確實打動了在場的眾位評選人。(這個方案大致就是除夕當晚使用的方案,參與過搶快手春晚紅包的各位鄰裡,可以嘗試回想一下。)
隨著方案賽馬的結束,視頻紅包的方案最終被敲定。快手這次要玩和以往春晚紅包不一樣的!產品方案賽馬的整個過程,技術人員全程在參與。對於技術人員來說,方案早一天確認,他們上戰場前的準備時間就延長了一天。但這個方案的確定,引起了技術人員的很大反應。
這裡給各位鄰裡解釋一下,往年網際網路公司參與春晚,是用圖片和文字來玩轉紅包,而今年快手要用視頻來玩。這個難度是怎樣的?
視頻的大小是圖片、文字大小的幾十倍甚至上百倍,快手APP這款短視頻產品本身是一款重依賴富媒體能力和AI能力的產品,這款本身已經「負重」不少的產品,要在春晚的極端流量海嘯下提供視頻紅包的高質量服務。這就是快手選擇的攀爬珠峰的「北麓」。
產品方案確定,到了技術人員拿過「接力棒」奮力奔跑的時候。
「這不可能實現,如果不做優化,全國的帶寬都拿過來都不夠用」。快手的研發部門從2017年的200多人發展到目前的2000多人,兩年多的時間積累了精兵強將。因為技術人員能力強,日常工作中,很少有技術人員拒絕產品需求的時候。但這次,幾條技術線得知這個方案玩法後,給出的反饋是,這不可能實現!
春晚項目技術總指揮韋彬後來對左林右狸頻道談起了當時的感覺:「第一次看到方案確實覺得新穎,然後就立馬覺得技術上不可實現。」無論是需要消耗的資源,還是實時交互,都是極其困難的。
往年的搖一搖發紅包傳遞的是需求指令,而現在他們選擇傳遞的卻是幾十秒鐘的視頻,這背後就是要消耗海量的網絡帶寬和伺服器資源。
甚至有技術人員當場算出了需要的帶寬總量,這個需求與此時中國所有的帶寬加在一起的總量相當。
關於方案選定的決策發生了很多的激烈的討論,技術研發線的很多人提出了理智的質疑,背後的指向只有一個,如果不做優化,絕無實現的可能。
這個方案給技術團隊帶來了極大的壓力,這種玩法沒有別的公司做過,所有事情之前都沒有人做過,也沒有經驗可以借鑑,很多同事挑出來方案中不可實現的點。「如果我們什麼都不能做,那我們做的事情也太沒有挑戰了。」在大家一籌莫展的時候,有人說了這樣一句話,並提醒大家需要換個思路,想想能做什麼。
李偉博是快手春晚項目後端穩定性負責人,他記得很清楚,當時有技術同事說了這句鼓舞士氣的話。
眾人為之一振。
在2019年6月宿華程一笑發表的內部信中,兩人痛感「慢公司」帶來的羞愧,並定下3億日活的目標,立下了「追求極致」的軍規,
現在,K3戰役尚未結束,士兵豈能畏葸避戰!
那個「不可能實現」的方案終於被加上了「看似」的前綴,它最後真的眾人被選中,沒有人想像做夢一樣的度過職業生涯,每個人都渴望有一個關於戰鬥的故事。
二、「只有基建狂魔才配的上視頻紅包」
百度作為一家領跑二十年的網際網路公司,高層的一句話就可以將5萬臺伺服器從鳳巢轉到春晚紅包,一下子解決一半的算力問題,這樣的家底是快手所不具備的。
快手負責基礎設施建設的包能輝也是最早知道春晚紅包項目的一批人,CTO陳定佳在9月末告訴他,快手正在爭取這件事,讓他可以提前準備了。
包能輝後來對左林右狸頻道回憶起當時的感覺,用了兩個字——「吃驚」,他說:「拿下的信心比較高,做成的信心是一點也沒有,當時要面臨的問題太多了。」
之前百度用了十萬臺伺服器,這一次快手註定只多不少。
在定下了視頻紅包的方案後,快手需要的伺服器數量更是暴增。任務量更大的同時,包能輝所能調用的人手大約只有百度對應事宜人手的十分之一。
與百度相比,包能輝團隊唯一的優勢就是多出來兩個月的準備時間。
既然如此,那就搶先一步,開始戰鬥吧!
當眾人還在等待方案細化的時候,包能輝作為先鋒官,已經踏上了建設基礎設施的徵程。
第一場:伺服器伏擊戰
這是一場準備已久的戰鬥。在開始之前,包能輝需要先向內部爭取預算。
在討論產品方案的時候,包能輝做了一份關於資源估算的報告,當他把最終算出來的價錢拿到眾位核心高管面前的時候,雖然大家當時沒有說,但在之後的私下溝通中,每個人都覺得太過龐大,負責財務的同學更是急的跳腳。
基礎設施建設的開銷都是長期投入,快手的高速發展,需要的伺服器數量每年都在翻番,現在購置基礎設施就是提前把以後需要的東西提前買了。財務同學又對預算做了很多精細的計算,最終定下預算方案。
快手是幸運的。春節之後疫情的原因,線上數據增長,伺服器需求增加,春節項目積攢下來的伺服器派上了用場。疫情期間買伺服器很困難,不但廠家缺貨,運輸也是問題。
但是光有錢還不行,有錢人家也未必有貨賣。
2019年Q3全國的伺服器廠家的銷售量是80多萬臺,快手需要拿下一個季度超過10%的產能, 伺服器廠家對於這麼多額外的需求,出現了不同程度的原料缺貨。
也慶幸快手這幾年的高速發展與供應鏈的上遊廠家建立了很多聯繫,和廠家一起協調全球供應鏈。SSD,內存,CPU,GPU這些上遊配件廠家沒少受快手的騷擾,各廠家幫忙從全球各地的調貨,12月底前這批貨陸續匯集到快手的機房。
在做上面這些工作的同時,包能輝團隊還得做機房建設,上萬臺伺服器輪番到貨的時候,還得有機房等基礎設施支持。
但是現在只有三個月時間,數據中心建設正常情況下都是以年為單位,臨時搭建肯定來不及。包能輝採取了兩手措施:
一是想方設法在快手現有機房上進行擴容,設法在有限的空間裡容納更多的設備;
二是讓團隊在北京尋找現成的機房,一時之間北京周邊幾乎所有適合的數據中心都被他們跑遍。
也得虧快手這幾年高速發展,拿下了不少數據中心,不過這些數據中心雖然不是空地,很多都是半成品,沒通電,沒網絡是普遍現象。為了加快建設速度,不僅是IDC供應商,他們後面施工隊,市政電力,運營商,機電設備商 也承擔了巨大的壓力,大家一起加班加點建設採取各種方式保障建設的進度。像電力未及時就位,電機先上;設備未到位,布線先行 這些非常規的方式也被一一用上。
包能輝告訴左林右狸頻道這裡有一點比較幸運,大家對於春晚的重視程度都是非常高的, 像三大運營商經歷過百度的春晚活動,在配合快手的時候也表現的相當高效,甚至會靈活調整一些規則流程——先辦事,後補手續。
所有的人都特別希望,2020年的這個春晚,快手能順順利利給全國人民發紅包。
除了自建的數據中心外, 快手在雲上的業務需求量也很大。快手一直以來是以混合雲的模式進行運作,混合雲平臺與多家雲廠家合作,並結合快手自有IDC使用。百度春晚直接使用百度雲就可以,快手要擴容混合雲平臺,就要和多家雲廠家對接,這代表的是N倍的工作量,對雲廠家和快手同學都有很大挑戰。
雖然幾家雲廠家都參加過之前的春晚活動,但快手這次給出的需求量依然嚇到了他們。短時間快速將大量級資源接入混合雲平臺,幾家雲廠家之前沒有操作過, 這裡僅僅雲機房和快手自有數據中心間的網絡傳輸就需要擴容超過20倍,成本和工作量都是巨大的。
從10月份到春節前的最後一刻,快手的同學與多家雲廠家持續協作,針對不同廠家的能力制定不同的方案,在雙方的努力下,最終完成了混合雲平臺的擴容。
第二場:CDN殲滅戰
2019年中國境內CDN,這一次快手直接包攬了四分之一左右。用包能輝自己的話說,他們基本上把市面上所有能用的CDN全都包圓了。
但是光買到CDN還不行,包能輝還必須要確認CDN廠家到底有多大能力。舉了個例子,有些地方兩個廠家都告訴自己有10個T 的CDN,結果實際上兩家加在一起才有10個T,兩家運行的時候都要找運營商。
為了保證質量,每一家CDN快手的資源團隊都會去壓測驗證,做好掃尾工作。
第三場:應用商店攻堅戰
前一年的春晚紅包,百度APP本身沒有出什麼事故,應用商店卻因為CDN不足宕機,阻礙了更多用戶參與活動。
在接到春晚紅包任務後,作為百度雲服務和CDN採購者,包能輝跟百度相關人員取經。
對方告訴他,其實百度之前也跟應用商店進行了溝通,但從百度最終結果來看,應用商店的技術人員並沒有完全了解到百度的需求。這條經驗總結對於只有一次機會的快手極為寶貴,包能輝立刻行動起來。
在這一次快手與各家應用商店的溝通,包能輝要求技術和商務的同學都要到位,該方向負責人連博前往深圳與OPPO、華為等廠家進行拜訪,確保與具體負責該項目的技術人員溝通到位。
在這過程中,有些廠家此前被「打掛」這次表現積極,有些廠家還是沒有意識到春晚流量的含義。某一線廠家技術人員開始並未出現,包能輝便通過其他渠道去督促其老大,後來該部門領導出面處理,態度有了很大的改觀。為了確保除夕當晚的穩定,快手甚至幫助某些廠家改良應用商店架構,以及分出部分CDN提供協助。
然而人手不足,事務眾多,具體落實到每件事上,時間和人力還是捉襟見肘。
包能輝回憶的時候苦笑道,一開始問題很多自己並不害怕,但是到了12月問題還是不斷冒出來,每次看日報和周報的時候,各個方向都是問題,自己也不免心裡發毛,但也只能硬著頭皮做下去。
在快手團隊選擇視頻作為紅包載體的一瞬間,包能輝的部門就註定要化身基建狂魔,他必須盡一切可能將網絡道路拓寬再拓寬,因為在除夕之夜,主持人口播的那十幾秒鐘,將會有上億輛載著視頻的重型貨車在上面同時奔跑。
至於這些基礎設施到底堅固不堅固,能不能經受住流量洪峰的衝擊,也只有那天晚上他才能得到最終答案。
時間很快就到了元旦,東方衛視的中場模擬考即將臨近。
三、「即使斷網,我們也要接著玩下去」
儘管前面已經模擬測試過幾次,但是東方衛視元旦晚會這次小考還是切切實實的告訴快手團隊,真正的戰場和模擬完全是兩回事。
為了保證在元旦前客戶端更新的覆蓋量,快手客戶端團隊定下的封版時間是12月初,時間便顯得異常急迫。
客戶端負責人劉春雨告訴左林右狸頻道:「公司之前曾經參加過春晚的競標,那次就挺期待的,但最後沒做成,團隊非常想參與這次特別重大的戰役。」
劉春雨加入快手的時候,整個公司還不到60人,入職後一直負責客戶端和測試團隊。
他第一次知道春晚紅包這件事是在研發線技術核心的群裡,當時看到消息,心裡是既興奮又高興。早在2018年快手就曾經參與過央視春晚的競標,但是最後沒有成功,這件事讓他情緒上頗有起伏。
客戶端團隊真正介入已經是11月初。
如果說系統運營部是拓寬道路,那劉春雨負責的就是改造運送視頻的「貨車」。
為了讓它佔用更少的空間,劉春雨對春晚快手的安裝包進行了極致瘦身,除了很多無用圖片、文件被挑出來刪除,還有一些動態庫裡的文件、代碼被放在了服務端。
結果是,除夕當晚的安卓端安裝包被從84兆壓縮到了67.8兆,ios端安裝包被從177兆壓縮到了156兆。
在數以千萬計的下載量面前,安裝包每縮小一點點,都可以為節省大量帶寬,也就是節省大量用戶下載時間。
從春晚拉新來說,安裝包下載時間每節省一秒,都可以讓更多的用戶參加活動,也就會讓更多新用戶走進快手。
談到客戶端方向遇到的最大難題,劉春雨笑道,純技術的難度可能不多,最大的難題就是一直不能確定細節,雖然方案定了,但是很多細節一直在調整,時間非常緊迫。
對於後來的方案調整,劉春雨打了一個比方,「這就相當於一邊開飛機,一邊換引擎。」
另一個難點就是,要做好流量降級的準備。
所謂流量降級,簡單來說就是在服務端訪問壓力過大的情況下,客戶端把一部分不那麼重要的網絡調用請求暫時停掉。
要想分辨出哪些請求是必要的,哪些請求是可以停掉的,對這些請求進行分級梳理就格外重要。
首先是梳理啟動過程中的關鍵請求。
除夕當晚紅包即將分發,播報的那一刻流量到達頂點,大量新老用戶同時湧進快手APP,大家一打開快手,客戶端必須發出的請求就是最關鍵的請求。
這些第一批次API啟動過程中的請求被分成P0、P1、P2三個等級,在遇到緊急情況的時候,後臺可以按降級方案進行處理。
第二步就是梳理進入某些功能後才會觸發的請求,這些就需要劉春雨團隊去和各個業務方具體商量,確定哪些可以暫停,哪些必須保留。
上面提到的這些流量降級方案,基本上都不會有太多外在表現,甚至搶紅包的時候,用戶根本感知不到變化。
劉春雨還提到了一種極端嚴重的降級情況,即使所有伺服器都掛了,春晚紅包的遊戲還是能夠繼續進行下去。
對於已經下載過快手的APP的用戶來說,他們的APP裡基本上已經緩存了視頻,也還是可以看視頻搶紅包。
對於那些剛剛下載,或者還沒來得及緩存的快手用戶來說,他們大概率會看到一張事先準備好的圖片,但是搶紅包還是可以繼續進行。
按道理說,後備方案已經準備到了這種程度應該是不會出問題了吧,然而元旦晚會的預演說明了還有改良空間。
一個是對時,因為之前沒有參與過這種活動,所以前期準備中,並沒有意識到口播時間隨時變化的重要性,一直到元旦晚會前一周,快手團隊在參與與東方衛視晚會彩排演練的時候,才發現這個問題的挑戰非常大,於是緊急成立了對時小組,保證了元旦晚會中沒有出現紕漏。
另一個就是現場組織的問題。韋彬後來告訴左林右狸頻道:「如果你扔一條信息到公司大群裡,幾百個人都在裡面,這種信息是沒法看的,同步誰,誰反應,誰決策這些都是問題。」
經歷了元旦晚會的演練,快手意識到,在晚會進行的時候,整個快手團隊幾百號人聚集在一個辦公室裡,從座次到匯報機制都必須進行設計。
在除夕當天,快手制定了指揮官制度,在總指揮部的領導下,有三十多個指揮官可以臨場決策,臨場應變,以便不論哪裡出現問題都可以快速反應解決。
四、「捐助武漢的功能,我需要一個決策」
李偉博跟左林右狸頻道提到了技術研發版的墨菲定律,一個問題,如果你做了準備它就不會發生,但是如果你沒做準備,它往往就正好發生。
進入1月份以後,客戶端發版完,各個部門又開始了提升可容性的工作,比如實現雙機房容載,也就是說在兩個物理機房中做了服務系統的容載,即使在除夕當晚真的有一個機房斷電斷網宕機,另一個機房也能保證活動不受影響。
前文提到的流量降級只是為了以防萬一做的準備,真正減少伺服器和CDN壓力的還要靠另外兩個重要方法:預加載和打散。
所謂預加載,簡單來說,只要用戶提前下載了快手APP,後端就會對春晚視頻進行提前下載,當晚只需要接受信號按時播放就可以了。
另一個就是打散。因為除夕當夜的需求主要集中在口播的一瞬間,在那個全國統一的時刻,所有用戶會一起湧入APP發布紅包請求,而這個峰值時間往往就是那麼1秒或者幾秒。
相比於之前各家網際網路公司採用的搖一搖形式,快手視頻點讚搶紅包玩法的難度更大。用戶搖一搖之後,客戶端到底有沒有成功發送需求這是不一定的,即使失敗了用戶也會覺得是自己運氣差,沒有搖到紅包。
但是視頻點讚這種形式只有成功沒有失敗,無論如何,快手APP必須在這個時間裡向服務端發起請求。
從全國各地發送的紅包請求聚浪成峰,山呼海嘯湧向伺服器的時候,快手要做的就是打散。
舉個簡單的例子,當紅包請求達到每秒2000萬次的時候,伺服器就會承受巨大的壓力,後臺將這些請求打散在10s中進行處理,用戶感知不明顯,但是伺服器承受的壓力就會減小十倍。
李偉博告訴左林右狸頻道:「即使做了打散,即使做了預加載,即使做了降級,這些討論我們全都做了,難度也還是很大。」
對於他來說,這件事最大的挑戰在於沒有辦法驗證,即使他可以做非常充分的挑戰,但是機會只有一次,一旦出現任何超出預期的意外,這件事很可能就成了敗局。
時間到了春節前幾日,前後經歷了五輪大規模全鏈路壓測,以及無數輪小型壓測,產品、設計、運維等各個團隊的準備工作大多就緒,李偉博團隊卻還在為了調整各種細節趕工,直到大年二十八還在為微信分享進行調整。
到了大年二十九號這天晚上,功能都已經在昨天上線,李偉博晚上下班已經到了家中。
也就是這天晚上,全國各地關於新型冠形病毒疫情的報導大量爆出,武漢形勢日益艱難,李偉博看到公司群裡都在討論這件事,雖然之前快手已經捐出1億元,但是現在大家都在想春晚紅包項目是不是也可以為疫情做點事情。
經過一番頭腦風暴,商業化部門的技術負責人嚴強提出一個方案,如果用戶在春晚領到紅包後選擇放棄提現,捐贈武漢,快手就額外再多捐10%,這個方案獲得了大家的一致認同。
但是當時時間已經到了晚上十一點多,也就是還有不到一小時就是年三十了,這個捐贈功能還需要前後端的同學開發上線,李偉博面臨著巨大的壓力。
在如此緊迫的時間裡開發出來的功能有問題怎麼辦,公司耗費的巨額資金,前面三個月快手團隊上下的準備將會面對一個怎樣的結果。
換一個角度說,在之前連續三個月的加班奮戰中,很多同事都是吃住全在公司,集中開發的A1辦公室裡還擺著一排排的行軍床,甚至有些團隊成員還是帶病奮戰的狀態。而現在,很多人才剛剛到家,準備洗澡休息,明天參加除夕大會戰。
李偉博不敢自己答應下來,他只能做了「有可能能做」的回覆。
就在此時,萬分糾結的李偉博給負責支付後端和H5開發的同事打去電話,讓他們一起評估下這件事。
在打這個電話的時候,李偉博心裡甚至認為,他們評定的結果一定會認為風險較大,很可能建議不做。
然而出乎意料的是,這兩位同事都覺得給武漢捐款的功能非常有價值,都表示想要挑戰一下。看到大家這個反應,李偉博聯繫了CTO陳定佳:「我需要一個決策。」然後,他就描述了這個提案。
這件事很快被快手最高層決策委通過,大概晚上十二點左右,李偉博坐上了前往快手總部的計程車,外面的氣溫接近零下十度,路上的燈光昏黃不定。在此之前,還有一個大年二十九的夜晚,李偉博也是在快手度過。那是2016年的除夕前夜,他和宿華、陳定佳、王天舟等同事在公司通宵定下了直播的基礎架構方案,也就是那一年,快手直播崛起,直至成為世界上最大的直播公司。
這天夜裡,大約凌晨1點左右,除了李偉博和他的研發同事們拿著電腦趕回來了,快手法務團隊、品牌團隊、產品團隊等全部到齊,所有人一起開始商量捐贈活動的細則。
這裡解釋一下為什麼會需要這麼多團隊協作,在中國做公益是需要資質的,要想將這件事做好,在一個合規合法的框架下做事非常重要。
凌晨2點許,方案細節商定完畢,李偉博團隊立刻開工,連夜開發測試。事實上整個大年三十他們都沒有來得及感受節日的喜慶,一直都處於緊張的開發狀態。這件事真正完工已經是春晚結束後的凌晨2點,而用戶紅包提現的預定時間是凌晨6點,這4個小時的時間差真的是被昨晚那些人生生搶出來的。
五、音視頻領域的「夢之隊」
在大年二十九這天接到緊急任務的還有音視頻技術團隊負責人於冰,春晚項目最後一輪的大轉盤紅包突然新增了一條「為武漢加油」的視頻,這意味全中國所有快手APP上已經做好的短視頻預加載都要調整。
視頻紅包預加載方案,就是把主持人口播時刻要播放的視頻提前加載到用戶的APP上,就像快遞員提前把包裹放到你家附近的配送點,以方便即時配送。這個解決方案,是幫助快手完成這個不可能完成任務的重要解題思路。
打一個不精準的比方,這就好比之前用了三個月時間在數以億計的快手用戶口袋裡放了一把棋子,而現在要在一天的時間裡將所有人口袋裡的一顆棋子精準無誤的換掉。
談起這件事,於冰用極其平淡的口吻告訴左林右狸頻道:「其實還好」,頓了半晌,他又補充了一句,快手的音視頻團隊是「世界級的」。
早在2008年,剛剛離開谷歌創業的宿華就和於冰在視頻技術上有過深入合作,後來2016年快手開始自研直播技術,宿華便力邀當時在美國知名視頻網站任工程總監的於冰加入。
那時候,快手在音視頻方面的力量還很薄弱,整個團隊只有3個人,視頻壓縮的質量和解析度都非常低,直播也是完全用的第三方方案。於冰加入之後,一邊加緊搭建團隊,一邊做技術升級。
為什麼說這個團隊目前成長為世界級的呢?除了招募到了行業內最頂尖的人才外,他們構建了直播、短視頻的移動端到服務端基礎技術平臺。這個團隊還有一個特點就是用數據驅動的方式做視頻,自建了實時流媒體大數據監控系統,這很可能是國內唯一一套最完整的解決方案,領先業界至少一年。
於冰同樣是最早知道春晚紅包項目的人之一,他當時還向市場品牌負責人建議採用點讚的玩法形式,原因是這樣可以建立一種印象,微信的代表動作是搖一搖,而快手的代表動作就是點讚。
但視頻紅包的最終方案交到研發團隊手裡已經是11月初。音視頻技術團隊主要負責兩個項目:一是春晚直播,另一個就是「忙時(主持人口播時刻)視頻紅包點讚」。
除夕當晚,快手春晚直播間累計觀看人次7.8億,最高同時在線人數2524萬,這是一個聚集全球各地觀眾的超大直播間。為了保障超高並發直播的穩定性和質量,直播技術團隊負責人郭亮,帶領一支三四十人的團隊做了大量工作。這支團隊實戰經驗豐富,曾負責去年十一國慶閱兵在快手的直播。
要保障春晚直播穩定性,信號源尤其重要。在信號源方面,主力源採用央視官方信號,備用源則進行了多路準備,既有衛星信號、也有有線電視信號,為此團隊員工甚至在家中架設了備用信號採集設備,以備不時之需。
春晚作戰區有一塊被隔離帶保護起來的工區,這裡就是直播團隊的播控作戰室。各路信號匯總到播控作戰室,除夕當夜會有一個專門團隊負責重點保障,來保證不論哪一路信號源發生故障時,快手直播都可以無縫切換到備播源。在直播分發方面,快手調集了全網的一線 CDN 資源,通過大數據精準調度和質量監測,保障用最高質量的直播流覆蓋全國乃至世界各個角落。
具體開發「忙時紅包點讚」活動的是陳彬,他是快手音視頻團隊短視頻架構負責人。「忙時紅包點讚」主要指的是視頻紅包方案中視頻的播放和點讚體驗(玩過快手春晚紅包的鄰裡可以回憶一下)—— 央視主持人口播瞬間,彈出一支視頻播放,點擊視頻上的金色愛心,畫面中不停的冒出金色錢幣、福字、紅心元素圖案等等。
快手的AI實驗室Y-tech負責製作出高質量的視頻動效,陳彬團隊則負責把動效與視頻播放、音效渲染結合起來,把互動效果調到最佳。舉個例子,在第一版出來之後,當時大家拿著體驗頁面點擊金色愛心,發現愛心釋放的光芒太多擋住了後面的內容,而且點擊的時候手機振動太強影響點讚感受。這時,陳彬團隊就要跟產品設計團隊一起,對這個效果進行多次調試,以實現最佳體驗。
春晚視頻紅包的預加載方案,執行的重頭戲也在陳彬團隊。
春晚當晚的五輪視頻紅包玩法,每個用戶手機上都需要播放5個幾十秒的視頻。在春晚的高並發時刻,是數億人的手機同時播放視頻。為保證視頻流暢播放並節省帶寬,陳彬團隊在除夕前曾經先後近20次將紅包視頻預加載到快手APP。
時間回到大年二十九那天,團隊接到了增加「武漢加油」視頻的任務,陳彬此時非常清楚,調整視頻並不是難事,現在最大的挑戰是在更換視頻之後,還要保證預加載的覆蓋率。
距離春晚開始還有不到24小時,要在春晚開始前把「包裹」送到儘量多用戶的APP裡,這樣才能降低高並發時刻的伺服器宕機的風險並節省帶寬。要想提高預加載的覆蓋率,其中一個關鍵點就在於要將視頻文件壓縮到最小,當然前提是視頻必須能清晰播放。
這時候就必須要提到一項黑科技——快手的智能視頻壓縮算法,操作流程大致分為兩個步驟:先增強畫質,後壓縮大小。視頻算法負責人鄭雲飛帶領團隊,拿到視頻素材後,先通過基於深度神經網絡的圖像算法將視頻缺陷部分,如模糊、偏色、噪聲等修復好,有些算法不好處理問題還要人工手動調優,然後再用先進的視頻編碼算法對視頻進行壓縮,最終生成的視頻碼率只有通常壓縮手段的三分之一。
上面提到的大數據監控系統這時也發揮了至關重要的作用。在視頻下發過程中,團隊可以通過這套監控系統實時觀測預加載的情況,對於沒下發成功的用戶,後臺便可以對其進行重試下發。
經過音視頻團隊的努力,在除夕當晚,預加載視頻終於覆蓋到了足夠多的用戶設備。
在春晚口播開始之前,接近98%的活躍用戶手機中都已經預加載了搶紅包需要播放的視頻。春晚當晚,紅包互動次數達到破紀錄的639億,單分鐘視頻播放次數突破3億,而帶寬消耗遠低於準備的CDN資源上限。
六、除夕之夜
從2019年國慶節之後開始,快手的研發部門像是一輛飛奔的賽車,不斷加速,避開山體、避開樹木、避開兩邊的懸崖和河流,在減少事故的道路上,不斷逼近極限,眼看著就要衝過終點,創造新的記錄。
沒有人想到,2020年春節前夕,中國這片土地上會出現一場如此嚴重的疫情。
對於春晚,我們一無所知,這句話又有了一個新的含義。
大年三十晚上八點,春晚即將開始,整個快手總部辦公樓區燈火通明,春晚紅包團隊全員到齊,沒有一個人放棄職守!
負責紅包項目忙時部分的員工,工位集中搬到了A座的3層,273個工位上坐滿了人。每個人都穿著紅色的毛衣,戴著白色的口罩,胸前掛著工作證。除了西邊的公證處辦公室,所有的屋子都擺滿了大大小小的數據顯示屏,進門的牆上是「追求極致,唯快不破」八個紅字。
春晚項目總指揮韋彬在座位上相當平靜,他剛剛去和各位指揮官打了招呼。按照韋彬對左林右狸頻道的說法,三個月前他感覺團隊裡很多人只有50-60%的信心,而現在他能明顯更覺到大家的信心漲到了90%以上。
伴隨著春潮頌的歌聲,2020年春節聯歡晚上正式開始,整個辦公室內,所有人的目光都集中到了屏幕上面。
其實韋彬也不知道主持人口播的精確時間,他只知道因為疫情今年的春晚非常特殊,最後一次彩排後還是做了很多的調整,這必然會造成現場的很多變化,所以現在快手上預計的發紅包時間點是不固定的,必須得跟隨節目的進行及時的動態調整。
事實果然這樣,本來確定的8點14分的口播被推遲到了8點16分,第一個紅包發布時間也跟著調整。時間一到,幾乎是主持人口播開始的一瞬間,快手的各種數據一下子被迅速拉出一條陡峭的曲線。
在監控團隊之前的努力下,快手所有的數據此刻都被實時顯示在了各種監控屏幕上面,靠近指揮部附近的核心鏈路監控面板上數據快速變動。
這時候人群裡突然傳出了聲音「微信分享掛了」,聲音很快傳遍整個作戰辦公室,緊接著很多人都向辦公室中間部位集中。
這裡大家說的「微信分享掛了」指的是,原來用戶在快手搶到紅包以後,可以繼續向微信分享獲得更多紅包,而現在分享之後只有一片空白。
然而,韋彬並不慌亂,這個異常情況團隊已經事先考慮過。李偉博告訴左林右狸頻道,他們之前跟微信做過溝通,他們預估的量遠遠超過了這個數字,所以他們之前已經做好了預案,萬一微信分享量觸達QPS閾值,他們將會一方面限流,一方面將部分H5分享轉變成文字口令,這樣用戶就還是可以繼續分享搶紅包。
經受了第一輪紅包的衝擊,韋彬和大多數團隊成員一樣都已經心中有底,這一段的數據距離他們壓力測試的上限還有一些空間,他們現在期盼的已經不是系統穩定,而是希望更多的人進入快手參加活動,獲得更好的成績,紅包參與人數在第三輪到達了頂峰。
2020年快手在春晚的4小時內向全國人民發送紅包10億元,互動總量創紀錄達639億次,紅包站外分享次數創紀錄達5.9億次。
在各種傳統節日越來越沒有存在感的現代社會,春節可以算的上是唯一一個可以將全體中國人都調動起來的節日。一二線回到了三四線,北上廣融入了五環外。
快手實在選擇了一個好日子,它的價值觀是普惠,而這個世界上沒有一個節日比春節更普惠。
後來,左林右狸頻道問了眾人對春晚活動的感受和回憶,有人說「累」,有人說「極致」,有人說說「技術範」,也有人覺得這次活動只能打B+,因為數據沒有達到他們的最好預期。從客觀上來講,這次的春晚趕上了疫情,快手確實不走運。
但在談起對活動準備過程中對團隊戰鬥力和協作力印象的時候,很多人都說超出預期,不約而同的用了一個詞「驚喜」,挑戰當前,英雄亮劍,整個隊伍都跟著振奮起來,參與的每個人都充滿勇氣與鬥志。
在快手紅包提現頁上線捐助紅包給武漢的功能之後,脈脈的匿名區有其他網際網路公司的員工發帖,他們說快手反應很快,這件事做得非常漂亮,下面有快手員工跟帖,就是短短一句:「我就是參與這個開發的同學」,字不多,但是每一個字都充滿了成就感。
宿華在快手的內部信中提過,快手曾經的夢想是成就一款偉大的產品,而現在它更想成為一家偉大的公司。慢公司從來不是快手的選擇,偉大才是。
通往偉大的道路沒有捷徑,沒有必勝的秘籍,春晚紅包也不是什么九陰真經。這支團隊從來沒指望靠著春晚一下子就變得偉大,他們只是想通過一場酣暢淋漓的戰鬥告訴所有人:我要奔跑,我也必須奔跑。