晚会红包史可谓互联网公司宕机泣血史,再强的高并发能力在海内外超过10亿人的观看规模面前都变得这么脆弱。在互联网人的固有印象里,晚会活动是BAT三家轮番坐庄的技术盛会,虽然只有具备足够的用户体量,才可能有足够的技术能力支撑起晚会级别的高并发流量。明年春节,作为BAT以外第一家扛起晚会战旗的互联网公司,抖音在去年的晚会红包活动中,红包互动总数达到639亿次,创晚会史上最大的视频双击纪录,红包站外分享次数达到5.9亿次。春节前三天,面对严峻疫情,技术团队紧急开发,抖音在晚会红包活动提现环节上线“助力厦门”红包捐款功能。袁记短视频热门业务教程网

抖音是怎样打算这场“春晚红包”战役的?在筹办压力最大、最繁忙的晚会前一周,InfoQ记者在坐落广州上地东路的抖音总部专访了包括资源调度、基础设施构架、应用启动、客户端稳定性在内的多个部门技术负责人,还原出一个概貌。

1代号A1,抖音晚会交卷

中国互联网信息中心发布的《中国互联网络发展状况统计报告》显示,截止2018年12月末,中国网民规模达8.29亿,手机网民规模达8.17亿。联通互联网前所未有地普及,也缔造了世界互联网史上这些罕见的高并发流量场景:以双十二为代表的电商大促、春运放票时的12306系统,以及每年春节的晚会红包大战。

2020年晚会红包活动,是在中国互联网传统豪强BAT之后,第一次出现新兴脸孔,这家公司的名子是:抖音。

从1月24日晚8点到隔日中午,抖音共领取10万元现金红包,这个金额创下了晚会红包的新记录。在当初让陌陌抢鲜支付宝半个身位的2015年,陌陌发了5亿红包;2016年,支付宝发了8亿红包;2019年,百度发了9亿红包。

不仅10亿现金红包,抖音为此次晚会投入的还有集卡活动的1亿现金,以及支持当日晚会的10万台(其中包括2万台云端)服务器。

不仅真金白银的投入之外,人力上也是一场“豪赌”。InfoQ记者了解到,抖音晚会红包项目组特意在开始筹办时去找百度、阿里的朋友取经。“夸张点说,我们人力上比人家少了一个零。”

晚会红包项目在抖音内部的代号是A1,这个名子源自抖音在上海西二旗的总部楼座排布。抖音总部园区有ABCDEF共6栋办公楼,各个团队的工位分散在这6栋办公楼里,而在晚会红包项目确定之后,为了工作上的协同顺畅,整个项目攻坚组在A座开辟出了晚会战场,包括设计、研发、产品等成员都集聚在这儿。由于项目的参与度很广,出于严格的保密考虑,最终将晚会项目的代号定制A1,也契合了晚会红包这个项目的重要性。

2“从爬泰山到登珠峰”

罗振宇在2019的跨年讲演中曾提及:得到原先准备在晚会投放广告,并且被劝住了,由于有一条不成文的规定——要想晚会打广告,产品日活先过亿。缘由很简单,用户量过高,技术很难支撑起晚会级别的高并发流量。这也是近来几年,晚会红包项目被互联网豪强BAT三家垄断的诱因所在。

面对晚会的顶尖流量,虽然平常服务亿级日活用户的抖音,内部也将A1项目称之为“从爬泰山到登珠峰”。

这不是抖音与晚会的首次合作,但作为晚会红包活动的承接者,却是抖音的第一次。对晚会而言,这同样是一次全新的体验,由于晚会红包第一次走进了视频红包时代。在春节昨晚的卫视新春团拜年会上,抖音以“双击中国年”为红包互动主题,推出5轮抢红包活动,并采用“视频+双击”的全新玩法。不过玩法新代表着挑战也新,抖音奇特的短视频场景业务所带来的挑战在晚会流量面前愈发彰显。

首先,看下抖音这款App的属性。抖音App所代表的短视频社区类App,仍然有着用户黏性高、使用时间长的特点。每晚大规模的视频作品发布和浏览,还有实时的直播和用户互动,对流量而言上下行压力早已不小,而这种流量在抖音机房中都是共用的,这对晚会活动在构架设计方面提出了更多更高的要求。

