京东11.11:大考之前的三板斧

来源:InfoQ 作者:魏星
  

写在前面:尼尔森公司10月底发布了《中国电子商务行业发展“杭州指数”白皮书》,数据显示,2014年底,中国网络零售额交易规模已达133,699亿元,居全球第一。2014~2015年,移动在线购物者占比从57%升至71%;跨境电商从32%提升至63%。在国内电商企业一轮又一轮的市场动作下,“双11”俨然成为全国人民的狂欢节。在今年的“双11”竞技场上,InfoQ选了国内较有代表性的电商企业,一探支撑万亿规模交易系统背后的技术。本文将介绍京东登上“双11”舞台所做的“台下十年功”。

三大战役与两次大促

在“双11”之前的媒体交流会上,京东透露了其研发体系的“三大战役”,即换底计划、多中心交易计划、京东大脑计划。据InfoQ了解,“6∙18”之前京东大部分业务是运行在物理服务器之上的。为了应对飞速增长的业务,和所有相关企业一样,京东面临业务云化的迫切需求。

技术方面,京东云经过几年的打磨,其私有云已经十分成熟,“6∙18”之后京东开始把网站页面、订单交易、仓储物流、数据库、Redis等悉数迁移到了京东云,这也是继美团云之后笔者听闻的又一例全部业务入云的电商公司。京东称之为“换底计划”,该计划主要包括新数据中心交付、线上业务梳理、部署(应用程序、中间件、数据存储)、线下压力测试、线上小流量测试、切部分或全部流量稳定运行。迁移过程中各个方面的工作量都很大,特别是业务系统迁移。

与之并行的另一个计划是多中心交易系统,随着京东定制化高密度新机房的建设,旨在提升业务效率的多中心交易系统一期工程交付使用。据InfoQ了解,京东新机房60%的机器都部署了OpenStack弹性云,其余用作数据库存储和部分第三方合作业务。

“三大战役”之一的京东大脑最早被称之为“千人千面”,随着京东在机器/深度学习方面的不断投入,基于用户画像的京东大脑在各业务子系统中的促进作用越来越大,从商品推荐到销售预测不一而足。

京东集团高级副总裁、研发体系负责人张晨在接受媒体采访时说,“6∙18是小考,双11是大考。”二者对于京东技术研发来说是一个宝贵的经验,当技术团队经历过这些考验之后,整个团队会更加成熟和自信。

私有云与容器技术的结合

“6∙18”之前,京东有一部分业务由弹性云托管,其Docker的应用数刚刚突破1万。“6∙18”之后随着弹性云项目的推进,特别是新机房建设与双11扩容,京东全部业务的约8000个项目绝大部分都是通过容器来发布运行,目前京东已有6万多个Docker实例,随着双11部署的弹性资源池,京东内部对一键扩展后的Docker实例预估为10万多个。由于目前京东90%的业务都是Web层面,其负载都不会太高,因此不会遇到高密度容器的性能瓶颈问题。

大规模集群对软件系统的架构是一个很大的考验,经过约三年的积累,京东弹性计算云解决方案选择基于OpenStack和Docker构建,在性能优化与可扩展性方面进行了大量定制,使之能够适应京东自身的业务特点。例如,私有云的集群管理方面京东并没有用使用K8S、Swarm等开源框架,而是自行研发了一套管理系统。除此之外,京东还使用约两万Docker实例运行其内存数据库JIMDB(对此InfoQ也将进行详细报道)以及数千个MySQL实例。针对中间遇到的挑战,“没有什么特别的应对策略,就是快速解决问题。”京东的一位技术负责人如是说。

移动端的运营优化

数据显示,京东6月18日(00:00-24:00)当日下单量超过1500万单,相比去年同期增长超过100%。其中,移动端订单量占比超过60%。毫无疑问,双11对移动端的挑战将会更大。因此,京东无线端相关部门从8月便开始启动双11筹备。

