查看原文
其他

抠门的京东,凭什么扛春晚?

史中 浅黑科技 浅黑科技 2023-02-08

浅友们好~我是史中,我的日常生活是开撩五湖四海的科技大牛,我会尝试各种姿势,把他们的无边脑洞和温情故事讲给你听。如果你想和我做朋友,不妨加微信(shizhongmax)。




抠门的京东,凭什么扛春晚?

文 | 史中



(零)倒数开始,滴答滴 


这个滑雪呢,就要盯紧远处的目标,心里越想着当下的动作,就越难保持平衡。做人、做事都要目光长远,懂了吗?

北京郊区冷风猎猎,雪道顶上,一位苦口婆心的老父亲正在对儿子灌输自己的毕生功力。

这位老哥名叫常亮,是京东的一位技术宅。

别看雪场上他只算个气氛组,但回到代码的世界里,他可是叱咤风云的大佬。

那天正值2022年元旦假期,眼瞅就要过春节了。

每逢过节,常亮都挺郁闷。。。

家里亲友聚会时,一提到京东,大家都挺熟悉,竖起大拇指,你们的东西质量好,送货快;

但话题一旦转到京东的技术,亲朋好友立刻眨眨眼陷入沉默,那意思仿佛在说,京东一个卖货的,还有技术?来来来,不提了,喝酒喝酒!

“嗡、嗡、嗡”,手机在震,把常亮从回忆中拉了出来。

他摘下厚厚的手套,按下接听。

“神马?!真的吗??终于轮到我们啦!!!!没问题,明天一早咱们就开会!”

挂掉电话,常亮用颤抖的声音扭头说:“儿砸!你爸爸今年要上春晚啦!在春晚给全国人民发红包!”

儿子似懂非懂:哦。。。

说完,常亮撑起雪杖,纵身一跃。。。噼里啪啦滚了下去。

几秒种后,儿子干净利落地滑到旁边,扶他起来:“爸,你刚才是不是没盯紧远处的目标?”

总之,这就是故事的开始。

这只是个示意图。。。


2022年1月3日,正在家里睡觉、在商场购物、在桌前打游戏的成百上千京东技术小哥(哦还有老哥老姐)们几乎同时得到了这个消息,京东拿下了2022年春节晚会红包的赞助权。

自打2015年腾讯开创了在春晚上摇红包的骚操作以来,已经七年过去了。七年了啊,京东终于抢到了一次露脸给全国人民发钱的机会,虽迟但到,热泪盈眶。。。

这是当时官宣现场。


集结号嘹亮嘶鸣,雄鸡版图上的京东技术人紧急成军,开始备战这场千载难逢、光荣又凶险的战役。

对于常亮来说,这不仅是公司的大事儿,还是自己今后十年八年在亲友面前吹牛的绝佳素材,这个翻身仗,万万不能有闪失。。。

看看日历,除夕夜是1月31日,从1月4日元旦收假开始,满打满算还剩27天。

常亮坐在雪场休息室,就给在各大公司工作的朋友们打了一圈电话,那些上春晚发过红包的,无论是腾讯阿里,还是快手百度,没有一个这么晚才敲定的,准备时间或多或少都比京东长。

人比人,气死人。。。

“要不你们跟国家商量一下,把春节往后推几天?”电话那头的友商朋友给支招。

常亮想砸手机。

留给中国队的时间,不多了呀。。。




(一)大爷你咋这么抠呢?


1月4号一大早,乌央乌央一群“参赛选手”出现在了会议室里。

这边一堆,是“京东零售”的同事们,他们负责研究今年红包怎么个发法——发多少钱,发多少轮,红包能干啥,红包页面和逻辑要咋设计,等等。。。

那边一堆,是“京东云”的同事们,他们负责看着。。。并不是,他们负责搞定超级大量和超级稳定的云计算力,保证这些玩法的每一行代码、每一次计算都能准确无误地实现。

简单说吧:如果说京东零售这帮人是上阵打仗的战士,那京东云这帮人就是造飞机大炮的。

参赛选手还有京东物流、京东安全等等大小部门,就不逐一介绍了。

而常亮,就在京东云这堆人里,是“基础资源”的统筹人——俗称“后勤大队长”。

常亮


大家坐在一起,第一件事儿,就是“对数”:

“当天到底会有多少人来抢红包?”

算来算去,估摸出一个数:6亿

