春节不宕机保卫战:百亿红包和加班的工程师(组图)

在距离北京200多公里、被称为阿里巴巴“数据心脏”的坝上数据中心,冬季气温最低能到零下38度,风大得让人张不开嘴。这里的除夕,每年都有阿里云的“巡查兵”驻守在Ecc监控室里,除了要确保水电油的基本设施正常运转,还要预防严寒给服务器带来的突发状况。

2019年的除夕到初二,由阿里云的太佑在这里值班。因为知道自己是最后一道防线,对于整个系统的运作来说非常重要,所以他的心态还不错:“这里的好处是鞭炮可以随便放!”

数据中心作为服务器的“家”,是用户网络生活的正常进行的基础,在春节这种流量高峰,更容不得一丝差池。

而太佑只是为了让我们春节抢红包、发朋友圈、看网络春晚、打游戏更顺利的工程师之一。

在除夕佳节,万家欢聚,共享团圆的时刻,来自各大厂的工程师们,或在公司大厦,或在机房,或在家却对着电脑,他们都在加班,为的是对抗十几亿流量对服务器带来的冲击:

2022年,京东成立8个项目组,由京东零售集团主导,物流、科技等子公司协助,负责春晚红包的发放;2021年除夕,腾讯云及腾讯底层技术团队有数百位工程师选择留在公司值班、客户现场、各地数据中心等一线值班;金山云今年组建了百余人的运维团队,保证春晚直播的顺利进行;2020年,快手投入几百人参与春晚红包研发团队;2019年百度想方设法搞到了10万台服务器,上千名百度同事除夕加班,让百度App平稳度过因红包发放造成的流量冲击;


阿里云的太佑在室外巡检风冷冷水机组

当春晚按时播放,当年夜饭上桌,当烟花绽放,对着电视刷手机的你或许不会知道,全国十多亿人同时拿起手机,将会汇聚起怎样的数据海啸。

保证数字世界的正常有序运作,成为了各大厂及其工程师在春节时期的特殊使命。

这是一场春节不宕机的保卫战。



01、宕机:在流量高峰时到来

在PC互联网时代,宕机很少发生,一是人们能够上网的设备有限,又受地理位置限制,对于网络热点事件的参与度低,服务器收到的流量冲击就少;二是,PC时代大家往往是“围攻”一个热点图片或者视频,服务器只需缓存这一个内容就好。

但在移动互联网时代,以朋友圈、微博为代表的UGC(User Generated Content,即用户原创内容)每个都不相同,服务器需要对每一个都进行缓存。在这个基础上,越大的流量,对服务器造成的冲击就越大,宕机就会发生。

因此,春节时期,十几亿人无事可做,频繁网络冲浪的行为,就很容易给服务器带来冲击和压力。

腾讯是第一批经历移动互联网时代突如其来的流量高峰的厂商。

腾讯工程师在PC时代大多都正常过节休假,9天的假期也不带电脑——去网吧连上VPN,上线、搬迁、下线就相当于值班了。

变化在2014年除夕夜发生。那是4G开始普及、移动互联网起势的一年,那年春节前十几天,为活跃新年气氛,腾讯在微信里加入了抢红包功能。春节红包正式上线前,团队内测时便发现,这个“小功能”使用人数远远超过预期:从广州等一线城市开始,发红包的习惯逐渐扩展到二、三、四线城市,直至全国。

但这个功能一开始便是按照小系统来设计的,临时为了用户增长做改动已经来不及了。

当时的微信DAU刚超过1亿,用户数大概在4亿左右,在除夕夜几乎所有拥有微信的人,都开始发红包、抢红包。春节红包团队迅速启动了过载保护。过载用户想发红包时,系统会提示“当前系统繁忙”。当时开发红包的技术团队临时调来了10倍于原设计数量的服务器,才扛住了考验。

与此同时,腾讯存储那边也出问题了。大家抢到的红包截图以及新年祝福,都密集地在朋友圈发送,触发了已设置好的过载预警线。用户的直观感受就是你的消息对方无法及时看到,你也可能无法及时收到朋友发给你的微信/朋友圈。存储团队和微信团队都紧急调出了运维工程师进行处理,扩容、改良分发策略。

2014年之后,腾讯吸取教训,开始了每年春节加班值班的“传统”。

其他所有要参与到春节活动的大厂,也从那时开始学会了提前准备。



02、红包:全民的狂欢,大厂的加班

提前准备的内容并没有大家想想的那么简单。

一个明显的“洪峰”是每年的抢红包活动。自2015年微信开启春晚抢红包后,每年有一家顶尖互联网公司走上舞台,给十几亿人发红包,今年是抖音,去年是快手,2019年是百度,2018年是淘宝,2016年是支付宝,每年金额逐渐加码,新玩法也层出不穷。


