走完勤恳低调的牛年,人们对虎年抱有更美好的期望。
对于太多中国人来说,虎年春节是太特别的一个。
许多人选择“就地过年”,不能返乡的年轻人凑在一起,学着备年货,学着包饺子,做出一桌像模像样的年夜饭,在视频连线与抢红包中传递着年味。
因为疫情防控坚守在岗位上的一线医务人员与基层工作人员,则逆行而上,筑起一道道抗疫防线。城市暂时安静,内心却火热温暖。
而对京东的工程师们来说,这个春节则特殊在,他们用自己的方式参与了央视春晚,用互联网与云计算的力量为亿万观众的互动体验保驾护航……
4个多小时的春晚,一场全民的狂欢、亿万家庭的温暖春节、691 亿次手机互动,背后是上万名京东人除夕的坚守,几十万京东人648小时的协同。
新春伊始,我们记录下 15 亿京东春晚红包背后的故事,将默默守护你抢红包的中国工程师故事,讲给你听。
「超3000名京东技术人员参与了春晚项目的技术攻关与保障工作」
紧锣密鼓
”从昨天零点起,我们就进入状态了,基本睡不着觉,特别激动。”
2 月 1 日00:21分,央视虎年春晚的最后一轮红包互动顺利结束,负责春晚项目京东云技术保障的李爽顾不上吃口饺子,只想在原地兴奋地大叫几声。“我们的努力没有白费!”
和李爽一样在公司度过除夕夜的工程师有近 2000人,为了这一夜亿万观众能顺畅地边看节目、边抢红包,他们已经奋战了 27 天。
「李爽与京东云春晚保障团队除夕备战春晚」
给全国人民发红包,是件骄傲的事,更是件有挑战的事。
而京东的这一战,时间紧、任务重。
央视春晚作为一年一度最受关注的全国性晚会,红包互动参与量大、覆盖范围广泛,以往各家合作伙伴均需数月准备,往届春晚仅红包互动一项,就已是对云厂商的一次大考,今年的春晚互动的链路更长、场景也更复杂,观众一边抢红包、一边逛好物,与此同时在线下,物流供应也得保障。
每一个链路环节的增加,对春晚场景的复杂度和应对难度都是指数级的增长,从前端网站、订单、结算、支付、搜索、推荐,到后端的仓储、配送、客服、售后各种业务系统都面临着前所未有的挑战。
而许多京东人在元旦假期结束后的第一天,才得知有可能与春晚合作,他们一秒也不敢耽搁,火速成立项目组开始筹备。因为时间紧迫而任务难度太大,京东投入了比常规大促更多三、四倍的人员与精力。
常亮获得这一消息的时间,比大多数京东人稍早一些。
那时,他正在京郊长阳的滑雪场与家人跨年。“我接到电话,说第二天早上到公司紧急开会,都没说什么事,跟家人说你们接着玩,我就自己开车回公司总部来了。”常亮是这次京东春晚项目IDC基础保障的1号位,主要负责春晚项目数据中心及服务器运维等管理,也是春晚项目组负责京东云资源调度的核心负责人之一。
合作正式宣布的第一时间,常亮就与家人分享了这个好消息。“家人都特别理解和支持,虽然春晚当天可能没法团聚,但是实际上家人打开 App,能顺畅地把红包摇出来,就是我们一起完成过年的仪式感了。”
一场真正的战斗从 1 月 5 日正式打响。
“对于技术人来说,春晚(红包)项目是很有诱惑的。”常亮说,“你很难碰到这么顶级的流量,其实京东 618、京东11.11的流量已经很大了,但是春晚互动的流量则远超其他时刻。”
“诱惑”的同时,焦虑也随之出现。
在得到消息后的一周时间里,研发部门对项目进行了非常谨慎的反复评估。
对于团队来说,最大的挑战就是在现有的资源配置下,应对全球观众同时参与红包互动、线上购物同时并发的流量洪峰。
初步的判断并不乐观。“我们盘点了一下自己的资源,距离去支撑这种规模的流量洪峰尚存在差距。”如何在短时间内填补上这不小的差距,就是展示技术储备的时候了。
京东云拥有全球最大规模云原生实践,依托云原生数字基础设施和混合多云操作系统云舰,秒级调度近300万个容器、超1000万核算力资源。
“用户每一次访问我们都会精确地去判断他对我们系统的消耗,”在 19 天的筹备期里,京东云舰团队将“开源节流”四个字发挥到了极致:“我们要做到是去压榨每一个CPU的时间片的计算资源,同时我们会去压缩在网络上传输的数据包,让我们数据包尽量的小,不浪费一个字节的网络带宽,这样才能做到从云的计算、存储、网络三个方面都最大化的利用现有的资源。”
腾挪
「樊建刚在筹备会议上」
京东是个典型的长跑选手,很多技术项目经历了10年以上的持续研发和优化,打磨出真正卓越的技术成果。
樊建刚就是这样的长跑选手,见证着京东从苏州街银丰大厦仅占半层的办公室、迅速扩张到一层、两层、三层,后来到北辰世纪中心、朝林大厦,再到现在的亦庄总部。
春晚红包项目,则是樊建刚在京东见证的又一大型里程碑。
遇到需要大型算力的时间节点,提前预估需求、新增算力资源是常见的做法,最万无一失的做法就是准备大量服务器甚至冗余。而面对数亿观众瞬间涌入京东 app 的流量潮,京东采用的是并不那么传统的方法备战——“腾挪”。
“考虑到现实供应链紧张以及春晚结束后的资源利用情况,京东云最后的决定是在几乎不增加服务器资源的情况下独自支持春晚,避免为单个项目投入大量硬件成本。”樊建刚直言,在集团各个业务间想尽办法“腾挪”,是一个以云技术为底座的科技公司能做也应该做的。
这也是对云舰产品乃至整个京东云技术实力的一次空前大考。
具体而言,春晚开始之前,京东云需要完成超千万核资源的筹备,为春晚红包场景临时搭建数字底座。而春晚开始之后,伴随着主持人每一次口播红包互动,京东云需要在京东 App 完成从购物模式到红包互动再到购物模式的切换,分毫不能差。
「张金柱与京东云产品研发部工程师讨论春晚项目」
对于底层资源的调度,京东在一年又一年的京东 618、京东11.11中持续历练,但像春晚这样高密度、高精度的调度,京东还是第一次正面迎战。“摇红包就一分钟,很多资源要求秒级要到位,之后还要秒级释放给其他应用。”也就是说,云舰不仅仅要保证每一个用户都能够快速抢到红包,而每一个在这之后切换去浏览商品页面、下单购买的用户体验,也都要能够保证。
常亮介绍说,光是京东内部光腾挪、整合、缩扩容就大概整出了数十万核,如果折算成实体服务器,就相当于接近一万台机器。
回头看来,这次春晚互动项目不仅仅是一场京东技术实力的展示,也是一次中国云技术进展的展示。
“如果说以前使用云,就好像使用自来水,让大家可以共享我们的算力资源、存储资源、网络资源,但资源永远是有限的,我们不可能为了一次十倍、或五倍的峰值一直储备对应的资源,峰值过去之后就让资源在那里睡大觉。”常亮说,“这个时候云的特性,也就是资源的弹性使用和缩扩容,就完美地体现出来了。”
关于常亮口中的“资源的弹性使用”,支持京东春晚项目快速研发的京东云 T-PaaS 及中间件的张金柱感触最深。
云原生技术强调的弹性、多租户、按需使用、按量付费的能力,是云技术的进一步发展,这些能力赋予了业务开发更强的敏捷性。“业务研发人员不用担心底层资源的管理和技术的复杂性等问题,从而将更多的精力放在应用研发上,对研发的效率提升大有裨益。”他说。
他所负责的部分简单来说,就是将那些暂时闲置的资源,快速扩容到整个系统当中。
如果将红包项目比作一个需要让数以亿计的观众快速进入到一个场馆来观看比赛的话,中间件其实就相当于场馆的各个通道,配合着资源调度系统,张金柱需要带领团队快速、合理地打开这些通道,承接涌入的人流,保证大家有序、可控的进入到自己的座位观看比赛。“也就是保证大家能够顺利的参与到红包的活动中来。”他说,“这样才能够真正实现整个系统的弹性,如果只是将应用做到弹性,而中间件和数据库等没有对应的弹性能力的话,系统还是无法应对如此大的流量的。”
把“人算”做到极致,
迎接“天算”的考验
「除夕夜奋战在一线的京东云程序员」
历年春晚都经过反复彩排,而在京东备战的 19 天(1 月 5 日-1 月 23 日)里,工程师们也同样为春晚红包项目“彩排”了七次。
在技术人的字典里,这样的“彩排”有一个专有名词——压测。
第一次压测从 1 月 6 日就开始,直到 1 月 24 日第七次压测完成,常亮带领春晚保障团队度过了几乎不眠不休的技术攻坚。
在春晚开始前三天,常亮说京东云的春晚保障目标是想“把人算做到极致,去迎接天算的考验”。
“人算”是指通过极致的测算、数据驱动,包括组织保障、流程机制预演等,将所有的需求控制在一个大家都可以接受和控制的范围之内。
理论上来说,这样一来,压测做一次和做十次结果都有一样。“用计算机学的术语就是系统越趋近于幂等性,所得的结果都可预期。”
而应对那些“天算”——那些突发的未知情况,快速响应机制和完备的组织、决策机制则是为之兜底的方案。
为了更好地解决应急挑战,京东首创了“应急剧本预案”模式,重点排查和预防TOP 级困难,从前台、中台、后台三大块为春晚设计了应急演练剧本。通过一次次真实剧本演练,团队对整个春晚系统的情况有了形象的预测认知。
智能客服“抢”下的时间
在京东春晚项目一个个打磨的剧本里,智能客服有着其特殊的位置。
一个链条上,所有业务都是联动的,牵一发动全身,报警精确到秒,从而能够快速反应。常亮举了个例子,“比如运营之前配了一万个红包,现在因为管道变细了,减到三千,客服一下子有大量的客户问询,怎么办?靠智能客服系统,能处理 95%。”
这 95% 就是京东智能客服团队运用前沿的多模态交互技术为人工客服抢下的时间。“通过客服系统把这个一秒钟内发生的警报,变成三秒,那就变成三分之一压力,能变成十秒就更好,就变成十分之一的压力。”
「刘丹及智能客服团队开会对春晚项目进行部署」
在京东经历了十年长跑,京东 618、京东 11.11 对于智能客服产品部前台负责人刘丹来说已经是“家常便饭”,但在得知要与央视春晚合作时,他也还是难掩兴奋与紧张。
兴奋在于,“不是所有大厂都有机会在春晚舞台上将产品、技术、经验、能力展现给全国人民”,紧张则在于,团队对于服务流量是“京东 11.11 十余倍”的估计。
“为什么红包抢到的这么少?为什么我这次没有抢到?什么时候可以再抢?抢到了在哪里查看、怎么用?这些问题,客户都会在第一时间通过智能客服来咨询,普通用户可能就问一句话,但十几亿观众就可能会有上百种问法。”刘丹说,“这都给智能客服带来了新的挑战。”
挑战很大,但因为大促“常态化、日常化”,智能客服团队常年有一支备战小组。这一次,智能客服产品线又在备战小组的基础上成立了一支快速响应小队,针对各个系统、各个模块、各个业务单元进行梳理和监控。“就像火箭发射成功一样,不能保证任何东西都是 100%,但是必须做出 200%的努力来保证成功,”刘丹说。“这会是我们在职场度过的一个相对来说、很难忘的春节,也希望能给全国人民一个好的答卷。”
“一切顺利,超出预期!”
幸运地是,在春晚当天,一切都比想象中顺利。
服务器扛住了一次次流量洪峰,写在“剧本”里的那些突发状况并未发生。
李爽悬了好多天的心,在春晚第三轮红包发完的那一刻,也渐渐放了下来。
如樊建刚所总结的,整个春晚四小时之间,京东 app 会在交易模式和红包互动模式完成了十多次切换,挑战了极限资源不同场景的切换。
一次、两次、三次、四次……一次次顺利的场景切换,意味着离春晚项目的顺利完成更进一步。
从春晚保障团队所在的会议室眺望出去,北京的万家灯火尽在眼里。家家户户吃年夜饭、等待春晚开始的时间里,聚集了上百人的会议室几乎鸦雀无声,人人对着面前的电脑,偶尔抬头看一眼会议室前方的作战大屏。“大家都非常集中精力去看自己的系统,确保今晚的春晚互动活动能够顺利进行。”
氛围最紧张的是前三轮红包互动的时候。“因为前期的压力测试、对于现场容量和弹性有了很好的准备,京东云和各个模块配合非常流畅,才能保证今天这么顺利的完成。”李爽总结道。
也是在那之后,工程师们才有心思看一样春晚的内容,李爽则抽空点击了家人发来的红包分享页面——“我帮她点一下,她就能多领一次红包。”
在那一刻,在京东总部为系统提供的支持保障的工程师,与看着春晚的家人,在“抢红包”这件事上隔空交汇了。
「京东云工程师庆祝春晚互动活动顺利收官」
如今,春晚红包互动已经进入到第 7 个年头,经过仅仅 19 天的综合备战,京东云在几乎不增加服务器资源的情况下独自支持春晚,经受住了春晚史上最长的红包互动和最复杂应用场景的严酷考验。
春晚是一次技术大考,参与春晚红包活动对一家公司的技术实力是一次不小的考验。在物质匮乏的年代,春晚是企业的名利场。而在云技术蓬勃发展的年代,春晚是科技公司最好的练兵场,也是云在各行各业应用能力的一次生动展示。
虎年刚刚开始,这个好头,京东成功地开了。
更好的未来,在云之上。