【51CTO.com原创稿件】双十一电商购物狂欢节马上就要到了,相信有很多朋友跟笔者一样,早早就选好了自己心仪的产品,期待在这个促销的节日里能够花最少的钱买到自己喜欢的产品。不过,在这个万众期待的日子里,电商技术人员面临的压力可不小。那么,电商平台背后的技术工程师,是通过哪些方法和措施来保障双11流量高峰带来的挑战的。笔者近期就这一话题,采访了京东商城总架构师刘海峰先生,就京东在技术上保障双11的一些做法,进行了分享。刘海峰先生告诉笔者,今年双11备战的思路,可以用四个关健词来描述,分别是故障模拟演练,全链路的压测,夯实基础,增强智能。
一、用暴力机器人来模拟演练,提高系统抗压能力
刘海峰先生认为,双11对电商平台主要考量两个能力,第一是故障的应对,即时响应的能力;第二是对于大流量的抗压能力。在两个方面,京东是分别来应对的。
第一,在大规模故障演练方面,引入一个新的方法,包括机器、网络、模块、服务、中间件、数据库等都是有针对性的进行演练,所有设想的故障,全部由工程师团队来模拟。在演练方面,京东分为两组,包括任何一个体系,一个业务,都会分为两组团队,由一组团队来制造故障,另外一组团队做为故障的解决者和响应者,来考察各级力度发生的时候整个基础团队的检测、响应、处理还有恢复的时间,要求所有的故障能够做到不同力度的处理,小的故障不需要人为介入,大故障人工介入在30秒之内能够完成。大促之前的两个月,故障演练会紧锣密鼓的更加密集的来开展,以提高我们对大规模故障的容错能力。
第二,大促期间考量最大的是系统的峰值能力,例如京东在11月1号和11月11号的凌晨都会进行大规模的抢购和促销,瞬间和几秒钟流量非常大,怎么样用有效的技术手段来应对大流量,怎么样很好的规划系统都是比较难的问题。今年,京东创新性引入新的技术——ForceBot,军演机器人,暴力机器人。通过模拟人的行为,机器人通过程序发起大的流量进行全链的压测,最多会发起几百万,几千万的并发链接,与真实用户的操作一样,浏览、搜索、加购物车、下单等等,通过机器人模拟大流量峰值时候的场景,不仅读压测,而且写压测,支付订单等这些环节。为了做好这些工作,16年对系统做了很多改造,需要整个系统支持虚拟的银行,虚拟的仓库,虚拟的用户等等,因为做这种模拟的机器人压测,会产生很多脏数据,需要整个系统容忍,所以整个压测是线上进行的,是通过机器人模拟用户的行为,真实的压线上的,而且整个全链路联动的,这个工作对我们的整个大促是非常重要的环节,也是今年第一次呈现。
二、夯实基础,增强智能,提高用户购物体验
谈到京东技术体系的创新,刘海峰先生表示,经过多年的积累,京东商城形成完全自主研发的技术的对战。在技术架构层面,夯实基础,京东多数据中心的架构已经稳定运行近两年,中间件和容器都是利用自主资源,研发中间件的技术和服务框架等等。存储架构方面,过去几年里京东积累沉淀了自己以内存为中心的存储体系,这是最核心的系统,是半结构和结构的存储系统,几乎应用在京东所有的动态内容的数据存储上。以内存为中心极低的延迟极高的存储量,适合电商的场景。
在业务智能化建设上,京东把机器学习人工智能的技术广泛应用到京东商城各个业务环节,本质上是用技术手段辅助人,增强业务的智能性。此外,我们把机器学习用到商城很多业务环节里面,让网站更智能,生态管理更智能,采销更智能,物流更智能,在网站和用户的体验这个方面更加的个性化,每个人看到的东西是不一样的。当然,客服机器人还能够有效缓解人工客服巨大的压力,特别大促期间,商品做非常丰富的情感分析,辅助我们长期商品的管理和运营,会对POP商品做全自动的信息的合规的检查,节省数百个人力的人工。
另外,京东的订单技术,还可以降低因为取消订单给我们物流带来的成本。大家知道,大促期间会有盲目消费的可能性,比如一冲动就买了三部苹果7,但是下单之后突然想到其实我还没有女朋友,只能送爸妈每人一部,需要取消订单。然而,这时订单已经下到库房,库房已经拣货,这就会增加物流成本。如何解决这一问题呢?京东开发了订单模型,会对订单预测打分,如果预测这个人这一单很有可能在5分钟之内取消,那就会让他在我们的管道里冷静5分钟。当然,如果预测这个人这一单被取消的可能性只有万分之一,就会快速的下到库房。这个技术,会给京东整个物流生产降低非常高的成本。
京东商城研发副总裁马松先生表示,在今年双11备战方面,京东今年也像往年一样,大概对2200多个系统进行了梳理,对一万多个应用一一做了排查,也做了大量的应急预案,假设的各种情况发生的时候怎么样能够快速的恢复我们的系统,恢复我们的能力,保证我们的可容性,保持我们的系统稳定性。在保障方面,京东有五千人战斗在研发的第一线, 24小时处于备战状态,并且进行了数百次的压测,抗洪能力,等待双11到来。