抖音 27 天戰期:春晚紅包背後的技術大考

本文爲受權轉載內容,轉載自公衆號「HaloTech 瑤光棧」,做者 HaloTech。前端


不少人會侷限將來的眼光,
卻忘記了回望過去的經驗。

距離辛丑牛年《春節聯歡晚會》倒計時 15 天,央視宣佈:短視頻 App 抖音成爲春晚獨家互動合做夥伴,將於除夕夜爲全國人民發放 12 億紅包。segmentfault

這次活動引起了累計 703 億次紅包互動,再度將抖音及其背後的公司——字節跳動,推上了話題熱榜。網絡

咱們看見的是字節向全國人民遞出的滿意答卷,但其背後的故事更值得深挖。有人稱其是一場里程碑式的技術驗證,有人描述爲一場穿越風暴的修行……架構

今天,就讓咱們一塊兒,拉開春晚舞臺上這場「戰鬥」的幕布,看一看這背後的故事。併發

image.png

序幕:挑戰來臨負載均衡

「若是 2019 年讓咱們作主場,以當時的技術能力沒有十足把握。但今年,咱們沒有任何猶豫接下了挑戰。」

2021 年 1 月 13 日,週三。字節一如既往的活動日。客戶端負責人肖宇已處理完一天的工做,準備和同事們去吃一頓大餐。框架

「團建取消」,一條通知赫然出如今屏幕上,「全部人一塊兒開個緊急會議!」 你們停下步伐,面面相覷,隱隱嗅到了戰場上的硝煙味道。高併發

22 點,會議終於開始。原來是白天跟央視接觸的市場部同事來商討抖音要不要承包 2021 年春晚紅包項目,詢問技術側同事可否支持,如能支持次日即敲定合同細節。性能

肖宇打開飛書日曆,劃到 2 月列表。11 號是除夕,距今不足 1 月。測試

其實,對字節來講,春晚紅包項目並不陌生。2019 年,百度以第一身份,抖音以第二身份共同參與了春晚紅包項目。

「若是那時咱們作主場,以當時的技術能力沒有十足的把握」。但這兩年,隨着字節人才梯隊和基礎設施的迅猛發展,「因此得知 2021 年要以第一身份作春晚紅包活動時,你們都是躍躍欲試的樣子」,肖宇回憶起那天開會的場景。

沒有猶豫,技術部門點頭了。

1 月 15 日,合做敲定。雖沒有對外正式公佈,但項目的齒輪已急速轉動起來。

infoQ如此說,「春晚活動是百度、阿里、騰訊三家輪番坐莊的技術盛事,畢竟只有具有足夠的用戶體量,纔可能有足夠的技術能力支撐起春晚級別的高併發流量。」去年快手和今年字節的出現,無疑給這個流轉於三個互聯網大廠之間的年度「保留節目」注入了一股新鮮血液。

然而,相比於往年「前輩們」平均 50 天的籌備時間,字節今年只有 27 天,這樣極短的籌備週期此前從未發生。倒計時開始,如何才能完成如此艱鉅的任務?

image.png

第一幕:發令槍響,啓程!

"感受像是一直在準備高考,忽然文化課改爲踢足球,踢的仍是世界盃。"

中國互聯網圈有一句戲言:沒有中國人搞不垮的網站。春晚紅包活動便是一部記載互聯網公司宕機事故的編年史,再強的高併發能力在十幾億觀衆面前都顯得格外脆弱。曾經參與過春晚項目的團隊笑稱,活動難度級別是「從爬泰山到登珠峯」。

2021 年預留的時間只有 27 天,應對上更顯侷促。

其實從 2020 年 10 月開始,抖音一直在準備春節活動,毫無預兆地將活動主場搬上春晚,"感受像是一直在準備高考,忽然文化課改爲踢足球,踢得仍是世界盃",肖宇笑着感嘆道,「雖然絕不猶豫地接下了春晚任務,頭三天卻還是感到心慌」。

image.png

項目初期,須要考慮的方向繁多,每個環節都不可小覷。就像一艘海上巨輪,只要出現任何一道細小裂紋,均可能形成萬噸海水涌入的致命後果。所以,在活動準備階段,工做脈絡梳理和明確核內心程碑節點有着提綱挈領的做用。