图片更新:2022年,京东准备15亿互动红包和实物



红包会在某一个或某几个时间点集中揭晓和发放。看似只是发了几亿的红包,但其背后对技术的投入远不止这些。

抢红包非常容易带来宕机状况,原因基本是这几个:1.不可预见的峰值流量瞬间涌入,2.红包系统架构复杂带来了协调成本,3.春节返乡导致地区间流量资源分配要临时调整,4.与外部资源协作出现问题,5.新形式需要新技术做匹配。

为了解决这些问题,红包承办方和云厂商没少费心思:

不可预见的峰值流量瞬间涌入,这点在前几年的摸着石头过河后,后面的大厂基本能做到“心中有数”。

2018年春晚,淘宝红包项目的技术团队虽然很早就预估到了登录系统压力,但当时基于一些历史数据推导出了极端情况,最终决定以2017年双十一的容量为基础,对登录数扩容3倍。结果,春晚当晚登录的实际峰值超过了2017年双十一的15倍,尤其新用户的瞬时登录更是完全超出预料。

好在有了前几年的数据基础,后来者对数据的估算也会相对准确一些。百度技术部门在春晚前就测算过,春晚期间登录值可达到日常用户登录峰值的2500倍,流量据测算每秒峰值将会达到5000万次,每分钟的峰值将会达到10亿次,而能支撑这些流量的云计算系统,由10万台服务器组成。

红包系统架构复杂带来了协调成本。与单纯的登录、发布、评论不同,抢红包项目往往和红包业务系统、交易支付系统、零钱账户系统这三个层级之间转换,因为一个红包如果是通过银行卡发出,必须要先向银行提出申请,银行会进行扣款,扣款成功后,后台会通知支付系统,红包系统到这时才会把红包放出。在其他用户抢到红包后,又会以零钱形式进入用户账户中。

红包几秒钟现金出出进进,都需要耗费服务器资源,由于资金频繁进出银行,部分银行的技术能力又非常有限,因此大厂还需要前提和银行协调测试。

春节返乡导致地区间流量资源分配要临时调整的情况,在“鼓励就地过年”的今年或许会稍有好转。

用户的的地理位置改变,会导致流量结构带来变化,DC数据中心和CDN带宽不得不进行调整。每年,阿里云、腾讯云、金山云等厂商,都要与三大运营商一起提前规划好不同的确所需要的网络资源,再通过智能调度系统感知不同的确资源紧张程度,并进行相对应的资源调度和补给。

春晚是一个大协作,依赖很多外部资源:应用商店、服务器、带宽、CDN。比如如果应用商店不扩容,也会被春晚导入的用户搞瘫,虽然2019年百度斥10万台服务器保障抢红包活动的顺利进行,但当晚苹果、小米、华为系统的应用商城部分系统出现崩溃,全国有200万-300万人无法下载百度App。



百度员工在春晚前“拜”杨超越

随着短视频的火爆,抢红包活动也在于短视频进行结合。2020年和2021年,春晚红包的合作伙伴分别是快手和抖音,这两家短视频平台。与之前的图文形式的抢红包不同,2020年快手采取的是“看视频+点赞”抢红包。快手官方数据显示春晚直播间累计观看人次7.8亿,最高同时在线人数2524万,短视频内容所需带宽是文本的50-100倍,但基于高性能可伸缩的AI架构能力进行富媒体处理,内容审核、内容生产、内容分发、内容消费各个环节均全面应用AI技术,在保证用户顺畅抢红包的同时,也确保短视频、直播、社区等功能可用。


03、更多的保卫战,在红包之外

这些年,红包背后的技术越来越稳,腾讯作为旁观者能够感受到。

这是因为,不管最终揭晓的金额是多少,1.88,6.88,还是288,大家都会截图分享到社交环境里,也就是发朋友圈或者发到微信群。

我们发送的图片、动图、视频等海量信息会给存储器的存储容量、通信干线信道的带宽、页面加载速度增加极大的压力。 因此某一时间段节点,出现高于往常十倍的朋友圈密集发送现象,就会给腾讯的数据中心带来巨大压力;如果其他App并非同一时间揭晓、发放红包,那么大家分享到朋友圈的速度也不是同步的,腾讯数据中心监测到的压力将不是暴增的,而是逐步的。

因此,腾讯云架构平台技术运营与质量中心总监高向冉开玩笑说,腾讯支持并检验了很多“友商”的红包活动:“很多时候,友商活动策划做的是否完美,是可以通过我们‘检验’的。”

红包之外的服务器压力,还有春晚本身。

移动互联网的普及带火了春晚直播。截至2020年1月24日24时,2020年春晚在新媒体平台的直播收看人次累积突破11.16亿人次,电视端直播仅有5.89亿人次观看。而春晚直播的技术和前面提到的红包、存储有相似之处,但又不太大相同。

