写点什么

京东 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:0023928

评论

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

​程序员离职后收到原公司 2400 元,被告违反竞业协议赔 18 万

程序员生活志

程序员 职场

超级TV盒子,超清秒播,解锁全网VIP资源!

程序员生活志

资源

anyRTC小程序SDK 4.0上线

anyRTC开发者

小程序 WebRTC 语音 直播 RTC

架构师0期Week13作业

Nan Jiang

oeasy 教您玩转linux 之010208 满屏乱码 bb

o

字节小组长无意中得知整个部门的薪资,自己28K,手下却有35K,怎么办?

程序员生活志

字节跳动 职场 薪资

限量版Netty纯手打笔记,年薪80W架构师耗时1个月整理出

Java架构师迁哥

从零开始搭建完整的电影全栈系统(一)——数据库设计及爬虫编写

刘强西

爬虫 Scrapy

35岁以上的程序员们,后来都干什么去了?

华为云开发者联盟

程序员 职业规划 架构师

开源流数据公司 StreamNative 正式加入 CNCF,积极推动云原生策略发展

Apache Pulsar

云原生 pulsar Apache Pulsar 消息系统 消息中间件

你应该了解的MySQL锁分类

X先生

MySQL 数据库 sql 数据库优化

架构师训练营第十三周作业

Hanson

架构师训练营第十三周总结

Hanson

大数据

yuanhang

Centos 7 虚拟机

抗疫代码入国家博物馆, 程序员的巅峰时刻!

程序员生活志

程序员

如何在一台电脑上管理多Github账号

Matrix Chan

git GitHub 版本管理工具 开发日志

为什么一个还没毕业的大学生能够把 IO 讲的这么好?

苹果看辽宁体育

Java 后端 io

解Bug之路-Nginx 502 Bad Gateway

无毁的湖光

nginx Linux TCP

防止APP窃取用户隐私问题,OPPO安全在行动

OPPO安全

App 安全 隐私保护 数据隐私 sdk

克隆虚拟机

yuanhang

大专生拿到阿里offer,却担心背调不过,网友:985在你面前黯淡无光

程序员生活志

面试 职场 阿里

Redis单线程为什么能做到高性能和io多路复用它是个什么鬼

Java架构师迁哥

PageRank 算法

周冬辉

全票通过!易观开源项目DolphinScheduler进入Apache孵化器

易观大数据

Fettley全球共识共享智能合约资产计划 掀起行业追捧热潮

InfoQ_967a83c6d0d7

LeetCode题解:225. 用队列实现栈,一个队列, 压入 - O(n), 弹出 - O(1),JavaScript,详细注释

Lee Chen

大前端 LeetCode

超详细:完整的推荐系统架构设计

博文视点Broadview

架构 算法 推荐系统

对PageRank的理解

2流程序员

如何在企业微信上搭建一款活动报名 App

Ceelog

企业微信 Go 语言

干货来袭!20例JavaWeb项目开发精粹;(内含源码)

Java架构师迁哥

anyRTC - 模仿微信音视频通话功能

anyRTC开发者

WebRTC 语音 直播 RTC 安卓

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