其次,短视频+直播场景,相对以往晚会活动,对于资源尤其是CDN和带宽的占用率更大。在一定时间内,中国CDN总数和商用带宽资源的供应总数相对是稳定的,但视频红包场景下,数亿人同时打开动辄数十M的视频文件,还有数千万用户同时涌向晚会直播间,所须要的资源,比起以往晚会要超过几个量级。怎么预估晚会流量,设计技术方案减少压力?怎么精准估算须要采办的服务器、CDN、带宽资源?在春节全网资源吃紧的情况下,这是一大困局。

第三,活动策略与第三方沟通困局。去年的抖音晚会,不仅冲击3亿DAU的目标以外春节抖音双击特效图片,同样也有产品拉新的战略审视。2019年百度晚会击溃了包括AppStore、微信应用宝在内的各大主流应用市场,影响了百度的拉新目标。去年的抖音势必不愿重蹈后尘,但第三方应用市场,尤其是AppStore和陌陌,沟通愈发困难,却是木盆中那种不得不解决的弱项。

晚会红包立项,面对这场硬仗,如何整?

3万变不离其宗,却又不可同日而语

中国互联网圈有一句戏言:没有中国人搞不垮的网站。闻言诚不我欺,这个网民人数超过8亿的国度,在多年电商大促、秒杀场景、12306每年春运带来的技术大讨论的洗礼下,科技公司们应对高并发流量的能力迫近了软硬件性能的极限。

综观近来几年各大厂晚会红包活动,技术向的解决方案堪称万变不离其宗,无非是基础设施(服务器、CDN、带宽)的打算、内部构架的升级(核心链路升级、降级方案)等实现方法。说上去似乎很简单,但在极至的流量面前,难度却不可同日而语。

基础设施打算与构架升级

2019年百度晚会的服务器数目是10万台,其中有5万台服务器是从百度核心的“凤巢”广告系统下让渡而至。基于短视频业务对服务器等基础资源的更高要求来看,抖音为这次晚会活动打算的服务器数目不会高于百度。须要注意的是,服务器并不单纯是化学机组成,还有相当规模的云服务器,这又多出了跟各大云服务商沟通性能资源的问题。

短视频领域惯用的解决方案是将视频放在内容分发网路(CDN)上,既把视频文件输送到离用户近来的地方,又借助大量CDN节点分担用户观看的流量,这是业界成熟的解决方案。但在晚会视频红包的数亿瞬时流量面前,这个方案却是完全顶不住的。晚会主持人口播抢红包的时间节点,预估下来的视频浏览瞬时流量会超过中国的CDN带宽容量总和,抖音预估假如要保证晚会活动的体验,起码须要数百TB带宽资源。构架师们须要设计高效的资源预分发策略,并构建确切的带宽预测模型,基础设施建设人员也要做好合理的采办打算。

基础构架通常都是线性演化的,大的基础构架升级频度不会很高,每年也就是小修小补一下。但此次晚会活动,推动着抖音的构架超前升级了。

基础构架负责人向InfoQ记者这么介绍。他是一名老“抖音”,2015年就加入了公司,仍然负责基础构架的设计与实现。此次的晚会红包活动他参与了核心构架设计工作。

悉心设计核心链路

构架上第一个挑战是让用户顺利“进门”。

日常情况下,用户首次启动抖音App会有近百次与服务端的交互。可以想象在晚会活动开启时,数亿用户同时启动抖音App会带来如何的流量洪峰,倘若不做降级处理很可能直接撞入服务器,这是红包活动面临的一个挑战:怎么让用户可以顺利“进门”抢红包,而不是被宕机的服务器挡在门外。

为确保用户“进门”环节的应用启动平稳渡过,技术团队在保证主要功能不受影响的前提下,设计了合同降级、频率限制、过载保护、协议减肥、延迟打散、CDN兜底、业务逻辑优化等策略,促使系统可以承受亿级别QPS的流量冲击,通过5道“闸门”层层控制洪流,将发生“洪灾”的几率几乎降为0。

另外晚会的直播场景随时可能出现紧急状况,例如主持人口播红包时间随时可能调整。为了能在这样的紧急状态下,将核心指令下发到每位用户,抖音技术团队因此悉心设计了核心指令控制系统,一键式下发,最快可以做到一分钟之内将指令触达所有用户,做到有备无患。

登入注册面临平常数百倍挑战。

从以往晚会红包经验来看,登入注册页面是击穿服务器的又一道坎。登入注册好比是用户领到红包的锁匙,晚会当日必然有大量新用户注册并登入抖音App,抖音预估春节昨晚登入注册页面的挑战可能达到平常的数百倍。因此抖音打算了超平常登陆峰值数百倍的容量,在降低容量的同时,抖音也做了登陆流程梳理和简化。从顾客端到服务器总共做了几十项优化,为的就是让用户能“秒登”抖音App,领到红包。