相同之处在于,同样都是由云计算提供的支持保障。不同之处在于,抢红包、发朋友圈是瞬间的高并发压力,而视频直播的压力来自网络带宽。从去年开始央视春晚直播采用了5G超清、VR直播等新形式,视频的带宽是图像的千倍万倍,这让视频传输的难度更大。

擅长视频编解码技术的金山云从2017年起参与了4年服务春晚网络直播。针对5G、4K/8K高清直播和VR等新形式研发的AI+视频云新技术,能够实现节省带宽,匹配碎片化的终端,针对高清内容设计了大容量分发节点以适应“大内容”等目的。

事实上,现在央视春晚的各种运维,都已经不是单一大厂负责了,多云不仅是为了规避大流量、高并发、DDos攻击等风险,也是为了“术业有专攻”,让不同大厂去做自己更擅长的事。

这两年,春节对于大家已经不再仅仅是物理空间的活动——看春晚、走亲访友那么简单,在网络世界冲浪甚至成为更重要的春节活动。甚至我们很多想象不到的流量冲击,比如游戏登录量会在春晚歌舞节目时暴增,比如每年初一的凌晨12点到12点10分这十几分钟里,朋友圈发送过多会给服务器带来冲击,比如假期时电影购票系统容易拥挤……

大厦千间并非凭空而来,技术是地基,而千千万万春节不回家的工程师,就是奠基人。


04、隐身的技术,和不回家的工程师



从2014年到2022年,各大厂应对春节流量冲击的技术不断进化。从最早的懵懵懂懂、毫无认知,对技术难点预估不足,到后来每年都会提前做好准备,但依旧要靠熔断机制来限制流量,再到如今限制为辅,分布式、自动化、智能化为主,看似是腾讯、百度、阿里、金山在保障我们春节活动的进行,实际上是云计算、4G(即将5G)、AI等技术在保驾护航。

我们日常在互联网上的种种行为——微信聊天、发朋友圈、淘宝、百度搜索,以及每年在不同App上抢红包,都会产生数据,而这些数据的传输、存储、计算,都无比依赖4G(5G)、云计算、AI作为技术基础。

浪潮信息联合IDC发布的《2020全球计算力指数评估报告》表明,计算力指数平均每提高1个点,数字经济和GDP将分别增长3.3‰和1.8‰;美国以75分位列国家计算力指数排名第一,坐拥全球最多超大规模数据中心,中国获得66分,位列第二。



来源:IDC

超大规模的数据量对处理效率提出更高要求,强大的云计算能力,为数字经济提供了倍增创新的源动力;传输技术3G-4G-5G的不断演进,又为数据的传输提供了更快、更宽阔的通道;通过AI来实现自动化、智能化,节省运营开支和时间,为更重要的数据处理让出时间和位置。

具体到中国,每年春节的不宕机保卫战,都会成各大厂计算能力的检验和升华。

这是一个正向循环。“宕机”的压力倒逼厂商的技术升级,进而推动云计算、传输技术的发展;云计算、传输技术发展,又为各大厂的春节保卫战提供的技术基础。

而正向循环的背后,是无数为了技术发展熬秃了头的工程师,和为了让技术在春节顺利发挥作用而不回家的“打工人”。

每年支付宝都会有集五福活动,奖金在除夕夜公布。五福开奖后并不代表着工程师的工作结束,所有完成后大概凌晨一点多,一位花名是形修的支付宝同事会从那时起,从杭州出发横跨整个中国,回到位于新疆阿拉尔的家。

一位经历过两次春晚直播项目的金山云技术专家告诉36氪,部门主要负责人也会参与一线带领百人团队奋战直到的最后一秒,后勤团队也会保证食品和“年味”的供应。

2019年除夕当晚,百度大厦里1000多位同事、百度散落在各地机房的100位同事、带着备用零件守候在机房的100多位服务器厂商的工程师、三大运营商为了保护网络通畅而留守在各地机房的1000多位同事,都在为了顺利完成红包活动而加班,据说大厦里“静地听得见针落”。

他们的加班费用不低,一般是两倍以上的工资,还会有项目的奖金。不过付出并不仅仅是为了钱,在采访和资料查阅过程中,能感受到更多是信念在支持。春节运维不是小事。

如今,春节已经成为了可以预判的峰值节点。据说,美国“超级碗”直播中间插播广告的时候,电视机前的几亿观众会集体上厕所冲马桶,导致美国各大城市的市政供水出现崩溃,而超级碗的全球观众仅有1.3亿。

在十几亿人共度佳节、同刷手机的新春佳节,千千万万的工程师,通过润物细无声的新技术,让每一个普通人在数字世界畅通无阻地生活。

推荐阅读