春晚活動項目組首先對核心鏈路、活動鏈路和常規鏈路進行梳理,全面覆蓋了項目涉及的各個方向,並按照優先級由主到次梳理展開。根據春晚時間倒推,團隊肯定了 9 個重要里程碑節點,其中包括:3 次壓力測試、1 次容災演練、4 次劇本演練和 1 次實操

一切已經就緒,齒輪轉動到了最關鍵的楔合點,真正的難關逐漸浮如今字節人的眼前。

第二幕:十八次演練

"春晚的放大效應不容許技術團隊有一丁點的僥倖心理。"

當說起春晚紅包活動的技術難點時,UG 中臺負責人蘇彥坦言,技術場景其實並不複雜,核心是對峯值流量的預估、資源調度優化及用戶體驗保障。

春晚紅包活動是一種超高併發場景,流量預估實際上是一種權衡,若是預估太高,資源要求太大,則會浪費大量成本;若是預估太低,實際流量超出預期,系統可能過載甚至雪崩,影響用戶體驗和活動效果。

綜合容量評估平臺歷史數據和業務系統的壓測結果,技術團隊只用兩天時間就出具了常規增加、口播冷啓動、紅包活動等場景的流量預估。

互娛研發架構負責人邢岫表示,春晚項目組自成立之時,就立下明確的戰略目標,首先就是要達到春晚活動應有的體驗效果。預估工做給整個項目打底後,如何快速解決春晚流量洪峯的處理問題成爲頭等大事。

技術團隊從流量治理、服務治理、研發效能等多角度入手,結合火山引擎雲原生能力,給出了有字節特點的解決方案。流量治理和服務治理是保障用戶體驗的關鍵,研發效能是快速高質量完成春晚活動技術工做的保障。

流量治理:融合線路、邊緣計算與全鏈路動態流量調度

春晚紅包活動要爲用戶提供更好的體驗,其流量治理建設就要知足高帶寬、低時延、自動容災、快速恢復的特性。爲此,字節基於端雲配合的融合加速線路方案,經過快速驗證外部 CDN 服務鏈路能力,提供高效的動態 CDN 加速和流量分配,與用戶設備、邊緣機房、核心機房聯合全鏈路動態流量調度,實現了對用戶體驗最優的負載均衡與分級治理。

同時,在流量輸入側和處理側作出相應努力,使得流量治理部分可以支持 APP ID、接口、用戶 ID 等多維度的調度策略,實現流量合併、隔離等調度需求,能夠達到十萬分之一級別的流量切換精度、數億級別在線客戶端配置管理、千萬級併發請求更新調度配置、3 分鐘配置更新 90%、24h 配置覆蓋率99.5%。

在春晚高併發大流量場景下,這種能力爲局部容災、整機房大規模容災等場景預案提供了足夠的能力支撐,其具有的自動容災能力可以實現故障場景對用戶的影響時間降至 1min 內,極大的下降了故障場景下的用戶體驗損失。

服務治理:ServiceMesh 與離在線資源統一調度系統

若是把流量治理的建設比喻爲水流的快不快、順不順,服務治理建設則直接決定了水的流量和質量。好的服務治理能力,須要能爲業務提供最好的容災和彈性。火山引擎經過 ServiceMesh 提供靈活的集羣內流量調度、負載均衡、過載控制與容災能力,又經過離在線資源統一調度系統提供高度靈活的跨集羣、跨冷熱彈性擴縮解決方案。

離線資源拆借方案使離線機器可在 5min 內轉換成在線可用狀態,在線混部出讓方案在資源整合上使用了單機維度的 QoS 管理和隔離手段,整合多集羣已部署閒置資源,緩解任務冷啓動帶來的延時影響。僅針對春晚當天大量短視頻投稿的碼率轉換和抽幀相關任務,此方案就穩定供應了數十萬核心的算力。

研發效能:壓力測試、一站式觀測平臺與公共組件建設

高效的研發迭代依賴於出色的研發基礎設施建設,字節全鏈路壓測平臺和一站式可觀測平臺,不只提供了數據隔離能力,使得在不影響用戶體驗的前提下,能爲壓測爭取更多的時間,也提供了軟硬件狀態實時監控能力,爲研發團隊迭代相關服務提供了有效的反饋信息,加快了問題發現-定位-解決的迭代效率。

