距离辛丑牛年《春节联欢晚会》倒计时 15 天,央视宣布:短视频 App 抖音成为春晚独家互动合作伙伴,将于除夕夜为全国人民发放 12 亿红包。
此次活动引发了累计 703 亿次红包互动,再度将抖音及其背后的公司——字节跳动,推上了话题热榜。
我们看见的是字节向全国人民递出的满意答卷,但其背后的故事更值得深挖。有人称其是一场里程碑式的技术验证,有人描述为一场穿越风暴的修行……
今天,就让我们一起,拉开春晚舞台上这场“战斗”的幕布,看一看这背后的故事。
序幕:挑战来临
“如果 2019 年让我们做主场,以当时的技术能力没有十足把握。但今年,我们没有任何犹豫接下了挑战。”
2021 年 1 月 13 日,周三。字节一如既往的活动日。客户端负责人肖宇已处理完一天的工作,准备和同事们去吃一顿大餐。
“团建取消”,一条通知赫然出现在屏幕上,“所有人一起开个紧急会议!” 大家停下步伐,面面相觑,隐隐嗅到了战场上的硝烟味道。
22 点,会议终于开始。原来是白天跟央视接触的市场部同事来商讨抖音要不要承包 2021 年春晚红包项目,询问技术侧同事能否支持,如能支持第二天即敲定合同细节。
肖宇打开飞书日历,划到 2 月列表。11 号是除夕,距今不足 1 月。
其实,对字节来说,春晚红包项目并不陌生。2019 年,百度以第一身份,抖音以第二身份共同参与了春晚红包项目。
“如果那时我们做主场,以当时的技术能力没有十足的把握”。但这两年,随着字节人才梯队和基础设施的迅猛发展,“所以得知 2021 年要以第一身份做春晚红包活动时,大家都是跃跃欲试的样子”,肖宇回忆起那天开会的场景。
没有犹豫,技术部门点头了。
1 月 15 日,合作敲定。虽没有对外正式公布,但项目的齿轮已急速转动起来。
infoQ如此说,“春晚活动是百度、阿里、腾讯三家轮番坐庄的技术盛事,毕竟只有具备足够的用户体量,才可能有足够的技术能力支撑起春晚级别的高并发流量。”去年快手和今年字节的出现,无疑给这个流转于三个互联网大厂之间的年度“保留节目”注入了一股新鲜血液。
然而,相比于往年“前辈们”平均 50 天的筹备时间,字节今年只有 27 天,这样极短的筹备周期此前从未发生。倒计时开始,如何才能完成如此艰巨的任务?
第一幕:发令枪响,启程!
"感觉像是一直在准备高考,突然文化课改成踢足球,踢的还是世界杯。"
中国互联网圈有一句戏言:没有中国人搞不垮的网站。春晚红包活动即是一部记载互联网公司宕机事故的编年史,再强的高并发能力在十几亿观众面前都显得格外脆弱。曾经参与过春晚项目的团队笑称,活动难度级别是“从爬泰山到登珠峰”。
2021 年预留的时间只有 27 天,应对上更显局促。
其实从 2020 年 10 月开始,抖音一直在准备春节活动,毫无预兆地将活动主场搬上春晚,"感觉像是一直在准备高考,突然文化课改成踢足球,踢得还是世界杯",肖宇笑着感叹道,“虽然毫不犹豫地接下了春晚任务,头三天却仍是感到心慌”。
项目初期,需要考虑的方向繁多,每一个环节都不可小觑。就像一艘海上巨轮,只要出现任何一道细小裂纹,都可能造成万吨海水涌入的致命后果。因此,在活动准备阶段,工作脉络梳理和明确核心里程碑节点有着提纲挈领的作用。
春晚活动项目组首先对核心链路、活动链路和常规链路进行梳理,全面覆盖了项目涉及的各个方向,并按照优先级由主到次梳理展开。根据春晚时间倒推,团队确定了 9 个重要里程碑节点,其中包括:3 次压力测试、1 次容灾演练、4 次剧本演练和 1 次实操。
一切已经就绪,齿轮转动到了最关键的楔合点,真正的难关逐渐浮现在字节人的眼前。
第二幕:十八次演练
"春晚的放大效应不允许技术团队有一丁点的侥幸心理。"
当提及春晚红包活动的技术难点时,UG 中台负责人苏彦坦言,技术场景其实并不复杂,核心是对峰值流量的预估、资源调度优化及用户体验保障。
春晚红包活动是一种超高并发场景,流量预估其实是一种权衡,如果预估过高,资源要求太大,则会浪费大量成本;如果预估过低,实际流量超出预期,系统可能过载甚至雪崩,影响用户体验和活动效果。
综合容量评估平台历史数据和业务系统的压测结果,技术团队只用两天时间就出具了常规增长、口播冷启动、红包活动等场景的流量预估。
互娱研发架构负责人邢岫表示,春晚项目组自成立之时,就立下明确的战略目标,首先就是要达到春晚活动应有的体验效果。预估工作给整个项目打底后,如何快速解决春晚流量洪峰的处理问题成为头等大事。
技术团队从流量治理、服务治理、研发效能等多角度入手,结合火山引擎云原生能力,给出了有字节特色的解决方案。流量治理和服务治理是保障用户体验的关键,研发效能是快速高质量完成春晚活动技术工作的保障。
流量治理:融合线路、边缘计算与全链路动态流量调度
春晚红包活动要为用户提供更好的体验,其流量治理建设就要满足高带宽、低时延、自动容灾、快速恢复的特性。为此,字节基于端云配合的融合加速线路方案,通过快速验证外部 CDN 服务链路能力,提供高效的动态 CDN 加速和流量分配,与用户设备、边缘机房、核心机房联合全链路动态流量调度,实现了对用户体验最优的负载均衡与分级治理。
同时,在流量输入侧和处理侧做出相应努力,使得流量治理部分能够支持 APP ID、接口、用户 ID 等多维度的调度策略,实现流量合并、隔离等调度需求,可以达到十万分之一级别的流量切换精度、数亿级别在线客户端配置管理、千万级并发请求更新调度配置、3 分钟配置更新 90%、24h 配置覆盖率99.5%。
在春晚高并发大流量场景下,这种能力为局部容灾、整机房大规模容灾等场景预案提供了足够的能力支撑,其具备的自动容灾能力能够实现故障场景对用户的影响时间降至 1min 内,极大的降低了故障场景下的用户体验损失。
服务治理:ServiceMesh 与离在线资源统一调度系统
如果把流量治理的建设比喻为水流的快不快、顺不顺,服务治理建设则直接决定了水的流量和质量。好的服务治理能力,需要能为业务提供最好的容灾和弹性。火山引擎通过 ServiceMesh 提供灵活的集群内流量调度、负载均衡、过载控制与容灾能力,又通过离在线资源统一调度系统提供高度灵活的跨集群、跨冷热弹性扩缩解决方案。
离线资源拆借方案使离线机器可在 5min 内转换成在线可用状态,在线混部出让方案在资源整合上使用了单机维度的 QoS 管理和隔离手段,整合多集群已部署闲置资源,缓解任务冷启动带来的延时影响。仅针对春晚当天大量短视频投稿的码率转换和抽帧相关任务,此方案就稳定供应了数十万核心的算力。
研发效能:压力测试、一站式观测平台与公共组件建设
高效的研发迭代依赖于出色的研发基础设施建设,字节全链路压测平台和一站式可观测平台,不仅提供了数据隔离能力,使得在不影响用户体验的前提下,能为压测争取更多的时间,也提供了软硬件状态实时监控能力,为研发团队迭代相关服务提供了有效的反馈信息,加快了问题发现-定位-解决的迭代效率。
此外,字节通过自研公共 RPC,将活动流量接入的关键性能和稳定性问题集中解决和处理,并针对性地建设了一整套性能/稳定性测试体系,深度模拟活动流量特点,针对大并发,大包,重负载场景做了大量的测试和优化,将所有可能出现的异常问题提前暴露和解决,高强度地保障了框架质量。框架承载的服务峰值 QPS 达到千万级别(未统计物理机部署服务),线上无一例异常反馈。
即使具备充分的技术积累,春晚红包活动对参与者而言,依然是一场穿越风暴的修行。
前期演练过程中,一个意料之外的业务问题被所在团队率先发现。随着定位和测试的深入,整条业务链上下游的数据分析、服务端、前端、客户端的同事一个又一个地被拉入“小黑屋”里,一次一次小流量实验,一点一点对数,一轮一轮分析,找数据,找原因,补埋点,补监控。等问题解决时,恍然已过 5 个小时。
各端负责人都表示,春晚的项目开发非常考验个人和团队对细节的把控:“由于日常迭代频繁,工作难以做到极致的细化,而春晚带来的海啸级别的用户体量是一个放大镜,放大曾经工作中任何觉得不重要的问题。春晚的放大效应不允许技术团队有一丁点的侥幸心理。”从立项开始的每一天,团队都以发现一个问题,定位一个问题,解决一个问题的踏实态度,支撑着高强度的春晚红包活动迭代。
针对可能出现的突发问题,技术团队制定了 16 个系统性的紧急预案,每个大预案进一步细致拆解,每一个子模块又会有相对应的几十个预案。例如网络挂掉,机房故障、局部过热等问题,每个问题都出具应对方案。这些应急预案逐个演习,尽最大可能保障春晚当天的用户体验。
同时,为防止重蹈外部资源崩溃事故,字节和外部运营商保持充分联络,建立良好的迭代和沟通机制。系统负责人施羽向我们透露,在本次春节活动期间,抖音团队和外部资源进行了“定向沟通”以及非常极致的盘点,基于需求给供应商做好分配。
为了在央视春晚顺利发出红包雨,让全国人民体验一个喜悦圆满的好年,字节经历了 18 场技术预演,除了内部的用户测试之外,也借助了卫视春晚的小年夜活动进行实操。
“随着一次次演练,紧张心态已经好多了。以我们的技术实力来完成一个相对确定的事情没什么问题。但春晚上线前两天又开始慌了,特别担心漏掉什么。就像一个快上考场的高中生,感觉好像完全复习好了,但生怕有遗漏的知识点。"肖宇这样形容春晚前夕忐忑心情。
第三幕:未能登场的黑天鹅
“抖音作为一款国民级应用,我们希望以追求极致的态度,让用户即便在复杂网络环境下都能有一个较好的玩法体验,尤其是在流量峰值期间。”
转眼间,2 月 11 日除夕夜大考来临。
尽管已演练了 18 次,春晚流量的不稳定性依旧是一把悬在所有人头顶的剑。
20 点 30 分,随着第 1 波红包雨指令的顺利发出,紧张气氛逐渐平复下来。
虽未言语,但在场的字节人心中都有一个默契,他们知道:这事成了。
0 点 10 分,第5波红包雨随着新年钟声的余韵和璀璨焰火,在千家万户的手机屏幕上闪烁,这场属于字节的演出拉下了终场帷幕。
“除夕,从家里换到春晚值班现场,这种氛围很难得。几百位同学坐在一起看春晚的同时,又各自监控着实时数据,自己切身地深入到春晚项目之中,给全国几亿用户提供红包雨活动,是很有自豪感和成就感的事情。”前端负责人李川东回忆着当晚的心情,言语间透露着无法抑制的喜悦。
更令技术团队欣慰的是,预估可能触发的 16 个系统性问题一个都没有出现,黑天鹅事件均完美避免,抖音就这样平淡地度过了一次又一次地流量冲击,稳稳地进入新的一年。
“从大的视野来看,春晚活动的特性使得其稳定性及可靠性的要求被放到一个非常高的优先级,体验保障在某种程度属于尽量保证的定位。但抖音作为一款国民级应用,我们希望以追求极致的态度,让用户即便在复杂网络环境下都能有一个较好的玩法体验,尤其是在流量峰值期间。”邢岫总结道。
那么,2019 年,字节尚无在春晚主场作战的把握。两年后的今天,抖音却如此平静地通过了曾绊倒往年春晚合作方的挑战。是什么支撑了这场技术蜕变?
第四幕:字节如何跳动
“以字节现在的技术能力,我们本应做到,甚至可以更快更好。”
当问及春晚红包活动为何能如此迅速而完美收场时,参与者达成了共识:组织模式和技术成长。
网状合作模式
项目支撑团队的组织结构,和 BP 的确立是整个推进工作进程、同步信息的关键基础。确认抖音接下春晚项目后,字节立刻集合了 20 余个团队前来支持。但合作模式并非做自顶而下的项目拆解,并非给每个人布置固定任务,而是设定统一目标,向下同步对齐,靠着各个团队的主动性逐步推动目标实现。
架构负责人岳建梁将这种协作方式称作“像一张网”。网状的组织结构连结着一个个团队,每个连结点都有专门的负责人用以对接,任何事责都能收到明确的回应。这是字节文化特征和组织模式的体现。
基础设施优化
技术团队快速做出决策的信心,来源于字节对多种基础能力建设的长期投入。
架构负责人岳建梁透露,目前字节基础架构的规模性已不可同日而语,它给予了业务侧更充分的灵活性和更大的发挥空间,这很关键,没有这么大的规模,很多问题无法解决。
架构的体系结构也发生了决定性变化,各个机房进行了独立的单元化构建,有能力在不同机房之间对流量进行任意调配。
除此之外,现今的字节有着一系列的技术突破,如完善的存储矩阵;计算能力上实现了离线和在线的混合部署;网络层面获得更多可控度,自建了 CDN、动态加速、HTTPDNS、流量调度能力;内部服务治理和服务管理也更完善,具有各种容灾系统,容灾演练系统,Chaos 系统,治理系统,全方位支持业务活动的顺利运行,表现出较强的性能和稳定性。
值得一提的是,此次字节自研的客户端动态引擎框架 Lynx 在春晚活动中表现尤为突出,极大缩减了客户端发版成本,提升业务迭代效率,这也是 Lynx 第一次被应用在大规模活动中。
以上这些,支撑着 2021 年的抖音更从容地应对了春晚项目。
春晚红包活动,对如今的字节来说,不是挑战, 更像是一次求证。
借由这场流量狂欢,字节验证了自己的边缘计算能力,自建的动态加速和 CDN 能力,以及在线大规模的混合部署和快速调度能力。
“其实我们没有放大完成这件事的成就感,我们清楚成功的源头是组织模式和越来越好的基础设施。以字节现在的技术能力,我们本应做到,甚至可以更快更好。”邓影这样说道。
尾声:持续奔跑,用力浪漫
“持续,始终创业。”
“一直在追求给用户更个性化的极致体验。”提到春晚项目的遗憾,苏彦认为如果时间再充裕些,可以将玩法做得更有趣。
不难看出,字节这些年对基础技术能力的持续投入已见效可观,能够支持更复杂的业务场景,应对业务挑战。同时结合自身发展特点,积极行业新技术在字节场景下的新应用。
过往遗憾,皆为序章。
送别 2021 年春晚项目,字节将继续上路。
“持续,始终创业”。
这里是故事的结束,也将是下个故事的开始。
注:文中对应真人均已用化名处理。(作者:HaloTech瑶光栈)