抖音App登入量的爆发,对第三方服务也是巨大的挑战,例如三大营运商的一键登陆、短信网段以及腾讯三方授权就会遭到冲击。为了达到预期容量,三大营运商、微信团队分别和抖音登陆团队一起为晚会订制了服务。

抢红包作为活动核心,怎么顶住瞬时洪峰,精准发出10亿现金。

大部份用户就会在活动开始的顿时步入活动并开始抢红包,考虑到抖音庞大的用户在线数叠加上晚会口播带来的用户洪峰,这基本是一个极限流量。根据该流量进行设计除了须要特别高的资源成本,并且要求更高的系统复杂度和容错性。因此,抖音针对活动特点做了一定程度用户侧感知不到的打散削峰设计:技术和产品一起做了多项针对性设计和优化,既保证用户的实时参与感,又能确保服务端压力在可控范围内。

一轮红包只有10分钟左右,现场几乎没有任何修补调整的机会,团队只能把工夫花在设计实现上,针对各类异常做层层的保护和柔性降级,并通过一系列的故障演习来进行验证。发钱环节同样对系统要求极高,几十分钟内发出10亿现金,还不能有bug,构架上团队做了好多悉心设计,例如保证核心操作的幂等性、多维度预算控制、多种熔断检测、根据流量动态调度发钱速率等能力。

短视频领域常用的视频分发方案都是把视频放在CDN上,让CDN去扛流量。这没哪些毛病,但遇上晚会级别的流量,它就四肢都是毛病。

记者了解到,在全网CDN总容量有限的前提下,音视频技术团队设计了大规模资源预分发方案,将视频提早预缓存到顾客端、而非CDN上。针对怎么优化预分发资源覆盖率,怎样控制带宽使用量,怎样控制下载速率和实际保障用户体验,晚会当日视频素材发生变更怎样处理,内容泄漏风险怎么规避等挑战,做了一套完整的解决方案。同时针对可能出现的用户难以浏览视频的极端情况,也设计了一套降级方案:手动将视频转换为低分辨率或图片模式,做到用户侧弱感知或无感知,保障核心红包环节的用户体验。

春节前三天提现页面降低“助力厦门”红包资助功能,短时间内完成高速路上换引擎。

另外据抖音研制团队相关负责人告诉InfoQ记者,节日前期,新型冠状病毒脑炎疫情形势严峻,挑动着每一个人的心,正在打算晚会项目的抖音团队接洽然后决定在提现页面降低“助力厦门”的红包捐款功能,用户可以选择将红包金额捐款北京,抖音在此金额的基础上配捐10%,平台联合用户一起推动北京抵御疫情。确定上线该功能早已是春节前三天的晚上,留给开发的时间十分急迫,经过冒雨的开发测试,初四早晨6点该功能如期上线。

重保稳定性

按照墨菲定理,假定光纤被挖断的极端情况一定会发生,我们应当如何办?

这是抖音朋友在一次次演练中,预料的极端场景。即使这样的场景听上去有些“疯狂”,但为了保证晚会那一刻的绝对可靠,团队须要把所有异常和灾难处理都考虑进去。据了解,抖音晚会所有核心服务都设计了多机房容灾,在任何单机房或专线故障的时侯保证不影响活动。基本所有能想到的异常都有悉心设计降级方案,做到层层兜底,力求万无一失。

晚会所有预案都依赖于配置下发系统,它必须做到将配置低延后、高可靠地投递到每一个节点。

在服务端的优化方面,对整个上报链路的监控体系全面升级。抖音现有的服务上报链路是一个多维度、高复杂度的系统,服务的调用量级随着流量的上升可能呈倍数下降。核心思路是在上报过程中做压缩和降级,将不重要的数据做归并,将异常、高延后数据上报,减少系统压力。

配置下发系统也有一整套的监控、加固体系,核心思路是对配置做分级,在系统内多层下发,最终做到进程内缓存,每台化学机都有缓存,一旦出现故障,至少能领到一份上一次的数据。

假如晚会是大考,这么全链路压测就是模拟考。

全链路压测是应对高并发流量洪峰的“核装备”,所有服务的高并发能力都须要通过压力测试来确定和验证。春节活动前的多轮压测经历了从小到大,从单插口到单集群再到全链路的过程。全链路压测对整个团队来说,并不是简单的QPS下降,更多的是资源协调、风险把控、结果评估等综合方面的考验。其目的就是让晚会当日应当发生的流量,提早发生,而且验证系统在该情况下表现是否良好。一次一次的验证,一次一次的优化,最终确保晚会高并发能力万无一失。