6亿是个啥概念呢?京东 App 一年的活跃用户人数就是6亿。也就是说,春晚这四个半小时,京东商城很可能要挤进来过去一年的客人。。。

换个角度看:

2021年“618购物节”那天,京东的活跃用户数粗略估算在1亿左右,也就是说,春晚大概是6个“618”那么多。



但讲真,这个时候,常亮心里还是有底的。

红包都发了六年了,别人家公司能扛得,我京东肯定能扛得。

况且他已经问了一圈,别的公司决定赞助春晚之后,负责基础资源这群人做的第一件事儿就是——买服务器。(看过《百度的春晚战事》的浅友,一定还记得这个情节。)

而且人家还好心提示常亮:一秒都别耽搁,赶紧要预算,去市场上把所有能见到的服务器全买回来!有一台买一台,这东西能救命。

于是,常亮第一个举手:赶紧去买服务器吧!

将近半个中国的人都要在除夕晚上逛一次京东,看这意思买个万八千台的肯定都不够。

春晚小组领导疑惑地看看他:啥买服务器?买啥服务器?我们没说要买服务器啊。。。

纳尼?!?!



常亮特别希望此时此刻所有人突然哈哈大笑:Surprise!开玩笑的,给你一个亿,快去买服务器吧!

但大家没有,都温柔、友善且坚定地看着他。

这一刻,常亮才真的慌了。

同样是扛春晚,凭什么我的剧本在第一章就跟别人不一样了呀。。。

他心里满是小沈阳的那句话:



其实啊,常亮早该猜到这一点。因为京东是出了名的“抠门”。

就拿平常来说,他们对于所有业务部门的服务器“CPU利用率”都是有要求的。

主要业务的CPU利用率如果不达标,那算是事故,负责人要扣奖金的。

但负责人还不能胡搞,如果你把系统压榨到极致,逼成秋名山车神,每次都用下水道过弯,但凡有一次漂移失败,把业务搞挂了,扣的钱更多。。。



当然,说“抠门”其实是在开玩笑,究其本质,是京东的文化很特殊:


他们一直强调的东西叫做“刀锋利润”,也就是努力用最低的利润把东西卖给用户。
要保证“刀锋利润”,自然要用“刀锋技术”,在各个环节都要把技术的潜力压到极致,争取用一粒沙的钱办撒哈拉的事儿。

换句话说就是妥妥的自虐。。。

不过这一台服务器都不买,已经不是自虐,而是接近“自杀”了。。。

这里解释一句,刚才的情节我有故意戏说的成分,领导们不可能抠到不讲理的程度,面对春晚这么严肃的任务,还是同意购买服务器的。

但常亮给八家供应商打了一圈电话,得到的结果如晴天霹雳:你这要得也太急了,现在马上春节放假,国际芯片又供应紧张,你掏多少钱我们都没货。。。




反正结果就是一台都不买。

挂了电话,常亮算彻底踏实了,这下想不自虐都不行了。

粗略计算,要顶住这6亿人,除了平时就在不停燃烧的1000w核心以外,抢红包页面还要凭空再新增100w颗CPU核心,每台服务器里有64或者96个核心,折算下来大概就是新增15000台服务器。

这么多计算力,要去哪给你变啊。。。

常亮恍惚的精神又回到了现实。桌子对面,京东零售这边的各个团队还在激动地报数:这么算的话,我们预计还得多加5w核心。

那我们还得加7w!

我们估计得再要15w。。。

这群人正跟竞拍一样加着价,回头一看常亮人没了,低头一看他跪在地上:大爷大娘行行好吧,别加了!就那100w核心我还不知道去哪给您找呢。



经过一顿友好协商,大家终于打成一致,把春晚红包页面的100多个业务接口缩减到了8个,加100w核心勉强能撑住。

“行啦,就敲定多加100w核心了,你去搞吧!”

大家对常亮热情地挥手。

常亮心说:打我100枪跟打我10枪有啥区别吗?横竖都是死。。。

就在此刻,身边另一位沉默良久的冷面大佬露出了一丝笑容。

“我们,可以试试。”

说话的人名叫樊建刚。此人人狠话不多,是老牌京东技术人,早在2007年的时候,他就加入了京东,曾经用手里的代码帮京东扛过了历次618、双11。

最近五年,他一直带着一群技术大牛潜心闭关,磨炼一个大杀器,名叫“云舰”。

