文字| 王雨桐
编辑| 施亚琼
封面来源| 集成电路照片
在距离北京200多公里、被称为阿里巴巴“数据心脏”的坝上数据中心,冬天气温可低至-38度,风大得让人打不开他们的嘴。 这里的除夕夜,每年阿里云的“巡查员”都会进驻ECC监控室。 除了保证水、电、油等基础设施正常运行外,还需要防止严寒对服务器造成的突发情况。
2019年除夕到初二,阿里云的太友都在这里值班。 因为他知道自己是最后一道防线,对整个系统的运行非常重要,所以他心态很好:“这里的好处就是可以随意放鞭炮!”
数据中心作为服务器的“家”,是用户上网生活正常进行的基础。 春节期间交通高峰期,容不得半点差错。
而泰佑只是让我们在春节期间抢红包、发朋友圈、看网络春晚、玩游戏变得更容易的工程师之一。
除夕之夜,万千家庭欢聚一堂,共享团圆时刻。 各大工厂的工程师要么在公司大楼里,要么在机房里,要么在家里的电脑前。 他们都在加班加点地应对超过十亿的车流量。 对服务器的影响:
阿里云太友在户外检查风冷冷水机组
当春晚准时播放的时候,当年夜饭上桌的时候,当烟花绽放的时候,当你在电视机前刷手机的时候,你可能不知道什么时候会聚集什么样的数据海啸。全国超过10亿人同时拿起手机。
确保数字世界正常有序运转,成为各大工厂及其工程师在春节期间的特殊使命。
这是一场不停机的春节保卫战。
01 停机时间:出现在流量高峰期
在PC互联网时代,宕机的情况很少发生。 首先,人们对互联网的访问有限,并且受到地理位置的限制。 他们对网络热点事件的参与度较低,服务器受到的流量影响较小。 其次,在PC时代,大家常常“围攻”一张热门的图片或视频,而服务器只需要缓存这些内容即可。
然而,在移动互联网时代,以朋友圈和微博为代表的UGC(用户生成内容)各不相同,服务器需要分别进行缓存。 在此基础上,流量越大,对服务器的影响就越大,就会出现宕机的情况。
因此,春节期间,超过10亿人无所事事,频繁上网很容易给服务器带来冲击和压力。
腾讯是最先经历移动互联网时代突然流量高峰的厂商之一。
在PC时代,大多数腾讯工程师在假期期间正常休假,在9天的假期里并没有带电脑。 去网吧连接VPN,上线、移动、下线,就相当于在值班。
变化发生在2014年除夕夜,那一年是4G开始普及、移动互联网风起云涌的一年。 那年春节前十天,为了活跃新年气氛,腾讯在微信中添加了抢红包功能。 在春节红包正式上线前,团队在内部测试时发现,这个“小功能”的用户数量远超预期:从广州等一线城市开始,发红包的习惯逐渐扩大到二、三、四线城市,甚至全国。
但这个功能从一开始就是基于一个小系统设计的,来不及为了用户增长而临时做出改变。
当时微信的DAU刚刚突破1亿,用户数量在4亿左右。 除夕夜,几乎所有拥有微信的人都开始发红包、抢红包。 春节红包团队迅速启动了过载保护。 当超载用户想要发红包时,系统会提示“当前系统繁忙”。 当时,开发红包的技术团队临时部署了原本设计的10倍服务器数量来承受考验。
与此同时,腾讯存储也出现了问题。 大家抢到的红包和拜年截图被密集发送到朋友圈,触发了设定的超载警戒线。 用户直观的感受是对方无法及时看到你的消息,你也可能无法及时收到好友发给你的微信/朋友圈。 存储团队和微信团队均紧急动员运维工程师处理问题、扩容、完善分配策略。
2014年之后,腾讯吸取教训,开始了每年春节加班的“传统”。
其他想要参加春节活动的各大厂商自此都学会了提前做好准备。
02 红包:全民狂欢,大厂加班
提前准备并不像你想象的那么简单。
一个明显的“高峰”就是一年一度的抢红包活动。 自2015年微信推出春晚抢红包以来,每年都有顶级互联网公司登上舞台,向超过10亿人发放红包。 今年是抖音,去年是快手,2019年是百度,2018年是淘宝,2016年是支付宝苹果6自动抢红包软件,每年金额都在逐渐增加,新玩法层出不穷。
图片更新:2022年京东准备15亿互动红包及实物
红包将在特定时间或特定时间点公布并发放。 看似只是发了数亿红包,但其背后的技术投入远不止于此。
抢红包非常容易造成宕机,基本上有以下几个原因:1.不可预见的高峰流量瞬间涌入,2.红包系统架构的复杂性带来协调成本,3.春节返乡导致中间-区域交通资源配置需要暂时调整,4.与外部资源协作出现问题,5.新业态需要新技术匹配。
为了解决这些问题,红包主办方和云厂商花了不少心思:
意想不到的高峰流量瞬间激增。 经过这几年摸着石头过河的尝试,背后的各大厂商基本都“意识到”了这一点。
2018年春晚期间,淘宝红包项目的技术团队虽然很早就预见到了登录系统的压力,但根据一些历史数据推演出极端情况,最终决定根据容量扩大登录数量2017年双十一。3次。 结果,春晚当晚的实际登录峰值超过了2017年双十一的15倍,尤其是新用户的即时登录,完全超出了预期。
好在有了前几年的数据基础,后来者对数据的预估会相对准确。 百度技术部门在春晚之前测算,春晚期间的登录值可达到每日用户登录峰值的2500倍,峰值流量预计将达到每秒5000万次、每分钟10亿次。 支持这些流量的云计算系统由10万台服务器组成。
红包系统复杂的架构带来了协调成本。 与简单的登录、发布、评论不同,抢红包项目往往会在红包业务系统、交易支付系统、变更账户系统三个层面之间切换,因为如果通过银行卡发放红包,必须首先提交给银行。 申请后,银行会扣钱。 扣款成功后,后台会通知支付系统,此时红包系统才会发放红包。 其他用户抢红包后,将以找零的形式打入该用户的账户。
红包的钱进出需要几秒钟的时间,需要服务器资源。 由于资金频繁进出银行,而部分银行的技术能力十分有限,大厂商仍需与银行协调测试。
春节返乡导致地区间交通资源分配暂时调整。 今年“就地过年”受到“鼓励”时,可能会稍微好一些。
用户地理位置的变化会导致流量结构的变化,DC数据中心和CDN带宽都要进行调整。 每年阿里云、腾讯云、金山云等厂商都要与三大运营商合作,提前规划不同需求所需的网络资源,然后利用智能调度系统感知不同的资源约束,做出相应的资源分配。 调度和供应。
春晚是一个大协作,依赖很多外部资源:应用商店、服务器、带宽、CDN。 比如应用商店如果不做大,也会被春晚导入的用户瘫痪。 尽管百度部署了10万台服务器来保证2019年抢红包活动的顺利进行,但当晚苹果、小米、华为系统的应用商店部分系统崩溃了。 全国有200万至300万人无法下载百度App。
百度员工春晚前“崇拜”杨超越
随着短视频的流行,抢红包活动也与短视频相结合。 2020年和2021年春晚红包的合作伙伴是快手和抖音两个短视频平台。 与以往以图文形式抢红包的方式不同,2020年快手采用了“观看视频+点赞”的方式抢红包。 快手官方数据显示,春晚直播间累计观看人数7.8亿,最高同时在线人数为2524万人。 短视频内容所需带宽是文本的50-100倍,但基于高性能、可扩展的富媒体处理AI架构能力,将内容AI技术全面应用于审核、内容制作、内容分发各个环节和内容消费。 在保证用户顺利抢红包的同时苹果6自动抢红包软件,也保证了短视频、直播、社区等功能的可用。