距離辛丑牛年《春節(jié)聯(lián)歡晚會》倒計時 15 天,央視宣布:短視頻 App 抖音成為春晚獨家互動合作伙伴,將于除夕夜為全國人民發(fā)放 12 億紅包。
此次活動引發(fā)了累計 703 億次紅包互動,再度將抖音及其背后的公司——字節(jié)跳動,推上了話題熱榜。
我們看見的是字節(jié)向全國人民遞出的滿意答卷,但其背后的故事更值得深挖。有人稱其是一場里程碑式的技術(shù)驗證,有人描述為一場穿越風(fēng)暴的修行……
今天,就讓我們一起,拉開春晚舞臺上這場“戰(zhàn)斗”的幕布,看一看這背后的故事。
序幕:挑戰(zhàn)來臨
“如果 2019 年讓我們做主場,以當(dāng)時的技術(shù)能力沒有十足把握。但今年,我們沒有任何猶豫接下了挑戰(zhàn)。”
2021 年 1 月 13 日,周三。字節(jié)一如既往的活動日??蛻舳素?fù)責(zé)人肖宇已處理完一天的工作,準(zhǔn)備和同事們?nèi)コ砸活D大餐。
“團建取消”,一條通知赫然出現(xiàn)在屏幕上,“所有人一起開個緊急會議!” 大家停下步伐,面面相覷,隱隱嗅到了戰(zhàn)場上的硝煙味道。
22 點,會議終于開始。原來是白天跟央視接觸的市場部同事來商討抖音要不要承包 2021 年春晚紅包項目,詢問技術(shù)側(cè)同事能否支持,如能支持第二天即敲定合同細(xì)節(jié)。
肖宇打開飛書日歷,劃到 2 月列表。11 號是除夕,距今不足 1 月。
其實,對字節(jié)來說,春晚紅包項目并不陌生。2019 年,百度以第一身份,抖音以第二身份共同參與了春晚紅包項目。
“如果那時我們做主場,以當(dāng)時的技術(shù)能力沒有十足的把握”。但這兩年,隨著字節(jié)人才梯隊和基礎(chǔ)設(shè)施的迅猛發(fā)展,“所以得知 2021 年要以第一身份做春晚紅包活動時,大家都是躍躍欲試的樣子”,肖宇回憶起那天開會的場景。
沒有猶豫,技術(shù)部門點頭了。
1 月 15 日,合作敲定。雖沒有對外正式公布,但項目的齒輪已急速轉(zhuǎn)動起來。
infoQ如此說,“春晚活動是百度、阿里、騰訊三家輪番坐莊的技術(shù)盛事,畢竟只有具備足夠的用戶體量,才可能有足夠的技術(shù)能力支撐起春晚級別的高并發(fā)流量。”去年快手和今年字節(jié)的出現(xiàn),無疑給這個流轉(zhuǎn)于三個互聯(lián)網(wǎng)大廠之間的年度“保留節(jié)目”注入了一股新鮮血液。
然而,相比于往年“前輩們”平均 50 天的籌備時間,字節(jié)今年只有 27 天,這樣極短的籌備周期此前從未發(fā)生。倒計時開始,如何才能完成如此艱巨的任務(wù)?
第一幕:發(fā)令槍響,啟程!
"感覺像是一直在準(zhǔn)備高考,突然文化課改成踢足球,踢的還是世界杯。"
中國互聯(lián)網(wǎng)圈有一句戲言:沒有中國人搞不垮的網(wǎng)站。春晚紅包活動即是一部記載互聯(lián)網(wǎng)公司宕機事故的編年史,再強的高并發(fā)能力在十幾億觀眾面前都顯得格外脆弱。曾經(jīng)參與過春晚項目的團隊笑稱,活動難度級別是“從爬泰山到登珠峰”。
2021 年預(yù)留的時間只有 27 天,應(yīng)對上更顯局促。
其實從 2020 年 10 月開始,抖音一直在準(zhǔn)備春節(jié)活動,毫無預(yù)兆地將活動主場搬上春晚,"感覺像是一直在準(zhǔn)備高考,突然文化課改成踢足球,踢得還是世界杯",肖宇笑著感嘆道,“雖然毫不猶豫地接下了春晚任務(wù),頭三天卻仍是感到心慌”。
項目初期,需要考慮的方向繁多,每一個環(huán)節(jié)都不可小覷。就像一艘海上巨輪,只要出現(xiàn)任何一道細(xì)小裂紋,都可能造成萬噸海水涌入的致命后果。因此,在活動準(zhǔn)備階段,工作脈絡(luò)梳理和明確核心里程碑節(jié)點有著提綱挈領(lǐng)的作用。
春晚活動項目組首先對核心鏈路、活動鏈路和常規(guī)鏈路進行梳理,全面覆蓋了項目涉及的各個方向,并按照優(yōu)先級由主到次梳理展開。根據(jù)春晚時間倒推,團隊確定了 9 個重要里程碑節(jié)點,其中包括:3 次壓力測試、1 次容災(zāi)演練、4 次劇本演練和 1 次實操。
一切已經(jīng)就緒,齒輪轉(zhuǎn)動到了最關(guān)鍵的楔合點,真正的難關(guān)逐漸浮現(xiàn)在字節(jié)人的眼前。
第二幕:十八次演練
"春晚的放大效應(yīng)不允許技術(shù)團隊有一丁點的僥幸心理。"
當(dāng)提及春晚紅包活動的技術(shù)難點時,UG 中臺負(fù)責(zé)人蘇彥坦言,技術(shù)場景其實并不復(fù)雜,核心是對峰值流量的預(yù)估、資源調(diào)度優(yōu)化及用戶體驗保障。
春晚紅包活動是一種超高并發(fā)場景,流量預(yù)估其實是一種權(quán)衡,如果預(yù)估過高,資源要求太大,則會浪費大量成本;如果預(yù)估過低,實際流量超出預(yù)期,系統(tǒng)可能過載甚至雪崩,影響用戶體驗和活動效果。
綜合容量評估平臺歷史數(shù)據(jù)和業(yè)務(wù)系統(tǒng)的壓測結(jié)果,技術(shù)團隊只用兩天時間就出具了常規(guī)增長、口播冷啟動、紅包活動等場景的流量預(yù)估。
互娛研發(fā)架構(gòu)負(fù)責(zé)人邢岫表示,春晚項目組自成立之時,就立下明確的戰(zhàn)略目標(biāo),首先就是要達(dá)到春晚活動應(yīng)有的體驗效果。預(yù)估工作給整個項目打底后,如何快速解決春晚流量洪峰的處理問題成為頭等大事。
技術(shù)團隊從流量治理、服務(wù)治理、研發(fā)效能等多角度入手,結(jié)合火山引擎云原生能力,給出了有字節(jié)特色的解決方案。流量治理和服務(wù)治理是保障用戶體驗的關(guān)鍵,研發(fā)效能是快速高質(zhì)量完成春晚活動技術(shù)工作的保障。
流量治理:融合線路、邊緣計算與全鏈路動態(tài)流量調(diào)度
春晚紅包活動要為用戶提供更好的體驗,其流量治理建設(shè)就要滿足高帶寬、低時延、自動容災(zāi)、快速恢復(fù)的特性。為此,字節(jié)基于端云配合的融合加速線路方案,通過快速驗證外部 CDN 服務(wù)鏈路能力,提供高效的動態(tài) CDN 加速和流量分配,與用戶設(shè)備、邊緣機房、核心機房聯(lián)合全鏈路動態(tài)流量調(diào)度,實現(xiàn)了對用戶體驗最優(yōu)的負(fù)載均衡與分級治理。
同時,在流量輸入側(cè)和處理側(cè)做出相應(yīng)努力,使得流量治理部分能夠支持 APP ID、接口、用戶 ID 等多維度的調(diào)度策略,實現(xiàn)流量合并、隔離等調(diào)度需求,可以達(dá)到十萬分之一級別的流量切換精度、數(shù)億級別在線客戶端配置管理、千萬級并發(fā)請求更新調(diào)度配置、3 分鐘配置更新 90%、24h 配置覆蓋率99.5%。
在春晚高并發(fā)大流量場景下,這種能力為局部容災(zāi)、整機房大規(guī)模容災(zāi)等場景預(yù)案提供了足夠的能力支撐,其具備的自動容災(zāi)能力能夠?qū)崿F(xiàn)故障場景對用戶的影響時間降至 1min 內(nèi),極大的降低了故障場景下的用戶體驗損失。
服務(wù)治理:ServiceMesh 與離在線資源統(tǒng)一調(diào)度系統(tǒng)
如果把流量治理的建設(shè)比喻為水流的快不快、順不順,服務(wù)治理建設(shè)則直接決定了水的流量和質(zhì)量。好的服務(wù)治理能力,需要能為業(yè)務(wù)提供最好的容災(zāi)和彈性?;鹕揭嫱ㄟ^ ServiceMesh 提供靈活的集群內(nèi)流量調(diào)度、負(fù)載均衡、過載控制與容災(zāi)能力,又通過離在線資源統(tǒng)一調(diào)度系統(tǒng)提供高度靈活的跨集群、跨冷熱彈性擴縮解決方案。
離線資源拆借方案使離線機器可在 5min 內(nèi)轉(zhuǎn)換成在線可用狀態(tài),在線混部出讓方案在資源整合上使用了單機維度的 QoS 管理和隔離手段,整合多集群已部署閑置資源,緩解任務(wù)冷啟動帶來的延時影響。僅針對春晚當(dāng)天大量短視頻投稿的碼率轉(zhuǎn)換和抽幀相關(guān)任務(wù),此方案就穩(wěn)定供應(yīng)了數(shù)十萬核心的算力。
研發(fā)效能:壓力測試、一站式觀測平臺與公共組件建設(shè)
高效的研發(fā)迭代依賴于出色的研發(fā)基礎(chǔ)設(shè)施建設(shè),字節(jié)全鏈路壓測平臺和一站式可觀測平臺,不僅提供了數(shù)據(jù)隔離能力,使得在不影響用戶體驗的前提下,能為壓測爭取更多的時間,也提供了軟硬件狀態(tài)實時監(jiān)控能力,為研發(fā)團隊迭代相關(guān)服務(wù)提供了有效的反饋信息,加快了問題發(fā)現(xiàn)-定位-解決的迭代效率。
此外,字節(jié)通過自研公共 RPC,將活動流量接入的關(guān)鍵性能和穩(wěn)定性問題集中解決和處理,并針對性地建設(shè)了一整套性能/穩(wěn)定性測試體系,深度模擬活動流量特點,針對大并發(fā),大包,重負(fù)載場景做了大量的測試和優(yōu)化,將所有可能出現(xiàn)的異常問題提前暴露和解決,高強度地保障了框架質(zhì)量??蚣艹休d的服務(wù)峰值 QPS 達(dá)到千萬級別(未統(tǒng)計物理機部署服務(wù)),線上無一例異常反饋。
即使具備充分的技術(shù)積累,春晚紅包活動對參與者而言,依然是一場穿越風(fēng)暴的修行。
前期演練過程中,一個意料之外的業(yè)務(wù)問題被所在團隊率先發(fā)現(xiàn)。隨著定位和測試的深入,整條業(yè)務(wù)鏈上下游的數(shù)據(jù)分析、服務(wù)端、前端、客戶端的同事一個又一個地被拉入“小黑屋”里,一次一次小流量實驗,一點一點對數(shù),一輪一輪分析,找數(shù)據(jù),找原因,補埋點,補監(jiān)控。等問題解決時,恍然已過 5 個小時。
各端負(fù)責(zé)人都表示,春晚的項目開發(fā)非??简瀭€人和團隊對細(xì)節(jié)的把控:“由于日常迭代頻繁,工作難以做到極致的細(xì)化,而春晚帶來的海嘯級別的用戶體量是一個放大鏡,放大曾經(jīng)工作中任何覺得不重要的問題。春晚的放大效應(yīng)不允許技術(shù)團隊有一丁點的僥幸心理。”從立項開始的每一天,團隊都以發(fā)現(xiàn)一個問題,定位一個問題,解決一個問題的踏實態(tài)度,支撐著高強度的春晚紅包活動迭代。
針對可能出現(xiàn)的突發(fā)問題,技術(shù)團隊制定了 16 個系統(tǒng)性的緊急預(yù)案,每個大預(yù)案進一步細(xì)致拆解,每一個子模塊又會有相對應(yīng)的幾十個預(yù)案。例如網(wǎng)絡(luò)掛掉,機房故障、局部過熱等問題,每個問題都出具應(yīng)對方案。這些應(yīng)急預(yù)案逐個演習(xí),盡最大可能保障春晚當(dāng)天的用戶體驗。
同時,為防止重蹈外部資源崩潰事故,字節(jié)和外部運營商保持充分聯(lián)絡(luò),建立良好的迭代和溝通機制。系統(tǒng)負(fù)責(zé)人施羽向我們透露,在本次春節(jié)活動期間,抖音團隊和外部資源進行了“定向溝通”以及非常極致的盤點,基于需求給供應(yīng)商做好分配。
為了在央視春晚順利發(fā)出紅包雨,讓全國人民體驗一個喜悅圓滿的好年,字節(jié)經(jīng)歷了 18 場技術(shù)預(yù)演,除了內(nèi)部的用戶測試之外,也借助了衛(wèi)視春晚的小年夜活動進行實操。
“隨著一次次演練,緊張心態(tài)已經(jīng)好多了。以我們的技術(shù)實力來完成一個相對確定的事情沒什么問題。但春晚上線前兩天又開始慌了,特別擔(dān)心漏掉什么。就像一個快上考場的高中生,感覺好像完全復(fù)習(xí)好了,但生怕有遺漏的知識點。"肖宇這樣形容春晚前夕忐忑心情。
第三幕:未能登場的黑天鵝
“抖音作為一款國民級應(yīng)用,我們希望以追求極致的態(tài)度,讓用戶即便在復(fù)雜網(wǎng)絡(luò)環(huán)境下都能有一個較好的玩法體驗,尤其是在流量峰值期間。”
轉(zhuǎn)眼間,2 月 11 日除夕夜大考來臨。
盡管已演練了 18 次,春晚流量的不穩(wěn)定性依舊是一把懸在所有人頭頂?shù)膭Α?/p>
20 點 30 分,隨著第 1 波紅包雨指令的順利發(fā)出,緊張氣氛逐漸平復(fù)下來。
雖未言語,但在場的字節(jié)人心中都有一個默契,他們知道:這事成了。
0 點 10 分,第5波紅包雨隨著新年鐘聲的余韻和璀璨焰火,在千家萬戶的手機屏幕上閃爍,這場屬于字節(jié)的演出拉下了終場帷幕。
“除夕,從家里換到春晚值班現(xiàn)場,這種氛圍很難得。幾百位同學(xué)坐在一起看春晚的同時,又各自監(jiān)控著實時數(shù)據(jù),自己切身地深入到春晚項目之中,給全國幾億用戶提供紅包雨活動,是很有自豪感和成就感的事情。”前端負(fù)責(zé)人李川東回憶著當(dāng)晚的心情,言語間透露著無法抑制的喜悅。
更令技術(shù)團隊欣慰的是,預(yù)估可能觸發(fā)的 16 個系統(tǒng)性問題一個都沒有出現(xiàn),黑天鵝事件均完美避免,抖音就這樣平淡地度過了一次又一次地流量沖擊,穩(wěn)穩(wěn)地進入新的一年。
“從大的視野來看,春晚活動的特性使得其穩(wěn)定性及可靠性的要求被放到一個非常高的優(yōu)先級,體驗保障在某種程度屬于盡量保證的定位。但抖音作為一款國民級應(yīng)用,我們希望以追求極致的態(tài)度,讓用戶即便在復(fù)雜網(wǎng)絡(luò)環(huán)境下都能有一個較好的玩法體驗,尤其是在流量峰值期間。”邢岫總結(jié)道。
那么,2019 年,字節(jié)尚無在春晚主場作戰(zhàn)的把握。兩年后的今天,抖音卻如此平靜地通過了曾絆倒往年春晚合作方的挑戰(zhàn)。是什么支撐了這場技術(shù)蛻變?
第四幕:字節(jié)如何跳動
“以字節(jié)現(xiàn)在的技術(shù)能力,我們本應(yīng)做到,甚至可以更快更好。”
當(dāng)問及春晚紅包活動為何能如此迅速而完美收場時,參與者達(dá)成了共識:組織模式和技術(shù)成長。
網(wǎng)狀合作模式
項目支撐團隊的組織結(jié)構(gòu),和 BP 的確立是整個推進工作進程、同步信息的關(guān)鍵基礎(chǔ)。確認(rèn)抖音接下春晚項目后,字節(jié)立刻集合了 20 余個團隊前來支持。但合作模式并非做自頂而下的項目拆解,并非給每個人布置固定任務(wù),而是設(shè)定統(tǒng)一目標(biāo),向下同步對齊,靠著各個團隊的主動性逐步推動目標(biāo)實現(xiàn)。
架構(gòu)負(fù)責(zé)人岳建梁將這種協(xié)作方式稱作“像一張網(wǎng)”。網(wǎng)狀的組織結(jié)構(gòu)連結(jié)著一個個團隊,每個連結(jié)點都有專門的負(fù)責(zé)人用以對接,任何事責(zé)都能收到明確的回應(yīng)。這是字節(jié)文化特征和組織模式的體現(xiàn)。
基礎(chǔ)設(shè)施優(yōu)化
技術(shù)團隊快速做出決策的信心,來源于字節(jié)對多種基礎(chǔ)能力建設(shè)的長期投入。
架構(gòu)負(fù)責(zé)人岳建梁透露,目前字節(jié)基礎(chǔ)架構(gòu)的規(guī)模性已不可同日而語,它給予了業(yè)務(wù)側(cè)更充分的靈活性和更大的發(fā)揮空間,這很關(guān)鍵,沒有這么大的規(guī)模,很多問題無法解決。
架構(gòu)的體系結(jié)構(gòu)也發(fā)生了決定性變化,各個機房進行了獨立的單元化構(gòu)建,有能力在不同機房之間對流量進行任意調(diào)配。
除此之外,現(xiàn)今的字節(jié)有著一系列的技術(shù)突破,如完善的存儲矩陣;計算能力上實現(xiàn)了離線和在線的混合部署;網(wǎng)絡(luò)層面獲得更多可控度,自建了 CDN、動態(tài)加速、HTTPDNS、流量調(diào)度能力;內(nèi)部服務(wù)治理和服務(wù)管理也更完善,具有各種容災(zāi)系統(tǒng),容災(zāi)演練系統(tǒng),Chaos 系統(tǒng),治理系統(tǒng),全方位支持業(yè)務(wù)活動的順利運行,表現(xiàn)出較強的性能和穩(wěn)定性。
值得一提的是,此次字節(jié)自研的客戶端動態(tài)引擎框架 Lynx 在春晚活動中表現(xiàn)尤為突出,極大縮減了客戶端發(fā)版成本,提升業(yè)務(wù)迭代效率,這也是 Lynx 第一次被應(yīng)用在大規(guī)?;顒又?。
以上這些,支撐著 2021 年的抖音更從容地應(yīng)對了春晚項目。
春晚紅包活動,對如今的字節(jié)來說,不是挑戰(zhàn), 更像是一次求證。
借由這場流量狂歡,字節(jié)驗證了自己的邊緣計算能力,自建的動態(tài)加速和 CDN 能力,以及在線大規(guī)模的混合部署和快速調(diào)度能力。
“其實我們沒有放大完成這件事的成就感,我們清楚成功的源頭是組織模式和越來越好的基礎(chǔ)設(shè)施。以字節(jié)現(xiàn)在的技術(shù)能力,我們本應(yīng)做到,甚至可以更快更好。”鄧影這樣說道。
尾聲:持續(xù)奔跑,用力浪漫
“持續(xù)探索,始終創(chuàng)業(yè)。”
“一直在追求給用戶更個性化的極致體驗。”提到春晚項目的遺憾,蘇彥認(rèn)為如果時間再充裕些,可以將玩法做得更有趣。
不難看出,字節(jié)這些年對基礎(chǔ)技術(shù)能力的持續(xù)投入已見效可觀,能夠支持更復(fù)雜的業(yè)務(wù)場景,應(yīng)對業(yè)務(wù)挑戰(zhàn)。同時結(jié)合自身發(fā)展特點,積極探索行業(yè)新技術(shù)在字節(jié)場景下的新應(yīng)用。
過往遺憾,皆為序章。
送別 2021 年春晚項目,字節(jié)將繼續(xù)上路。
“持續(xù)探索,始終創(chuàng)業(yè)”。
這里是故事的結(jié)束,也將是下個故事的開始。
注:文中對應(yīng)真人均已用化名處理。(作者:HaloTech瑤光棧)