首先,10月上旬V4.4双11特别版APP顺利发布,该版本对双11营销需求进行了针对性升级和开发,对无线端红包流程及无线端众多双11特别活动(超级团、一分钱摇好礼、爆款提前抢等)进行了关键流程的升级以及功能的开发。同步的无线端的CMS后台、消息通道、通天塔系统等运营支撑功能也在双11之前进行了优化及重要发布。

其次,无线产品、研发、运维测试、设计各环节对运营进行了大力支撑与协作。产品端调配大量人力使APP端的各项活动体验得到了很好的保障;研发端根据移动端网络特点进行接入网络优化、持续精简内容、加载策略优化等,通过移动组件化建设、无线登录、push触达、开放化平台能力建设、无线监控测试平台、远程插件下发等数十项优化保障双11的进行。

最后,运营组织策划方面,无线侧在8月开始即制定了“活动营销线”、“核心频道线”、“采销联动线”三大重点运营主线齐头并进的策略。从数据上看,预热期通过发券及多种互动营销活动带动了APP DAU不断上升;采销联动为APP大促各主分会场、互动营销活动提供和采销的对接选品支持,除四大实物事业部之外,金融事业部、生活旅行事业部的各项业务也和移动端进行了深入的整合营销。APP端的纯促销运营模块占APP的比例突破至23%,整个运营模块占APP的比例接近30%。

无线双11的准备是集合了产品、运营、研发、测试、运维、设计等整个无线团队的通力合作,在多个环节发力,为APP在双11期间积累了大量的优质客户。

实时监控与安全保障

如果把”双11“比作一场战役,监控系统无疑就是这场战役的指挥系统。虽然我们无法看到各大电商的实时监控大屏幕,但笔者还是设法了解到了一些相关信息。京东集团高级副总裁、研发体系负责人张晨在接受InfoQ采访时表示,监控是京东的重点,对于任何突发的情况,京东准备了1500多个预案并且能做到60秒之内解决问题,没有很好的监控设施这几乎是不可能的。

针对如何做到60秒之内解决问题,京东一位匿名的技术人员回复说,响应速度分为定位问题和解决问题两个部分。定位问题部分,取决于各个团队对于自己系统架构的熟悉程度,这要通过平日演练和线上实际故障来提升团队的响应速度;解决问题部分比较简单,各个团队的线上系统都有成熟的路由降级切换开关。

以京东现有的6万个容器监控为例,主要分为两个方面,即容器层面的CPU、内存和I/O等,业务层面的API性能指标等。各业务子系统可根据自身吞吐量和响应速度来设定阈值。

  1. 从资源层面探测容器是否可用,并触发弹性事件。对容器状态的探测主要是在物理机上连续发ping包,并在宿主机设冗余机制。众所周知,ping有丢包和延迟,所以会再从22端口加一个TCP握手,由于应用层做了无状态处理,所以即使存在一定的误判也不会有什么影响。这是

  2. 从状态层面探测业务是否可用,并触发弹性事件。其机制为业务监控和应用共享内存,通过业务性能数据的交换,流式读取业务性能的TP99、TP999等指标;此外还有业务URL探活措施。不论性能指标还是业务状态都能触发弹性事件。

此外,对于容器里的业务问题又该如何定位?如果容器层、业务层的监控都正常,日志也无异常(监控和日志一定要现场保留),京东的做法是SSH登录到容器进行查看(开SSH只是为了以防万一,其权限并不对研发开放)。由于京东的Docker直接跑在裸机上,包括Storm也在容器里,多机房之间通过域名解析来打通,对定位到坏掉的容器采取从VIP摘除的策略。此外,主交易系统和秒杀系统可以双向切换,从而保证业务的高可用。

当笔者问到“羊毛党”和DDoS问题时,张晨回复说,京东主要靠风控系统根据用户在网站的购物行为来抵御。对于不同的攻击的方式都有相应的部署和演练,基本能做到有的放矢的防护。说话间双11已至,京东到底能交给大家一份什么样的答卷,让我们拭目以待吧。


时间:2015-11-11 21:28 来源:InfoQ 作者:魏星 原文链接

好文,顶一下
(1)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量