此外,字節經過自研公共 RPC,將活動流量接入的關鍵性能和穩定性問題集中解決和處理,並針對性地建設了一整套性能/穩定性測試體系,深度模擬活動流量特色,針對大併發,大包,重負載場景作了大量的測試和優化,將全部可能出現的異常問題提早暴露和解決,高強度地保障了框架質量。框架承載的服務峯值 QPS 達到千萬級別(未統計物理機部署服務),線上無一例異常反饋。

image.png

即便具有充分的技術積累,春晚紅包活動對參與者而言,依然是一場穿越風暴的修行。

前期演練過程當中,一個意料以外的業務問題被所在團隊率先發現。隨着定位和測試的深刻,整條業務鏈上下游的數據分析、服務端、前端、客戶端的同事一個又一個地被拉入「小黑屋」裏,一次一次小流量實驗,一點一點對數,一輪一輪分析,找數據,找緣由,補埋點,補監控。等問題解決時,恍然已過 5 個小時。

各端負責人都表示,春晚的項目開發很是考驗我的和團隊對細節的把控:「因爲平常迭代頻繁,工做難以作到極致的細化,而春晚帶來的海嘯級別的用戶體量是一個放大鏡,放大曾經工做中任何以爲不重要的問題。春晚的放大效應不容許技術團隊有一丁點的僥倖心理。」從立項開始的每一天,團隊都以發現一個問題,定位一個問題,解決一個問題的踏實態度,支撐着高強度的春晚紅包活動迭代。

針對可能出現的突發問題,技術團隊制定了 16 個系統性的緊急預案,每一個大預案進一步細緻拆解,每個子模塊又會有相對應的幾十個預案。例如網絡掛掉,機房故障、局部過熱等問題,每一個問題都出具應對方案。這些應急預案逐個演習,盡最大可能保障春晚當天的用戶體驗。

同時,爲防止重蹈外部資源崩潰事故,字節和外部運營商保持充分聯絡,創建良好的迭代和溝通機制。系統負責人施羽向咱們透露,在本次春節活動期間,抖音團隊和外部資源進行了「定向溝通」以及很是極致的盤點,基於需求給供應商作好分配。

爲了在央視春晚順利發出紅包雨,讓全國人民體驗一個喜悅圓滿的好年,字節經歷了 18 場技術預演,除了內部的用戶測試以外,也藉助了衛視春晚的小年夜活動進行實操。

「隨着一次次演練,緊張心態已經好多了。以咱們的技術實力來完成一個相對肯定的事情沒什麼問題。但春晚上線前兩天又開始慌了,特別擔憂漏掉什麼。就像一個快上考場的高中生,感受好像徹底複習好了,但生怕有遺漏的知識點。"肖宇這樣形容春晚前夕忐忑心情。

image.png

第三幕:未能登場的黑天鵝

「抖音做爲一款國民級應用,咱們但願以追求極致的態度,讓用戶即使在複雜網絡環境下都能有一個較好的玩法體驗,尤爲是在流量峯值期間。」

轉眼間,2 月 11 日除夕夜大考來臨。

儘管已演練了 18 次,春晚流量的不穩定性依舊是一把懸在全部人頭頂的劍。

20 點 30 分,隨着第 1 波紅包雨指令的順利發出,緊張氣氛逐漸平復下來。

雖未言語,但在場的字節人心中都有一個默契,他們知道:這事成了。

image.png

0 點 10 分,第5波紅包雨隨着新年鐘聲的餘韻和璀璨焰火,在千家萬戶的手機屏幕上閃爍,這場屬於字節的演出拉下了終場帷幕。

「除夕,從家裏換到春晚值班現場,這種氛圍很可貴。幾百位同窗坐在一塊兒看春晚的同時,又各自監控着實時數據,本身切身地深刻到春晚項目之中,給全國幾億用戶提供紅包雨活動,是頗有自豪感和成就感的事情。」前端負責人李川東回憶着當晚的心情,言語間透露着沒法抑制的喜悅。

image.png

