除夕夜,是全国人民阖家团圆的日子,也是鹅厂这帮技术人最紧张的时刻——一年一度的春节重保。
在这辞旧迎新的重要节点,全球十多亿用户通过微信和QQ拜年、发红包,在朋友圈、QQ空间分享心情,通过微信视频号、腾讯视频等观看春晚直播。
这些“新年俗”带来的是秒级内增长几十倍甚至数百倍的流量洪峰,就像传说中每年如约而至的“年兽”,稍有不慎,鹅厂系统就有被流量打崩的风险。
今年是腾讯自研业务全面上云之后的首个春保,相比往年,不仅顺利完成了护航任务,而且效率更高、质量更好、成本更低。
究其原因,这与腾讯自研业务全面上云、云原生技术的大规模应用,以及多部门的统一协调密不可分。
百T流量,“云”中调度
对于很多人来说,“看春晚”是除夕必做的事情。
无论是电视、电脑还是手机,春晚直播能够做到高清、实时、顺畅,都与直播平台与直播技术提供方的技术保障密不可分。直播保障也是鹅厂技术团队每年春保的重要任务之一。
如今,越来越多的人选择通过微信视频号看春晚。加上今年竖屏春晚玩法升级,通过微信视频号竖屏看春晚的用户达到了1.9亿,相比去年1.2亿的直播观看人数有了大幅增长。
据测算,全网观看直播的流量峰值在除夕夜达到近百T。微信视频号、腾讯视频等作为春晚的主要直播平台,为应对瞬间的流量高峰,对网络速度和稳定性提出极高要求。
全面上云之后,不管是微信视频号、腾讯视频等腾讯产品,还是腾讯云支持的央视频等外部客户,海量访问流量都合并跑在腾讯云直播平台上。
相比起一条条小路各自设立红绿灯和缓冲带,这个统一的调度系统更为高效,大大提升了整体的资源利用率,也进一步降低了成本。平台打造了完善的大盘监测系统,可以按秒级分析直播流的卡顿率、延迟情况与画质清晰度等指标。
特别是在春晚精彩的抽奖环节、以及沈腾小品播出时段,面对陡然拉升的流量冲击,腾讯云直播平台建立了智能化的调控方案。
其中,腾讯云直播的极速高清能力,借助AI自动适配网络情况,在网络不佳的时候降低直播码率。CDN 可通过智能负载均衡系统,将用户的直播访问定位至最佳节点,避开网络拥塞,降低源站压力。腾讯云自研新一代 P2P 技术,则更好地利用了整体网络闲置带宽,进一步降低 CDN 网络的压力。
存储有他,稳了
作为疫情防控进入新阶段后的首个春节,节日氛围分外浓烈。“团圆”来之不易,短暂的相聚让数亿用户更加愿意在朋友圈借助图片和视频分享喜悦之情,传递久违的年味儿。
相对应的,春节期间,数据的上传下载量也远超预期,除夕峰值达到平常均值的10倍以上。从技术层面来说,当微信用户给朋友发图片、视频,或者发表朋友圈、抢红包的时候,不管是发出还是收到内容,背后都是腾讯存储系统的一次读写。
过去,微信核心模块使用的是 TFS 存储架构。这种架构虽然过去支撑不少腾讯产品打赢了“海量之战”,但由于存储集群较小,无法充分调动不同集群间的闲置资源,需要储备大量资源用于故障恢复和应对突发。
全面上云后,微信所用的对象存储 COS,首次全面从TFS存储引擎切换到最新的自研 YottaStore 架构。基于新一代存储引擎 Yottastore,无论是存储规模,还是 IO 能力都有比较大的提升:
作为一个云原生的数据存储系统,YottaStore 的一个集群可以管理上千万台服务器,集群规模大了,集群内的 IO 资源自然水涨船高。YottaStore 可以充分调动集群内所有存储节点 IO 能力,在春节视频和图片这种高峰值的上传下载场景中,能够有效节省存储资源,实现整体的降本增效。
同时,腾讯云对象存储 COS 结合自研业务的特点,充分发挥 YottaStore 引擎的优势,提供了智能分层、深度归档等存储能力,在保障用户体验的前提下大大降低了存储成本。
从“月”变为“天”
往年国庆一过,春保技术团队的气氛就开始紧张起来,收集业务需求,评估所需资源,进行机器采买和资源建设、系统扩容,加上必要的单机和全链路压测,技术团队的铺排容灾和柔性演习等,一般都需要持续好几个月时间。
去年腾讯全面上云之后,最直接的一个变化就是春保从一个需要严阵以待的大项目,变成了一份“寻常工作”。
比如,在资源准备阶段,由于业务的资源由物理服务器变为 CVM 虚拟机,这让资源准备周期大幅缩短,过去至少需要1个月时间申请采购、生产虚拟机,现在只需1周就能完成。
同时,在运维效率上,借助腾讯云容器服务 TKE,应用的扩容也变得更加弹性,同样扩容100万核的资源并部署业务完成上线,时间从2周缩短到2天以内。
为了充分利用云原生的特性,去年开始,微信核心模块全量部署在了腾讯云容器服务平台 TKE 上,进入容器化上云阶段。
通过全力容器化改造,采用多容器减少上T级的流量穿越、支持所有应用可调度提升故障实例恢复时效、多集群多 workload 容灾打散调度提高应用容错能力、Quota 资源按需申请节省大量成本、容器监控和业务监控双管齐下提升服务质量。
利用 TKE 超强的集群管理、资源调度、容器编排,屏蔽了底层基础构架的差异,简化了分布式应用的管理和运维,根据微信业务的使用场景,建设了灵活高效的 DevOps 运营体系,整体效率提升了40%以上。
当业务核心模块容器化后,单机异常、版本不一致等问题降为0。利用 TKE 的增强 HPA 弹性伸缩特性,当业务负载急剧飙升时,能够快速扩容多个 Pod 副本;业务负载变⼩时,适当缩容来节省计算资源。整个过程⾃动化,不需要人工⼲预,应对突发时扩容更快、成本更低。
走向“无人驾驶”
在2013年之前,腾讯还没有“春保”。PC 互联网时代,春节的流量相对分散,高峰还不需要太大规模的技术保障。
2013年,微信群发拜年视频兴起,六七倍的流量涌入,远超技术团队原先的储备,只能靠系统硬扛。
2015年,微信红包亮相春晚互动。原来只是几万人使用的红包系统,紧急扩大到支撑十几亿人抢红包。20点到次日凌晨零点48分的时间里,春晚微信摇一摇互动总量达到了110亿次。很多已经在家吃年夜饭的技术人员被紧急“召回”公司。
2020年,线上会议需求爆发,春节8天紧急扩容100万核,腾讯会议创下了中国云计算史上的又一个记录。
如今,负责“春保”的团队规模越来越小,越来越多的同事又可以年三十跟家人一起吃年夜饭了。回望过去十年,从“被打的措手不及”,到“想方设法先扛住再优化”,腾讯春保如今回归“静悄悄”。
与上云前相比,此次春保的资源利用率提升1倍,CPU 峰均值利用率达45%以上;交付效率提升50%,扩缩容效率提升5倍以上。腾讯的全面上云,为业务春保带来了效率、容量、成本的全方位优化,也支撑了数以亿计的用户,度过了一个热闹祥和的春节。
“以前春保更多考虑的是系统会不会崩掉,怎么能扛住一波接一波的流量高峰,而当全面上云之后,能力足够强大,不崩已经变成新的常态,我们未来需要考虑的是如何提升用户体验,并进一步降低成本,通过智能化的容量预测、智能化的调度,实现更精细的运营。”
腾讯云副总裁、云架构平台部副总经理高向冉表示:“现在的春节保障相当于是人工在驾驶的,将来希望完全由机器来完成自动驾驶。”