写点什么

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

  • 2015-11-11
  • 本文字数:3093 字

    阅读完需:约 10 分钟

写在前面:尼尔森公司 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 已至,京东到底能交给大家一份什么样的答卷,让我们拭目以待吧。


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-11-11 01:015077
用户头像

发布了 64 篇内容, 共 25.7 次阅读, 收获喜欢 11 次。

关注

评论

发布
暂无评论
发现更多内容

征文投稿丨基于轻量应用服务器搭建Hexo个人博客

阿里云弹性计算

node.js nginx git Hexo 轻量应用服务器

AI“爷青回”:一键找回童年记忆

最新动态

Flutter 图片库重磅开源!

阿里巴巴终端技术

flutter 开源 native 客户端

安全高效的云主机批量管理软件是什么?有哪些功能?

行云管家

云主机 云运维

Hoo研究院|一文速览风投机构NGC Ventures的加密布局

区块链前沿News

投资 VC Hoo NGC

你的App是信息化时代的还是数字化时代的

FinClip

小程序开发

数字先锋| 天翼云牵手中能融合

天翼云开发者社区

【云主机】2022年云主机管理软件排行榜

行云管家

云计算 云主机 华为云 移动云 云主机厂商

leetcode 417. Pacific Atlantic Water Flow 太平洋大西洋水流问题

okokabcd

LeetCode 搜索 数据结构与算法

多模态语义检索 | 基于 MetaSpore 快速部署 HuggingFace 预训练模型

Geek_a02d1e

机器学习 深度学习 开源 AI 多模态

关于fastjson出现反序列化远程代码执行漏洞的通知

天翼云开发者社区

博云容器云产品族:如何实现让“Any APP on Any Kubernetes”?

BoCloud博云

云原生 容器云

龙蜥开发者说:不忘初心,方得始终 | 第 7 期

OpenAnolis小助手

开源 cpu 龙蜥开发者说 飞腾 不忘初心

样品管理系统解决方案

低代码小观

Lims LIMS实验室信息管理系统 LIMS系统

多张图解,一扫你对多线程问题本质的所有误区

华为云开发者联盟

Java 开发

2022年中国新能源汽车换电市场发展洞察

易观分析

新能源汽车

Java 中三大类数据类型

迷篱

斐波那契系列

开发微hkkf5566

【LeetCode】 删除二叉搜索树中的节点Java题解

Albert

LeetCode 6月月更

玩转云端|一文读懂天翼云CDN升级重点

天翼云开发者社区

使用 LakeSoul 构建实时机器学习样本库

Geek_a02d1e

机器学习 大数据 开源 新基建 湖仓一体

撑算力之帆,天翼云助力数字时代逐潮者远航

天翼云开发者社区

InfoQ 极客传媒 15 周年庆征文|一文读懂分布式系统本质:高吞吐、高可用、可扩展

No Silver Bullet

架构 分布式系统 可扩展 6月月更 InfoQ极客传媒15周年庆

函数节流和函数防抖和他们的区别

工边页字

JavaScript 性能优化 前端 6月月更

从入门到一位合格的爬虫师,这几点很重要

开发微hkkf5566

员工福利平台:让员工福利更加“鲸彩FUN粽”

鲸品堂

福利 平台

选择天翼云混合云管理平台的五大理由

天翼云开发者社区

5G+实时云渲染:交互实时云看车革新购车体验

3DCAT实时渲染

5G 汽车之家 汽车 元宇宙 实时云渲染

这个API文档,太拽了吧!

Liam

前端 Postman API API文档 开放api

天猫精灵语音技能单轮对话表达式的参数定义

汪子熙

人工智能 机器学习 聊天机器人 机器人 6月月更

虚拟机哪款好用?多台虚拟机管理用什么软件好?

行云管家

软件 虚拟机 IT运维

京东11.11:大考之前的三板斧_服务革新_魏星_InfoQ精选文章