更令技術團隊欣慰的是,預估可能觸發的 16 個系統性問題一個都沒有出現,黑天鵝事件均完美避免,抖音就這樣平淡地度過了一次又一次地流量衝擊,穩穩地進入新的一年。

「從大的視野來看,春晚活動的特性使得其穩定性及可靠性的要求被放到一個很是高的優先級,體驗保障在某種程度屬於儘可能保證的定位。但抖音做爲一款國民級應用,咱們但願以追求極致的態度,讓用戶即使在複雜網絡環境下都能有一個較好的玩法體驗,尤爲是在流量峯值期間。」邢岫總結道。

那麼,2019 年,字節尚無在春晚主場做戰的把握。兩年後的今天,抖音卻如此平靜地經過了曾絆倒往年春晚合做方的挑戰。是什麼支撐了這場技術蛻變?

第四幕:字節如何跳動

「以字節如今的技術能力,咱們本應作到,甚至能夠更快更好。」

當問及春晚紅包活動爲什麼能如此迅速而完美收場時,參與者達成了共識:組織模式和技術成長。

網狀合做模式

項目支撐團隊的組織結構,和 BP 的確立是整個推動工做進程、同步信息的關鍵基礎。確認抖音接下春晚項目後,字節馬上集合了 20 餘個團隊前來支持。但合做模式並不是作自頂而下的項目拆解,並不是給每一個人佈置固定任務,而是設定統一目標,向下同步對齊,靠着各個團隊的主動性逐步推進目標實現。

架構負責人嶽建梁將這種協做方式稱做「像一張網」。網狀的組織結構連結着一個個團隊,每一個連結點都有專門的負責人用以對接,任何事責都能收到明確的迴應。這是字節文化特徵和組織模式的體現。

image.png

基礎設施優化

技術團隊快速作出決策的信心,來源於字節對多種基礎能力建設的長期投入。

架構負責人嶽建梁透露,目前字節基礎架構的規模性已不可同日而語,它給予了業務側更充分的靈活性和更大的發揮空間,這很關鍵,沒有這麼大的規模,不少問題沒法解決。

架構的體系結構也發生了決定性變化,各個機房進行了獨立的單元化構建,有能力在不一樣機房之間對流量進行任意調配。

除此以外,現今的字節有着一系列的技術突破,如完善的存儲矩陣;計算能力上實現了離線和在線的混合部署;網絡層面得到更多可控度,自建了 CDN、動態加速、HTTPDNS、流量調度能力;內部服務治理和服務管理也更完善,具備各類容災系統,容災演練系統,Chaos 系統,治理系統,全方位支持業務活動的順利運行,表現出較強的性能和穩定性。

值得一提的是,這次字節自研的客戶端動態引擎框架 Lynx 在春晚活動中表現尤其突出,極大縮減了客戶端發版成本,提高業務迭代效率,這也是 Lynx 第一次被應用在大規模活動中。

以上這些,支撐着 2021 年的抖音更從容地應對了春晚項目。

春晚紅包活動,對現在的字節來講,不是挑戰, 更像是一次求證。

藉由這場流量狂歡,字節驗證了本身的邊緣計算能力,自建的動態加速和 CDN 能力,以及在線大規模的混合部署和快速調度能力。

「其實咱們沒有放大完成這件事的成就感,咱們清楚成功的源頭是組織模式和愈來愈好的基礎設施。以字節如今的技術能力,咱們本應作到,甚至能夠更快更好。」鄧影這樣說道。

image.png

尾聲:持續奔跑,用力浪漫

「持續探索,始終創業。」

「一直在追求給用戶更個性化的極致體驗。」提到春晚項目的遺憾,蘇彥認爲若是時間再充裕些,能夠將玩法作得更有趣。

不難看出,字節這些年對基礎技術能力的持續投入已見效可觀,可以支持更復雜的業務場景,應對業務挑戰。同時結合自身發展特色,積極探索行業新技術在字節場景下的新應用。

過往遺憾,皆爲序章。

送別 2021 年春晚項目,字節將繼續上路。

「持續探索,始終創業」。

這裏是故事的結束,也將是下個故事的開始。

注:文中對應真人均已用化名處理。

segmentfault思否

相關文章
相關標籤/搜索