在进行抢红包的全链路压测中,不但要验证系统的高并发能力,还要精确控制并发逻辑,保证红包分配策略正确。在好多场景下,全链路压测不但须要肩负高并发性能校准的职责,还要确认超高并发条件下功能是否符合预期。

顾客端优化优化再优化!

晚会活动流量是一把双刃剑,对于技术团队来说是一座珠峰,但对产品拉新而言,不啻于坐上了一艘快速升空的灰熊。对于顾客端团队的朋友们而言,怎样把安装包极限减肥以减少应用商店CDN压力,并提高用户下载安装速率、梳理出顾客端的降级方案、适配复杂的用户型号,也是一大困局。

经过一个多月的努力,团队通过资源压缩、转移到CDN、使用上云工具等十八般武艺,让顾客端的安装包减肥超过30M,启动时间减少了30%。做到了资源、图片的预下载覆盖率超过95%,提高了新用户的产品体验。

在系统里放一只“猴子”,可劲闹腾吧!

业界常说构架要做到高并发、高可用。高并发挺好理解,高可用却很难评判。到底哪些样的高可用设计是行之有效的呢?在此曾经,这是一种薛定谔的状态,只有真到出问题的时侯,就能得到验证。“准备工作再足,也未能完全模拟晚会的突发高流量,这意味着考验我们的机会只有一次。”抖音的做法是用混沌工程的理念做故障注入,核心思路是在包括单机、服务在内的所有服务器上随机注入不同级别的故障,去模拟部份机器高负载、高延后造成服务器宕机或半死不活的状态,进而监测高可用设计是否行之有效。

音视频的保障

互联网的光鲜艳丽似乎都在灯啤酒绿的城市之中,鲜为人知的是,中国农村网民的规模早已突破了2.25亿。在中国农村智能手机上网早已前所未有地普及,但千元型号仍是主流。据悉,不同地区互联网普及程度不一,网速快慢有别,山区和城市的讯号不可相提并论,不同型号在性能、屏幕码率等方面都存在大大小小的差别。同一个视频、直播间下,怎样让这种变量不一的网民都能享受到种种限制条件下的最佳体验疗效?

抖音音视频技术团队借助工程结合算法、数据驱动的理念,从联通端到服务端进行无死角的音视频体验优化。用户在任何地方用任何设备,都可以顺畅地拍摄、制作、上传视频。

这次晚会抖音红包的核心玩法是:五轮口播时刻双击一支45秒钟的视频,并发放红包。为了保证口播时刻每位用户都可以流畅地观看视频,抖音音视频技术部联合Y-tech实验室,将视频浏览与复杂的动效、音效渲染结合上去,把性能优化到极至:虽然在最高端的手机上,也才能在保证浏览视频零卡顿前提下,同时流畅的进行领红包特效互动。

据悉,在峰值流量时,把几十M大小的45秒视频分发给数亿用户也是不小的挑战。为了这一目标,抖音采用了智能视频压缩算法,对数十段视频内容做帧率提高和压制。

口播时刻浏览的视频素材取自数百位抖音用户的UGC素材,音质良莠不齐。为了保证每一帧的浏览疗效,须要人工辨识各类音质问题如模糊、块效应、偏色等,通过算法优化到主观最佳状态,最后针对不同的内容和场景复杂度,再输出尽可能小的视频文件。因此音视频团队配合内容团队不断更新素材,视频素材压缩和分发工作仍然持续到除夕前一晚。

最终,春节昨晚互动次数达到破纪录的639亿,单分钟视频浏览次数过亿。

据悉,抖音App对晚会也进行了全程直播。海量用户涌向活动页面等待红包期间,或则抢完红包回到主页后,大几率会步入直播间观看晚会节目。

ks便宜刷粉(春节抖音双击特效图片)

为了保障超高并发直播的稳定性和质量,直播团队做了大量工作。首先是讯号源,主力源采用卫视官方讯号,备用源从有线电视到卫星讯号打算了多路,甚至在职工家里都架设了备用讯号采集设备。各路讯号汇总到播控作战室,由一个专门团队负责重点保障,保证在任意讯号源故障时无缝切换到备播源。在直播分发方面,抖音调集了全网的一线CDN资源,通过大数据精准调度和质量检测,保障用最高质量的直播流覆盖全省乃至世界各个角落。

