夯实架构到智慧备战 揭开京东双11技术秘密

2016-11-28 19:44:44 来源:科创之家 发布者:余娟娟 阅读: 我有话说

 在刚过去的双11大促中,京东交出了出色的答卷,这其中一大功臣便是京东技术团队。“双11是电商企业整体技术能力的一个缩影,对技术团队来说是一场非常严峻的考验,因为双11的流量比较大,而且很难预期。今年京东技术团队通过资源规划、夯实基础、增强智能、故障模拟演练、全链路压测等五个步骤有序的进行了备战,确保了系统的稳定运行,保障了用户的顺畅购物体验。”京东商城总架构师刘海锋在SDCC大会上如是表示。

  资源规划,双11备战排头兵

  资源分配在双11备战过程中是特别先行的一步。双11流量对于系统来说很难提前预估,每个系统都可能出问题。如果可以给每个系统都提前扩容十倍,肯定是最安全的,但这同时就意味着要同步扩充十倍的机器,这与资源利用和运营成本是相悖的。通俗的讲目标就是如何将有限的计算资源分配给期待有着无限机器需求的系统们。

  京东的技术部门在初期资源分配前期,通过对历年的数据分析发现,双11流量最大的时刻实际上是11月11日凌晨的前10秒左右到0点之后的一小段时间,那一刻可能是前一秒的十几倍甚至二十几倍。京东内部网络流量的变化也展示出流量走势基本相同,但是脉冲并不会达到十几倍,可能也就1.5倍。刘海锋认为,这个情况说明了流量经过系统层层的缓冲和处理,各方面的调用会把大规模的压力平滑掉。京东技术团队经充分调研,根据系统的不同对资源分配进行了区分对待,靠前的系统多倾斜,越往后要集约考量,按照73分的原则进行了分配,这为今年系统的平稳运行打下了坚实的基础。

  刘海锋根据调研结果将系统分成两大类,一类是平稳型系统,这类系统的特点是用户浏览量比较平稳,比如商品详情、实时价格、库存状态等,约90%都是此类系统,大约分配70%的资源;另一类是毛刺型系统,像抢购、秒杀、下单等,可能会瞬间达到极高的流量,虽然仅有10%左右的系统属于此类型,但京东会给予高达30%的资源配置,双11的平稳运行也验证了这种分配是正确的决策。

  夯实基础,打好系统架构坚实地基

  基础架构就像房子的地基,是系统运行的基础保障,一旦出问题会影响无数的应用。经过多年的经验积累和完全自主研发的技术对战,京东的基础架构可以说已经成为中大型电商的典范。

  其中,京东多数据中心的架构已经稳定运行近两年,实现了全面上云并容器化,充分利用Docker简化了应用的部署和扩容,极大地加快了资源交互的速度和灵活性,单数据中心就具备承担整体京东流量的能力。

  京东自研中间件技术JMQ连接了很多系统,包括库房的整个生产行为信息都通过JMQ发送;而且京东使用了应用异步化,可同步入两台不同机器的不同磁盘中以保证数据不丢失。刘海锋表示,异步处理还能把流量压力适当地平滑化,如订单生产过程中,很多下游系统关心订单系统产生的订单信息,以往只能通过订单系统分别调用其他系统的接口实现,这样使得峰值流量特别大,处理时间也会很长;现在通过JMQ的处理,一方面可以让工作并行开展,另一方面也可以平滑流量和负载。他透露,现在JMQ可以很好地应对“日均消息数过百亿”,完美支撑了越来越复杂的业务模型。

  京东内存为中心的存储体系JIMDB,几乎应用在京东所有的动态内容的数据存储里面;它可以保证数据极高的可用性,实践证明非常适合电商场景。

  高性能微服务框架JSF,几乎京东所有的核心应用都在使用JSF,目前接入实例超过11万,日均调用量已过千亿。

  增强智能,让系统更聪明

  “机器学习和人工智能如何应用到电商场景中,简言之就是如何将原来人工操作的事情通过人工智能或者机器学习去做,即让采销更智能、让物流更自动化,”刘海锋在演讲中用了一个更形象的名字描述这个过程——增强智能。他列举了两个生动的案例,一是订单冷静,对于冲动型消费者来说,可能刚下单完成购买就会后悔,而京东迅捷的履约系统会在用户下单后迅速开始库房生产,其间用户取消订单就会带来运营成本提升。京东的订单系统会基于用户的日常消费习惯和以往的订单数据等进行判断,是立刻生产还是将其放入冷静管道适当冷静,通过智能预测降低运营成本。另一个是销量预测,通过大数据、机器学习等技术进行智能预测,做到提前备货、规划、调度先行,不仅提升京东的运营效率,更优化了用户体验。今年京东双11凌晨第一单从下单、出库、配送、用户签收仅用了12分31秒。

  Chaos monkey,大规模故障演练确保每个系统的完美性

  对故障的响应速度是双11期间考验技术团队能力的一个重要指标,今年京东启用了全新的故障演练模式Chaos monkey, 对机器、网络、模块、服务、中间件、数据库等环节进行针对性的演练。“对每个体系和业务都分为两组,由一组做故障的制造者,另外一组团队担任故障的解决者和响应者,考察不同力度故障发生的时候,整个团队的检测、响应、处理还有恢复的时间。要求小的故障不需要人工介入,大的故障30秒内修复。”刘海锋说。

  军演机器人+全链路压测,清除全系统中的每一点瑕疵

  大促时最严峻的考验莫过于峰值流量。大促前备战时几乎所有的电商公司都会进行压测。但是京东通过以往的经验发现两个问题:第一,电商的系统链路很长,但是压测时往往是每个团队单独进行,无法有效检测整个链条是否有问题;第二,这种压测和消费者真实的消费差距太多,很多时候压力不够。今年京东启用了ForceBot 军演机器人技术,在系统中将写好脚本的机器人部署在全国多个节点,让它们模拟真实用户行为,比如搜索、浏览、加购物车、结算、支付等,模拟双11大流量冲击,有效检验了整个购物链条的抗压能力,确保万无一失。

  刘海锋表示,京东致力于给用户提供简单快乐的生活,尤其是每年大促时要保障海量订单涌来时用户的购物体验,这对技术团队来说是挑战也是前行的动力。通过大数据、机器学习、人工智能技术的商业实践应用,京东不仅夯实了从容应对海量订单的技术平台,更打通了完整的智慧化零售产业链,在不断优化用户服务、打造智能化商业体的路上越走越快。

版权声明:凡注有"科创之家"的稿件,转载必须注明来源为"科创之家",来源标注其他网站的所有内容,与科创之家无关。其原创性和内容未经本站证实,本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。如发现本站文章存在版权问题,烦请用邮件发送至2385788327@qq.com,我们将及时进行删除处理,谢谢合作!
关于我们 | 联系我们 | 免责声明 | 诚聘英才 | 广告招商 | 网站导航
浙公网安备 33028202000236号 浙ICP备16040543号 2011-2017 运营单位:慈溪市易创信息技术有限公司 科创之家 版权所有