写点什么

京东 618:15 万个 Docker 实例,所有业务全部容器化

  • 2016-06-17
  • 本文字数:2323 字

    阅读完需:约 8 分钟

在 2015 年的 618 大促中,京东大胆启用了基于Docker 的容器技术来承载大促的关键业务(图片展现、单品页、团购页),当时基于Docker 容器的弹性云项目已经有近万个Docker 容器在线上环境运行,并且经受住了大流量的考验。而今年618,弹性云项目更是担当重任,全部应用系统和大部分的DB 服务都跑在Docker 上。像618 大促这样的流量高峰期,弹性云可以自动管理资源,做到弹性扩展,而在流量低谷期,又可以进行资源回收,在提升资源利用率的同时确保了运维系统的稳定性。据官方估计,本次大促活动中,京东线上将会启动近15 万个Docker 容器,从数量上来看,京东是全球范围内Docker 的应用大户之一。

为了了解相关的详情,InfoQ 记者采访了弹性云项目负责人鲍永成。此外,鲍永成将会在InfoQ 主办的 CNUTCon 全球容器技术大会上分享本次 618 大促的具体技术细节,欢迎关注。

受访嘉宾介绍

鲍永成,京东弹性计算组项目负责人,带领弹性计算团队,深耕 IaaS 领域,致力于打造京东强大的虚拟化平台。2013 年初加入京东,重点在京东弹性云平台系统研发,运营多个中大规模 IaaS 集群,包括(京东弹性云、公有云、混合云等产品),在 OpenStack 研发 & 性能优化、自动化部署、KVM、Docker、分布式系统等方面有一定的实践经验。

InfoQ:去年 618 的时候,我们就有聊过京东 Docker 的应用情况。您能对比去年 618,介绍下今年的规模、应用以及调整吗?

鲍永成:从数量上来讲,去年 618 线上容器应对峰值为 9 千个实例,今年截止 6 月 17 日线上容器突破 15 万实例;在整体布局上来看,对比去年 618,弹性云在规模上和业务全容器化实现战略落地。
在应用层面,京东所有应用 100% 通过容器技术来发布和管理应用集群。值得指出一点:今年 618 有 5600 个容器实例支撑 DB 集群,对京东云数据库提供非常便利的支持。
弹性云核心架构没有很大变化,依然简洁定义:弹性云 = 软件定义数据中心 + 业务容器集群调度。在此基础上,有两点增强:

  • 单个容器的稳定性和性能方面做了很大提升,有效满足核心系统对计算和网络的巨大需求;
  • 统一管理物理机、虚拟机和容器,加入统一集群进行调度,以适应不同业务对计算资源的不同需求;

InfoQ:您能介绍下有哪些业务全量跑在 Docker 上吗?为了迎接这样的挑战,架构做了哪些调整?

鲍永成网站、交易、无线、微信手 Q 等全部应用系统和 DB 服务的大部分都跑在 Docker 上。
因为京东业务在多年前就开始微服务化治理,所以应用层架构调整很小。现如今微服务化比例已经很大,所以容器技术的融入比较顺利。弹性云平台,算是站在多年对各个业务系统微服务化治理的巨人肩膀上。

InfoQ:这么多容器,如何做到海量监控?采用了什么开源方案吗?有哪些注意的事项?

鲍永成监控采取自主研发系统,该系统负责海量数据采集和存储工作,其构架如图。

对于 15W+ 容器监控,需要注意:指标采集传输一定要设计得非常高效,并且要做到采集过程对资源的消耗控制,建议使用加速告警和监控图表跟踪缓存状况。

InfoQ:在洪峰来临之时,弹性计算云平台是如何进行扩容的?可以从系统角度分享下其中的流程吗?

鲍永成弹性云有两种模式:

  • 自动模式会根据每个业务方自己的预设弹性扩展条件,自动触发扩容。扩容工作包括使用业务镜像 spawn 实例、自动 DB 授权、微服务框架注册、添加实例到 LB 负载。
  • 手动模式的前提是有弹性事件被触发,垂直运维收到扩展确认消息,人工参与的只是这个消息的点击确认扩容环节,其后续流程与自动模式一致。

InfoQ:可以谈谈目前应用了哪些关键开源项目吗?各自在系统的哪些 level?对应的版本分别是什么?

鲍永成主要是 OpenStack 和 Docker,具体如下:

  • OpenStack-IceHouse 用于管理数据中心计算、网络、存储等资源,位于 JD Data Center Operating System 层。
  • Docker-1.3 用于 spawn 容器实例,加入很多自主研发的内容和功能。

InfoQ:这么多的容器,您觉得最大的挑战是什么?