春节昨晚,抖音晚会直播间累计观看人次7.8亿,最高同时在线人数2524万。

沟通!沟通!沟通!

从2015年陌陌开始做晚会红包起,每年晚会的应用商店就会遭到海量下载恳求的冲击,出现不同程度的服务不可用,我们明年希望她们能否抗住压力。

应用市场是晚会活动的一扇房门,假如新安装用户在这一步卡住进不来,就不会有机会参与后续红包活动了。抖音去年有专门负责与第三方应用市场沟通的团队,力保应用商店不出问题。这并不是一件容易的事情,国外应用商店比较碎片化,安卓主要有华为、小米、OPPO、Vivo、魅族、腾讯应用宝等,再加上苹果AppStore,一共七家比较成规模的应用市场须要逐一沟通。

有的应用商店说:这有啥可打算的?基本打算不了。

打算不了也得打算,为了保住应用商店不挂,该团队挨家挨户地扫了一遍各大应用商店。这儿的问题在于,AppStore在国外没有太多商业化,还须要跨国协作难度比较大。

于是团队带着完整的方案一起去拜访了AppStore。晚会流量是哪些级别的?应用商店的困局在哪里?技术层面的后台构架是如何样的?几乎把应用商店在此次晚会活动面前要用到的技术全面盘点了一遍,而且将抖音自研的曲线拟合技术背后的数据和逻辑共享给了应用商店。

为了保住应用商店,抖音团队须要分资源(CDN、带宽),给人手(提供技术支持),给方案(讲清完整的活动逻辑)。

我们不是说应用商店点头了就放心了,而是要听到对接的技术部门真的接到需求了能够安心。

在公司内部,沟通同样不是一件简单的事儿。

启动优化环节的两位负责人,其中一位朋友刚入职抖音两周就被拉进了A1项目,另外一位则是抖音“老司机”。这个组合的关键工作之一是与各个业务线沟通,把设计好的降级方案落地下去,死保晚会活动的红包服务,把其他相对不重要的插口“全部杀死”。

这个组合在与各个业务线沟通的过程中遇见了好多磨难,但最开始的沟通问题却是出现在她们内部。这位“老司机“在专访的时侯笑着说:“最开始的时侯可烦他了,刚来啥都不懂还指赐教点。”随着项目的深入,二人信任度渐渐强化,项目团队产生了强悍的汇聚力:“胜则碰杯相庆,败则誓死相助”,二人相互扶植前进,在一个多月的时间里梳理完了业务线涉及启动的近100个插口,只留下了个位数的核心插口不做降级。

沟通方法可以有两种,一种是强势的一刀切,另一种是深入到业务上面去,友好沟通。其实前者施行上去更费力,但我们还是决定跟业务朋友耐心沟通。“钉子户”还是有的,最终我们是靠着更高层对齐了目标,推动了下去。

与业务方“斗智斗勇”,把近100个接头晕到只剩个位数,这是外界觉得不善沟通的技术人,沟通下来的成果。

4一些人的红包战,14亿人的新年

每年的晚会红包活动,都有各大互联网厂商旗下开发、产品、项目、设计人员们繁忙的身影。这个团队的规模不堪称不大,有的甚至机房值勤人员能够有500-1000人。但在14亿人的新年传统面前,这种人却又只是沧海一粟。

IT技术的价值在于,放大了个体的声音与价值,让每位渺小的人都能发出更大的声音,让那些万人规模的团队可以支撑十多亿人的高并发热情。晚会活动发展至今,其背后的技术实力、巧妙的解决方案早已不再是最重要的核心,这群相互扶植、一起攀越珠峰的人和她们背后的故事才是。

此次晚会红包大战开始前,我们对每一个接受专访的抖音技术专家都问了同一个问题:“你对此次晚会红包活动有多少信心?”受访者坦承,迎战晚会如同跟一群学霸一起打算中考一样剌激,可能一开始信心只有50%,随着打算越来越多,信心降低到70%以及降低到更多;到了复习最后一段时间春节抖音双击特效图片,认为该做的事儿、能做的事儿都做了,就差考试了。

尽管公测、公测能提早发觉一些问题,但晚会当夜高达数亿DAU的流量却不可能在前期完全模拟下来,这是一场只有一次机会的技术大考。对于每一个参与其中的技术人来说,所能做的就是守在笔记本上面,等待每一次流量尖峰的到来。

抖音交卷了,你呢?