公司JD.com 位置中国,北京 行业电子商务

挑战

拥有超过3亿活跃用户,2017年总收入超过550亿美元,JD.com沃尔玛是中国最大的零售商,其运营是超大型的缩影。例如,京东的产品数据库中有超过1万亿张图片——每天新增1亿张——而这一庞大的数据需要立即被访问。2014年,京东通过OpenStack和Docker将其应用程序转移到运行在裸金属机器上的容器上,以“加快我们计算资源的交付,使操作更加简单,”京东首席架构师刘海峰表示。但到2015年底,随着数万个节点在多个数据中心运行,“我们遇到了很多问题,因为我们的平台不够强大,我们遇到了瓶颈和可伸缩性问题,”刘说。“我们现在就需要为未来五年的发展提供基础设施。”

解决方案

京东转向Kubernetes来适应其集群。2016年初,京东开始从OpenStack向Kubernetes转型,如今,京东运营着全球最大的Kubernetes集群。“Kubernetes提供了一个强大的基础,在此基础上,我们定制了解决方案,以满足我们作为中国最大零售商的需求。”

影响

“通过Kubernetes平台,我们有了更高的数据中心效率、更好的资源管理和更智能的部署,”Liu说。部署时间从几个小时增加到几十秒。以IT成本衡量,效率提高了20-30%。随着该团队的进一步优化工作,刘相信每年有可能节省数亿美元。但也许最能代表成功的是一年一度的光棍节购物活动,该活动于2018年首次在Kubernetes平台上举办。在11天的时间里,京东的交易额达到了230亿美元,“我们的电子商务平台做得很好,”刘强东说。基础设施为11.11做好了准备。我们采用预测容量的方法,模仿客户的行为,提前做好准备,对故障进行演练。因为Kubernetes的可扩展性,我们能够处理非常高水平的需求。”

京东是中国最大的零售商,去年拥有超过3亿活跃用户,年收入557亿美元,其运营堪称超大规模的缩影。

例如,京东的客户产品数据库中有超过1万亿张图片,每天还在增加1亿张。而这些庞大的数据需要立即被获取,以实现流畅的在线客户体验。

2014年,京东通过OpenStack和Docker将其应用程序转移到运行在裸金属机器上的容器上,以“加快我们计算资源的交付,使操作更加简单,”京东首席架构师刘海峰表示。但到2015年年底,随着多个数据中心的数十万节点,“我们遇到了很多问题,因为我们的平台不够强大,我们遇到了瓶颈和可伸缩性问题,”Liu补充道。“我们现在就需要为未来五年的发展提供基础设施。”

在考虑了一系列编配技术后,京东决定采用Kubernetes来适应其不断增长的集群。“主要原因是Kubernetes可以为我们提供更高效、可扩展和更简单的应用部署,而且我们可以利用它来进行灵活的平台调度,”Liu说。

事实上,Kubernetes是基于谷歌的博格,这也给了公司信心。团队喜欢Kubernetes清晰简单的架构,而且它主要是用Go开发的,而Go是京东的流行语言。刘说,虽然他觉得库伯内特当时“还不够成熟”,但“我们还是接受了它。”

该团队花了一年时间开发基于Kubernetes的新的集装箱引擎平台,并在2016年底开始在公司内部推广。“我们希望集群成为创建服务的默认方式,这样扩展性就更容易,”Liu说。“我们与开发者进行了交谈,他们的兴趣越来越浓厚,我们一起解决了问题。”其中一些问题包括网络性能和etcd可伸缩性。“但在过去两年里,库伯内特变得更加成熟,也非常稳定,”他补充道。

如今,该公司运营着全球最大的Kubernetes集群。“我们定制了Kubernetes,并在其之上建立了一个现代系统,”刘说。Kubernetes的整个生态系统加上我们自己的优化帮助我们节省了成本和时间。通过Kubernetes平台,我们拥有更高的数据中心效率、更好的资源管理和更智能的部署。”

结果很清楚:部署时间从几个小时增加到几十秒。以IT成本衡量,效率提高了20-30%。但也许成功的最好标志是每年一次光棍节这是2018年首次在Kubernetes平台上举办的购物活动。在11天的时间里,京东的交易额达到了230亿美元,“我们的电子商务平台做得很好,”刘强东说。基础设施为11.11做好了准备。我们采用预测容量的方法,模仿客户的行为,提前做好准备,对故障进行演练。因为Kubernetes的可扩展性,我们能够处理非常高水平的需求。”

京东与Kubernetes的合作目前处于第二阶段:该平台已经稳定、可扩展和灵活,因此重点是如何更有效地运行,以进一步降低成本。通过优化团队的资源管理,刘相信每年有可能节省数亿美元。

“我们在大约数万个物理裸金属节点上运行Kubernetes和容器集群,”他说。“使用Kubernetes和利用我们自己的机器学习管道来预测我们使用的每个应用程序需要多少资源,以及我们自己的智能缩放算法,我们可以提高我们的资源使用。例如,如果我们提高资源使用,提高几个百分点,这意味着我们可以减少巨大的硬件成本。这样我们就不需要那么多服务器来获得相同的工作量。这可以为我们节省很多资源。”

获得CNCF 2018年终端用户奖的京东也在使用CNI经过,维塔斯在其平台上。京东的开发者们为Vitess, CNCF项目做出了相当大的贡献,该项目用于可扩展的MySQL集群管理,京东希望在不久的将来将自己的项目捐赠给CNCF。社区参与是京东的首要任务。“我们和这个社区有很好的合作关系,”刘说。他说:“我们可以与社区分享成功的经验,也能从其他人那里得到良好的反馈。所以这是互惠互利的。”

为此,刘先生为其他考虑采用原生云技术的公司提供了建议。他说:“首先,你需要把这项技术与你自己的业务结合起来,其次,你需要有明确的目标。”“你不能仅仅因为别人在使用这项技术就使用它。你需要考虑自己的目标。”

就京东的目标而言,这些原生云技术与该公司自己的创新非常契合。“Kubernetes帮助我们降低了操作的复杂性,使分布式系统稳定和可扩展,”Liu说。“最重要的是,我们可以利用Kubernetes来调度资源,从而降低硬件成本。这是巨大的胜利。”