鲍永成**:1. 集群规模介于高效运维,弹性云集群走的是大集群架构的思路。单个 OpenStack 集群会建设得非常大,目前单集群规模控制在 6 千台计算节点左右。
管理 6K 台计算节点集群,仅仅使用原生 OpenStack 是很困难的,因此我们对 OpenStack 依赖的数据库、MQ 等全部重新设计实现,设计经过测试可以支撑 1W 台计算节点。
2. 单实例性能调优
:** 很多核心的业务对单个请求的响应时间有极其严格要求,这势必要求弹性云提供的每一个容器实例均要具有极好的性能,我们从 CPU 和网络两方面入手。
针对 CPU,我们采取 Scale-up 算法灵活调配 CPU 分配,使繁忙业务可以及时获得足够多 CPU 资源。
在网络这块,主攻方向为如何把万兆卡的性能发挥出来。我们对 OVS(Open vSwitch)做了一些改进:减少了一些锁,优化 peer port 和网卡中断。这带来近乎物理机网卡的网络性能。

InfoQ:这么大规模的 Docker 应用,在国内外都是屈指可数的。在整个容器化的进程,你们得到了什么,失去了什么?

鲍永成京东弹性计算云通过软件定义数据中心与大规模容器集群调度,实现海量计算资源的统一管理,并满足性能与效率方面的需求。
提升业务自助上线效率。应用部署密度大幅提升,资源使用率提升,节约大量的硬件资源。

而面临的调整也很多,比如内核因为 bug 升级。全部容器化后,底层依赖系统的版本高度一致,很容易带来因为底层 bug 需要规模性升级,幸运的是我们在内核团队建设这块一直非常重视,已经有内核发布版本、内核热 patch 等方式,有效解决此类问题。

InfoQ:在 CNUTCon 2016 全球容器技术大会上,你会重点分享哪些内容?

鲍永成重点分享软件定义数据中心、大规模容器集群调度以及 Docker 容器性能调优。

InfoQ:感谢鲍永成老师接受我们的采访。期待您在 CNUTCon 2016 全球容器技术大会上的分享。

感谢郭蕾对本文的审校。

2016-06-17 19:0023189

评论

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

Go自定义DNS解析器负载均衡实践

FunTester

HTTP 接口测试 DNS Go 语言 FunTester

外包学生管理系统架构设计文档

「架构实战营」

关于阿里云多活容灾的那点事

阿里巴巴云原生

阿里云 云原生 应用多活

Python3 cpython优化 实现解释器并行

字节跳动终端技术

字节跳动 编程语言 代码优化 Python3 火山引擎MARS

引领创新技术发展,百度荣获两项数据中心国家级荣誉

百度大脑

全国人工智能师资培训班·上海站火热招生中

百度大脑

云计算情报局预告|告别 Kafka Streams,让轻量级流处理更加简单

阿里巴巴云原生

阿里云 云原生 消息队列 Kafka ETL

“首席AI架构师”+57人!百度AICA第五期结业啦

百度大脑

模块三作业

Mr小公熊

学生管理系统详细架构方案

IT屠狗辈

架构实战营 详细架构

模块三作业

Geek_ec866b

架构实战营

"5G通达,AI赋能" AI在网络规划中的应用实践

百度大脑

博文干货|在 Kotlin 中使用 Apache Pulsar

Apache Pulsar

开源 架构 云原生 kotlin Apache Pulsar

外包学生管理系统架构设计文档

smile

使用 Solidity、Web3 和 Vue.js 创建区块链游戏

devpoint

dapp NFT Solidity 2月月更

中远海运集团总经理付刚峰率队访问百度 双方将加强合作

百度大脑

人类的AI调校计划:像个淑女,或者硬汉

脑极体

学生管理系统架构设计文档

Bear

「架构实战营」

模块三作业

blazar

「架构实战营」

外包学生管理系统架构设计文档

石小天

「架构实战营」

DDD实战(2):看看代码结构长啥样

深清秋

DDD 软件架构 生鲜电商系统

内网安全-记一次内网靶机渗透

网络安全学海

黑客 网络安全 信息安全 渗透测试

PaddleOCR 部署实战之Java&C#方案直播分享来啦

百度大脑

【架构师训练营】模块八作业

樰巳-堕~Horry

架构实战营 「架构实战营」

网站开发进阶(六十八)防抖节流

No Silver Bullet

防抖节流 2月月更

NodeJS事件循环

真嗣

前端 nodejs 事件循环 eventloop

系统学习 TypeScript(三)——基础类型

编程三昧

typescript 前端 2月月更

[架构实战营]-外包学生管理系统架构设计

邹玉麒

「架构实战营」

如何设计一个复杂的业务系统?从对领域设计、云原生、微服务、中台的理解开始

阿里巴巴云原生

阿里云 云原生 架构设计

如何高效交付专有云?百度智能云有妙招

百度大脑

学生管理系统-详细架构设计文档

AragornYang

架构训练营 架构实战营

京东618:15万个Docker实例,所有业务全部容器化_DevOps & 平台工程_穆寰_InfoQ精选文章