听这名你大概能猜到,这东西就像一艘航母,专门用来扛住惊涛骇浪,巨炮迎敌。

说得这么热闹,世外高人老樊到底要怎么凭空变出来这100w核心呢??

所有人的注视下,他慢悠悠地说出计划。。。

樊建刚



(二)七借七还 


要说明白老樊的计划,我们不妨先打个小比方:

京东本来是线上的“虚拟商场”,但现在咱们把它想象成一个现实世界的商场。

这个商场很大,有10层:

1)下面5层是顾客可以逛的地方,有各种店铺和很多售货员。(其实真要把京东卖的几百万种商品放到实体货柜上,5层楼肯定不够)。
2)上面5层不开放,是办公人员工作的地方。因为京东的商品很多,每天都需要大量的盘点工作,所以有很多会计日夜不停地计算。
(当然啦,无论是售货员,还是算账的会计,都是服务器里的CPU核心来充当的。我们这里的比喻,只是把CPU拟人化了。)

你看下图就明白了,葫芦娃就代表CPU核心:



好,现在问题就变成了:

除夕晚上,会有6亿人涌进这个商场领红包,但当时发红包的服务员人手不够,又不许招新人,肿么办?

说到这,就要揭晓老樊的计划了。

说白了,老樊的计划就两个字:极限腾挪

人们涌进来抢红包的时候,就安排他们到办公区所在的6-7层,这里面的70w员工(70w核心)上一秒还在当会计算账,下一秒就套上马甲,成为70w个发红包的工作人员。

等人们抢到红包回家之后,这70w人(也就是70w核心)再马上脱掉马甲,继续算账。

你可能会问,不对呀,这才70w核心,还差30w呢!

剩下30w,就从楼下5层的售货员里抽调,哪个专柜当时接待的客人少,就紧急抽调服务员上楼,帮助发红包。这些抽调的服务员(也就是CPU核心),总共有30w。

给你看个动画,你就明白了:



怎么样,很有意思吧。

看不清的话,再放大看一下菊部:



但我必须得说,这个操作也很危险:

你想想看,必须让百万处理器核心在两分钟之内就转换角色,从“会计”、“售货员”变成“红包派送员”,红包发完了还得两分钟之内回到各自岗位各司其职。
一旦中间指挥调度出现一丁点错,都可能会引起连锁雪崩——不仅红包不要发了,连正常的电商服务都可能挂掉。

但老樊这么气定神闲,显然是艺高人胆大。

他搞了五年多的云舰,恰恰就是干这个用的:

云舰可以在两分钟内,调度上千万个CPU核心转换工作内容,还能保证每个核心上的计算平稳顺滑,微微一笑,绝对不抖。(有关云舰的科普,可以看另一篇文章《云计算的屠龙者》

大家听完老樊的计划,纷纷点头:靠谱!就这么干!

春晚红包项目组这群人正商量得开心,可这群“会计CPU”的主人——负责大数据计算的团队——还啥都不知道,就已经被安排得明明白白了。。。

把“会计CPU”调来做“红包CPU”,势必会影响人家原本算账的进度啊。这事儿,恐怕必须要大数据团队同意才行。



常亮和老樊赶紧找到大数据业务的负责人:

你看咱这感情,是不是得帮兄弟这一把?这么说吧,春晚红包这事儿要是搞定,咱俩就去喝庆功酒,要是搞不定,咱们吃的就是散伙饭了。。。

对方其实已经了解了来龙去脉,拍拍胸脯:哥们别说了,发红包是全集团的大任务,这个计算力当然要借给你们!但是,你们要借多久呢?

老樊说:春晚从8点到凌晨12点半,总共四个半个小时,中间要发7次红包,所以,得借四个半小时。

大数据负责人说:那可不行。。。这样的话,计算任务就难以完成了,会给集团正常业务造成巨大影响。我倒有个提议,你们7个红包之间肯定有间隙啊?每发完一次红包,就把计算力还回来,让我接着用几十分钟,发下个红包的时候,我再重新借给你!

于是,计划就这样敲定了:

春晚当天,这100w颗核心要“七借七还”,正如赵子龙长板坡前的“七进七出”!

计算力不够的问题可算解决了。

可是,随即另一个同样大的问题又摆在这群技术宅面前,那就是——商场不够宽敞。。。

这是技术宅们在备战室解决各种问题。



(三)极限“二指禅” 


先来看张图:



不用多说,估计你已经懂了,就算商城里已经有100w个服务员化妆立正准备迎客,但是大门不够宽,也是白扯。

这个大门,就叫做“出口带宽”

常亮紧急“扩建大门”——联系三大运营商,让他们把出口带宽都给留好。

但是大门总不能无限拓宽,如果如果大家像平常逛京东那样进来,还是会挤爆。。。

于是,技术宅们想到了一个神操作。

为了讲明白这个操作,我得先给你简单说下抢红包的原理:

你打开京东 App,会弹出一个“摇红包”的界面,在这个红包界面里,除了领红包,你还可以参与“敲鼓”游戏,拿到各种额外的优惠券。

总之,你每一次点击操作,都会连接京东的“红包服务器”,服务器会给你反馈数据。



服务器返回的数据,其实分两种:“静态数据”“动态数据”

你看到的视觉界面,那些喜庆的灯笼图画、商品的图片等等,都是提前准备好的,这就是静态数据;



但是你点击了抢红包按钮,究竟抢到了多少钱,是服务器给你实时计算的,无法提前准备,这就是动态信息。



一般来说,静态信息会比较大,动态信息很小。

于是,骚操作来了:

那些图画,可以提前就传送到你手机的京东 App 上,春晚的时候只要显示出来就行。这样就不用大量实时传输,在春晚红包最激烈的时候,宝贵的带宽就可以留给真正要紧的“红包数额”之类核心的小数据传输。

这就相当于:抢红包的时候,全国人民只把手伸进京东,眼睛根本不用来。

每个人都用两根手指头夹着抢到的红包数额,拿回到你手机的屏幕上,在你眼皮子底下,用手机本地的计算力组合成好看的红包图案就行了。

这就是妥妥的“极限二指禅”啊。。。

极限二指禅


别看仅仅是这二指禅的电光火石的功夫,其实在京东的服务器上,红包系统都已经运行了很多子程序。

这里就是京东零售的技术宅们展现毕生功力的时候:

他们要优化每个程序的每一行代码,即使每个红包运行时间节省出一微秒的时间,上亿个红包就能更快抢完,从另一个角度说,每秒钟就能允许抢更多红包。

在他们优化代码的时候,还用到一个神器,那就是全链路监控系统

这个系统可以追溯到每一行代码运行时消耗了多长时间。有了它,红包系统在技术宅眼里就像庖丁解牛,清清楚楚明明白白真真切切。



技术中台开发团队的负责人沈建林告诉我:

红包核心系统,从开发完成,到最终优化上线,平均响应时间快了三倍多。

不过我们更看重另一个指标,那就是TP000(每1000笔里最慢的那笔),如果按照最慢的那笔算,那速度就提升了上百倍。

沈建林(中),和团队的两位技术大牛张金柱(左)、张晨(右)。


此时我们得把镜头切换一下——这边动态数据的“二指禅”磨炼得越来越快,那边静态数据还有一个大问题没解决:

要想把静态图片预埋到人们的手机里,必须至少让大家在春节前打开一次京东 App ,点击升级才可以。



但咱们手机上的京东 App,只要不打开,平时都是休眠状态,不能有任何动作。

于是,京东零售的同学们开始绞尽脑汁,想一些有趣的推送内容,提前发一些优惠活动,鼓励大家尽可能打开京东 App,一次就好。。。求你了。。。

但即便这样,根据测算,还是会有30%左右的用户“不听劝”——不提前打开京东App,难道到时候就不给他们抢红包了吗?

这肯定不行嘛。

为了这些“懒癌”用户,常亮只好去买了好多 CDN 资源。

CDN 就是散布在全国各地的小机房节点,专门用于给它附近的用户传输图片、视频内容。

如果真的有用户在春晚抢红包那一刻才第一次打开京东App,那这些图片页面根本来不及从京东自己的服务器上传输过去,就从用户附近的 CDN 节点传输给他。



买这些 CDN,其实是这次春晚活动最大的花销之一。(你看,京东也不是傻抠门,该花的钱毫不犹豫。)

就这样,这群人终于为一整套精密的春晚技术方案贴上了最后一块补丁——解决了商场不够宽敞的问题。

注意,这套精密的方案并不是没有代价的,它的代价就是失去了一定的“灵活性”:

第一、页面图案都要提前发到用户的手机上,说明所有的页面必须提前就做好,不能等到春节那天才敲定;
第二、由于为全中国所有人设计了最快的信号传输链路,所有的网络结构设计好之后,就不能随意改动。

于是,整个“红包行动”的时间表必须卡得死死的:

1月10日,所有的需求封版,不能再有红包玩法的改动。
1月20日,所有的信号传输链路封版,压力模型不允许变化。
1月24日,所有能提前下发的数据就要下发到用户的手机里(和CDN节点里),也不允许变化了。

一条条“死线”在前,所有团队各就各位,开始了一次比一次真实,一次比一次高压,一次比一次完整,一次比一次残酷的“春晚红包大演习”




(四)“沙场秋点兵” 


1月6日凌晨 ,暗夜里昏暗的台灯下,老樊云舰团队的技术大牛周光正盯着屏幕上密密麻麻的数据,屏气凝神。

从这一天开始,演习就像坦克车的钢铁履带,以“三天一次”的节奏行进,无论发生什么,都无法阻挡。

演习的内容就是:

用一个服务器集群模拟蜂拥而来的“人群”,玩命往另一个服务器集群上的“红包系统”上怼,横着怼,竖着怼,各种怼,只要红包系统能抗住,就是成功。



无论是模拟打人的,还是模拟挨打的,都必须用到实打实的计算资源,所以只能等服务器最最最闲的时候——夜深人静的半夜——来进行。

周光之所以全神贯注,是因为他是这个红包世界的“警察”。

周光


一个大的“红包系统”,可以拆成上万个同时行进的“子程序”,这些子程序混乱地跑在这朵由1000多万核CPU组成的云上(这是“狭义红包系统”和“京东原有系统”的总和)。

它们绝对不能打架,绝对不能打架,绝对不能打架。(重要的事情说三遍)

他让这些程序和平相处的奥义就是“混搭”

每个程序都有自己的脾气——有的程序是每隔几毫秒有一个计算峰值,有的程序是一直平稳计算,有的是大部分时间冷静,突然有个爆发。

所以,周光和同学们维护了一个“阿基米德系统”,专门用人工智能来探查每个程序的“脾气”,然后把脾气相投的程序部署在一台服务器上运行。

这样,从微观上看,程序之间因为争抢资源而打架的概率就会大幅降低,从宏观上看,红包系统才能顺滑运行。



但即便这样,抢红包大军涌来的那个“尖峰时刻”,难免各个程序都需要计算力,产生争抢。

程序之间,真要动起手来,该怎么办呢?

放心,有另一位“警察”专管这事儿。

此时此刻,我们把视线转移,北京城的另一个窗户背后,坐着的另一位“警察”赵建星。他的团队就负责处理这些事情。

赵建星


他的方法是——做出好多种“肩章”,有的上面写着“S”,有的上面写着“A”,以此类推还有“B”、“C”之类的。。。

这些肩章是干什么的呢?

两个程序都要抢一个CPU,如果现场开个听证会再决定给谁,那黄花菜都凉了。

所以,需要提前把这些“肩章”贴在各个程序身上。遇到“狭路相逢”的情况,“C级”必须让给“B级”,“B级”必须让给“A级”;而无论什么级,都必须让给“S”级。

这就好像打仗的时候,军衔低的战士必须服从军衔高的战士。没有理由,敢不听就可以毙了你。



虽然这次春晚总共有1000w核心提供服务,但计算力依然是非常拮据——阿基米德系统会把程序排布到前所未有的密集,就像一台车加速到了极限,老司机们说不紧张是不可能的。

赵建星死死盯着后台数据,就是为了确保在一切情况下,低等级的程序都无条件地让位于高等级的程序,一旦出现意料外的情况,就说明云舰存在某个未知的 Bug。

就这样,经过了几次大演练,原本混乱的沙场,此时一个个士兵已经整齐列队,等待使命的召唤。

不过,上天是最好的剧作家——当你觉得一切顺利的时候,危险就在迫近。就在1月20日凌晨,距离春晚还有11天时,第六次演练中,意外发生了。。。




(五)“史密斯特工” 


凌晨4点,赵建星被刺耳的电话吵醒。

系统后台,警报四起。

四个小时以前,第六次红包演习正式开始,赵建星盯了一会儿,看到所有指标都正常,觉得一切尽在掌握,才安心睡去。。。

但是,此时仿佛换了一番天地:

后台显示,有1台机器发生未知故障,接着是5台,然后是10台、20台、50台。故障面积迅速扩大到了一百多台。



在赛博空间里,这艘巨大的云舰出现了一个裂缝,有水渗进来。。。

演习只能被迫中止,春晚指挥部决定早晨开会,紧急复盘原因。

一大早来到公司,赵建星感觉所有同事的目光都照射在自己脸上。

他调出日志,很快就发现了问题所在:模拟出来的抢红包的人群中,有那么几个人使出了一种非常异常的抢红包姿势,把系统给搞崩溃了。

直觉告诉赵建星,这不像是正常抢红包的群众能干出来的动作。

简直像是无数个“史密斯特工”突然降临在赛博空间。



当务之急是做修复。

一天没抬头,到了傍晚,赵建星他们已经把修复补丁写好。

这时,问题就来了。他们仍旧不知道崩溃产生的具体原因——“史密斯特工”究竟是从哪 来的。

这很尴尬,就像医生虽然研究出了一种病的治疗方法,但没搞清楚发病的原理,那就没办法避免其他人再得这种病。

如果实在找不到问题原因,那只有一种办法——必须给这个问题涉及的所有服务器全都打上补丁——但这个工程量可太大了。

眼看最后一次大演习只剩24小时了,老樊这边必须马上给出决定。



赵建星不服气,跟老樊商量,让老樊帮忙顶住压力,大家再给他一天时间,就不信找不到具体的病因!!

转过天来,1月21日,病根总算让他找到了。

你还记得最初我们提到过,春晚红包的团队里,还有一支京东的安全团队吗?他们专门负责在抢红包演练的时候“捣乱”——发各种乱七八糟的数据,尽量模拟奇葩的抢红包姿势,以检验红包系统的强韧性。

而20日凌晨的那次事故,正是他们的“破坏成果”。

因为一些巧合的原因,安全团队自己也没意识到破坏是自己造成的。



找到了攻击者本人,崩溃产生的原因也就很容易捋出来了。

他们发现,受这类攻击影响的服务器只有2000台。

于是技术宅恩赶紧做了一个更精准的补丁,给这2000台服务器打好。



这场惊心动魄的“黑客帝国事件”,总算结束了。

就在补丁刚刚打好后几个小时,1月22日,春晚前最后一次演习也如期而至。

虽然已经胸有成竹,但在这最后一次演习里,他们仍然要为最坏的情况做好打算。。。



(六)最坏的打算 


之所以说是最坏的打算,是因为在这次演习里,他们要完整测试各种“降级预案”。

啥叫“降级预案”呢?

就是说,假如春节当晚,真的发生了未知故障,当时来不及修,系统也必须“带伤”跑完全程,哪怕爬着也要把红包发完。

比如,假设网络发生拥堵,我们就要压制一部分重要性比较低的流量,例如一些监控数据,就索性不要了。
比如,我们红包服务器主要集中在北京和廊坊两座机房,如果两个机房之间的高速网线突然断掉,那它们必须在一分钟之内就要找到新的绕行路线,重新建立连接。

常亮解释说。

从某种程度上说,“降级”也是一种体育精神。


22日凌晨,演习开始。

所有的规定项目都测试得异常顺利,还比预计早了一小时完成。

常亮突发奇想,和京东零售的同事商量:要不,咱们试试最坏的情况——拔网线?

对方说:我看行。

于是,他们指挥在机房值守的同事,直接把两个机房的通路给拔掉。

瞬间,红包系统的后台数据开始摇摆,平均响应时间从平均0.3秒开始飙升。。。

此时此刻, 系统启动预案,开始艰难的“自救”。

一分钟后,系统的响应时间已经上涨到了1.3秒。。。屏幕后面的大伙儿都捏着一把汗。。。

然而,很快大家就发现,系统在这个水平上稳定了下来。

也就是说,即便是发生了两个机房“断连”这样的重大事故,京东云仍然可以用1.3秒的平均延迟撑起整个红包活动。

常亮激动得一宿没睡好。

正常情况下,事情做到这种程度,程序员们就要开始“迷信活动”了。

比如,拜杨超越。(当然杨超越只是一个代表,具体拜谁还要看情况,膜拜对象以锦鲤为佳。)



但常亮他们不准备这样。

他们决定搞个莲花坐垫。(bushi



说正经的,要做的事情其实还有很多:

他们给两座机房打电话,让对方检查,是否已经把柴油发电机的机油换成冬季专用的。以防突然停电时备用的柴油机出现故障。
他们和运营商沟通,让对方绝对不要春节当晚在机房旁边施工,以防一铲子挖断网线。
他们还给苹果、小米、华为、OPPO、vivo 这些大牌手机都打好招呼,让他们给自家的应用商店多准备一点资源,以防春晚当天人们冲进去下载京东 App,把他们给打挂了。。。

常亮还专门跟爱人孩子吃了一顿温馨的家庭晚餐——因为他知道,春晚当天自己一定会在公司跟大家一起作战,没办法回来陪家人。。。

就在一切都做妥当,第二天常亮准备上班时,做梦都没想到的事情发生了:

本小区发现疫情,暂时封闭,所有人员在家观察,如无新增病例,大年初四解封。。。

这下好了,想不陪家人都不行了。

这可好,后勤大队长出师未捷先“隔离”,对于春晚红包事业绝对是个打击呀。。。

不过,好在技术宅们个顶个厉害,马上另一位同事李爽就接过了指挥棒,负责春晚当天现场的肉身协调活动。

李爽


“常亮被隔离,你当时担心吗?”我问李爽。

“担心。”他说。

“担心他的身体吗?”我问。

“不不不,常亮老师的‘死活’不重要,我怕的是因为他,导致我们整个项目组都被隔离了,耽误全国人民春晚的红包大事。。。”李爽哈哈大笑。

就在这样团结有爱的同事情谊中,日历翻到了1月31日。

技术宅们终于迎来了那场终局之战。





(七)洪峰 


那天来到春晚作战室,李爽他们的第一件事就是把常亮的照片找出来,放在两个花篮中间。

常亮老师与我们同在,阿弥陀佛。。。



当天下午两点,召开了最后一次全体会议,大家最后对了一次预案。

遥想1月4日那天第一次全体会议,仿佛就在昨天。只不过,那时候大家心里发颤,现在大家全部胸有成竹。

18:18分,京东 App 发出了对所有用户的全员推送,提醒大家等会儿抢红包,也为吸引更多人提前打开自己一次做最后的努力。



8点,春晚准时开始 。

虽然每个作战室里都有一个电视(或者电脑)在播放着春晚。但是所有人都不能根据自己看到的情况擅自做决策。

他们面前都摆着一台对讲机。

所有的重大决策,统一由指挥部通过在春晚演播室现场的同事沟通之后,通过这个对讲机下达。



第一个歌舞节目一过,对讲机里就传来了声音:第一次红包即将开始,各部门准备。

周光他们知道,洪峰即将抵达,云舰身前的帷幕缓缓拉开。

按动键盘,触发变轨。100w颗核心停下手中的大数据和电商业务,光速“换装”,涌向红包岗位。

下一瞬间,成千上万个子程序开始启动,每个程序都挂着肩章,在云舰上有序穿梭。

而在全国各地,人们开始疯狂抢红包。

兵来将挡水来土掩,阿基米德系统在几分钟之内累计调动了200w个应用程序。屏幕上的抢红包请求洪峰一浪跟着一浪,云舰向前狂奔,披荆斩棘。

几分钟后,最大的洪峰过去,对讲机里发出“换挡”指令,周光指挥大家把100w颗核心释放,归还给大数据和电商业务。

云舰第一次证明了自己拥有百万级程序调度能力。

“第一个红包流程走完,我们心里就有底了。”

赵建星回忆。



在京东的预测中,峰值会在第二次或第三次红包到来。

在家“休假”的常亮迎来了最紧张的一刻。主持人口播开始抢第二轮红包,来自全国各地的洪流再一次拧成一道波浪,冲向京东的机房。

大门够不够宽,商场够不够大,云舰够不够坚固,所有的验证就在此一举。

时间一秒一秒过去,机器轰鸣,所有人屏气凝神。

直到对讲机里传来了指挥室的声音,第二轮红包结束。云舰再一次换挡,把计算力还给大数据系统。

李爽重新获得了呼吸的能力,他手里厚厚的七十页预案,里面准备精良的降级措施一个都没有用到。(真是浪费。。。)



直到第三次洪峰过去,一直在作战室沉默的老樊,嘴角才又露出了标志性的微笑。

看着平稳的后台数据和忙碌的人群,老樊突然有点出神。

不知怎么地,他回想起自己刚加入京东的时候。那时候他比现在年轻许多,“618购物节”都还没有,只有618的雏形——零点抢购活动,这活动被用户开玩笑称为“月黑风高”。

“月黑风高”长这样。


当时创始人刘强东也盯在屏幕前面,亲自拍板优惠力度,还跟网友互动聊天。

老樊那时候负责数据库,因为经验不足,人手也不够,他带着几个同学忙来忙去,有时候一点儿没考虑周全,系统就被搞崩了。

可领导和同事都没有埋怨,反而愈挫愈勇,相互鼓励,一起研究扛流量的新办法。

这么多年过去了,身边的同事越来越多,京东的技术越来越好。也不知从什么时候开始,各种大风浪都这么扛过去了。



零点钟声敲响,老樊从回忆里退到现实。

第七次,也是最后一次红包刚刚顺利发出。屋内欢声笑语,窗外夜凉如水。

云舰缓缓降速,最后一次归还计算力给大数据系统,《京东的春晚战事》,也就这样走到了尾章。

回头看,这群技术宅只完成了最精简的主线任务,所有的支线——故障、降级——一个都没有上演。。。

看到后勤的同事们端过来热腾腾的饺子,他们才想起来,自己还没顾得吃晚饭。




(八)一座“基础设施”的使命 


要我说,本次春晚最大赢家肯定是常亮,他竟然同时完成了两个心愿:

第一,在家陪媳妇孩子过了年;

第二,有了值得吹十年的素材,今后谁也不能小瞧京东的技术人。

常亮唯一担心的就是一件事儿:

我们这次发挥得这么好,以后再跟领导要预算扩资源,领导肯定会说:春晚没加资源都能抗住,现在还要什么资源?

他笑。

虽然这是玩笑,但背后折射出的却是一个更本质的技术未来——像“七借七还”这样超大面积的“离在线业务混布”,将会成为常态。

李爽提醒我,应该用“成本”角度来看待这场“春晚之战”。

假设原来1w个 App 请求,我们承接的成本是10块,经过春晚,今后同样是1w个请求,我们的成本就变成了5块。这才是我们更看重的“技术红利”,才是更稳固的,更永恒的进步。

这些技术进步,都会用到京东云里,为全社会提供服务。

他说。

京东用最“抠门”的方式完成了一次春晚。但抠门背后,折射出刀锋利润;而刀锋利润的背后,恐怕隐藏着一个更大的梦想。

那就是:京东一直希望把自己建设成社会的基础设施之一。

无论是京东零售,还是京东物流,抑或是京东云,尽管有的是卖货,有的是送货,有的是提供计算力,做的事情不尽相同,但从本质上看,他们都在试图用最低廉的成本,完成最极致最标准的服务。

而极致标准的服务,才能如水电一样,成为一个社会运行的必备品,成为不假思索,拿来即用的基础设施。



虽然我们的故事一直在讲春晚,但其实你我都知道,春晚红包无论发掉多少钱,本身都没什么好鼓吹的,也应该被我们迅速忘记。

但以此带来的社会基础设施的成本降低、效能增高,才是每个人都能享受的科技荣光。

由此回望,这些技术人的努力便无比珍贵。

一个人,若想成为自己的英雄,尽可以在追光之下纵身一跃。

而一群人,若想成为时代的英雄,却只能在岁月的河岸边日复一日地铺路架桥。



延伸阅读(点击即可进入):
《百度的春晚战事》
《云计算的屠龙者不能成为恶龙》


一个彩蛋:
文中很多图片里都出现了手机,摄像头的位置被我换成了浅黑科技的 Logo,有没有同学发现呀~(本来我想等大家自己发现,但怕没人发现太尴尬。。。)
祝大家新年快乐,新的一年加油啊~





抠门

是一种艺术


再自我介绍一下吧。我叫史中,是一个倾心故事的科技记者。我的日常是和各路大神聊天。如果想和我做朋友,可以搜索微信:shizhongmax


哦对了,如果喜欢文章,请别吝惜你的“在看”“分享”。让有趣的灵魂有机会相遇,会是一件很美好的事情。


Thx with  in  Beijing


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存