京东618:Docker扛大旗,弹性伸缩成重点 (2015-06-23)

不知不觉中,年中的618和年终的11.11已经成为中国电商的两大促销日,当然,这两天也是一年中系统访问压力最大的两天。对于京东而言,618更是这一年中最大的一次考试,考点是系统的扩展性、稳定性、容灾能力、运维能力、紧急故障处理能力。弹性计算云是京东2015年研发部战略项目,它基于Docker简化了应用的部署和扩容,提高了系统的伸缩能力。目前京东的图片系统、单品页、频道页、风控系统、缓存、登录、团购、O2O、无线、拍拍等业务都已经运行在弹性计算云系统中。

过去的一段时间里,弹性计算云项目在京东内部获得了广泛应用,并且日趋稳定成熟。一方面,这个项目可以更有效地管理机器资源,提高资源利用率;另外还能大幅提高生产效率,让原来的申请机器上线扩容逐渐过渡到全自动维护。京东弹性计算云项目将深刻影响京东未来几年的基础架构。

受访嘉宾介绍

刘海锋,京东云平台首席架构师、系统技术部负责人。系统技术部专注于基础服务的自主研发与持续建设,包括分布式存储、以内存为中心的NoSQL服务、图片源站、内容分发网络、消息队列、内部SOA化、弹性计算云等核心系统,均大规模部署以支撑京东集团的众多业务。

InfoQ:能否介绍下京东弹性计算云项目的情况,你们什么时候开始使用Docker的?目前有多大的规模?

刘海锋:弹性计算云项目在去年第四季度开始研发,今年春节后正式启动推广应用。经过半年多的发展,逐渐做到了一定规模。截至6月17日,我们线上运行了9853个Docker实例(注:无任何夸大)以及几百个KVM虚拟机。京东主要的一些核心应用比如商品详情页、图片展现、秒杀、配送员订单详情等等都部署在弹性云中。弹性计算云项目也作为今年618的扩容与灾备资源池,这估计是国内甚至世界上最大规模的Docker应用之一。随着业务的发展以及IDC的增加,预计今年年底规模会翻两番,京东大部分应用程序都会通过容器技术来发布和管理。

系统架构可以这样简洁定义:弹性计算云 = 软件定义数据中心 容器集群调度。整个项目分成两层架构,底层为基础平台,系统名JDOS,通过『OpenStack married with Docker』来实现基础设施资源的软件管理,Docker取代VM成为一等公民,但这个系统目标是统一生产物理机、虚拟机与轻量容器;上层为应用平台,系统名CAP,集成部署监控日志等工具链,实现『无需申请服务器,直接上线』,并进行业务特定的、数据驱动的容器集群调度与弹性伸缩。

Q:能否谈谈你们的Docker使用场景?在618这样的大促中,Docker这样的容器有什么优势?618中有哪些业务跑到Docker中?

刘海锋:目前主要有两类场景:无状态的应用程序,和缓存实例。这两类场景规模最大也最有收益。不同的场景具体需求不同,因此技术方案也不相同。内部我们称呼为“胖容器”与“瘦容器”技术。从资源抽象角度,前者带独立IP以及基础工具链如同一台主机,后者可以理解为物理机上面直接启动cgroup做资源控制加上镜像机制。

618这样的大促备战,弹性计算云具备很多优势:非常便捷的上线部署、半自动或全自动的扩容。Docker这样的操作系统级虚拟化技术,启动速度快,资源消耗低,非常适合私有云建设。

今年618,是京东弹性计算云第一次大促亮相,支持了有很多业务的流量。比如图片展现80%流量、单品页50%流量、秒杀风控85%流量、虚拟风控50%流量,还有三级列表页、频道页、团购页、手机订单详情、配送员主页等等,还有全球购、O2O等新业务。特别是,今年618作战指挥室大屏监控系统都是部署在弹性云上的。

Q:你们是如何结合Docker和OpenStack的?网络问题是如何解决的?

刘海锋:我们深度定制OpenStack,持续维护自己的分支,称之为JDOS(the Jingdong Datacenter Operating System)。JDOS目标很明确:统一管理和分配Docker、VM、Bare Metal,保证稳定高性能。网络方面不玩复杂的,线上生产环境划分VLANs Open vSwitch。SDN目前没有显著需求所以暂不投入应用。我们以『研以致用』为原则来指导技术选择和开发投入。

Q:能否谈谈你们目前基于Docker的workflow?

刘海锋:弹性计算平台集成了京东研发的统一工作平台(编译测试打包上线审批等)、自动部署、统一监控、统一日志、负载均衡、数据库授权,实现了应用一键部署,并且全流程处理应用接入,扩容、缩容、下线等操作。支持半自动与全自动。

Q:这么多的容器,你们是如何调度的?

刘海锋:容器的调度由自主研发的CAP(Cloud Application Platform)来控制,并会根据应用配置的策略来进行调度;在创建容器的时候,会根据规格、镜像、机房和交换机等策略来进行创建;创建完容器后,又会根据数据库策略、负载策略、监控策略等来进行注册;在弹性调度中,除了根据容器的资源情况,如CPU和连接数,还会接合应用的TPS性能等等来综合考虑,进行弹性伸缩。

目前已经针对两大类在线应用实现自动弹性调度,一是Web类应用,二是接入内部SOA框架的服务程序。大规模容器的自动化智能调度,我们仍在进一步做研究与开发。

Q:目前主要有哪些业务使用了Docker?业务的选择方面有什么建议?

刘海锋:目前有1000个应用已经接入弹性云,涵盖京东各个业务线,包括很多核心应用。目前我们主要支持计算类业务,存储类应用主要应用到了缓存。数据库云服务也将通过Docker进行部署和管理。

特别强调的是,业务场景不同,技术方案就有差别。另外,有些对隔离和安全比较敏感的业务就分配VM。技术无所谓优劣和新旧,技术以解决问题和创造业务价值为目的。

Q:你们的缓存组件也跑在Docker中,这样做有什么好处?IO什么的没有问题吗?有什么好的经验可以分享?

刘海锋:我们团队负责一个系统叫JIMDB,京东统一的缓存与高速NoSQL服务,兼容Redis协议,后台保证高可用与横向扩展。系统规模增长到现在的三千多台大内存机器,日常的部署操作、版本管理成为最大痛点。通过引入Docker,一键完成容器环境的缓存集群的全自动化搭建,大幅提升了系统运维效率。

技术上,缓存容器化的平台并不基于OpenStack,而是基于JIMDB自身逻辑来开发。具体说来,系统会根据需求所描述的容量、副本数、机房、机架、权限等约束创建缓存容器集群,并同时在配置中心注册集群相关元数据描述信息,通过邮件形式向运维人员发出构建流水详单,并通知用户集群环境构建完成。调度方面,不仅会考虑容器内进程,容器所在机器以及容器本身当前的实时状况,还会对它们的历史状况进行考察。一旦缓存实例触发内存过大流量过高等扩容条件,系统会立即执行扩容任务创建新的容器分摊容量和流量,为保证服务质量,缓存实例只有在过去一段时间指标要求持续保持低位的情况下才会缩容。在弹性伸缩的过程中,会采用Linux TC相关技术保证缓存数据迁移速度。

Q:使用过程中有哪些坑?你们有做哪些重点改进?

刘海锋:坑太多了,包括软件、硬件、操作系统内核、业务使用方式等等。底层关键改进印象中有两个方面:第一,Docker本地存储结构,抛弃Device Mapper、AUTFS等选项,自行定制;第二,优化Open vSwitch性能。比如,优化Docker镜像结构,加入多层合并、压缩、分层tag等技术,并采用镜像预分发技术,可以做到秒级创建容器实例;优化Open vSwitch转发层,显著提升网络小包延迟。

参考文章:http://blog.sina.com.cn/s/blog_88d451810102vkxr.html

原文地址:https://www.cnblogs.com/pengai/p/8462366.html

时间: 2024-08-28 17:56:34

京东618:Docker扛大旗,弹性伸缩成重点 (2015-06-23)的相关文章

京东618:Docker扛大旗,弹性伸缩成重点

转载:http://www.infoq.com/cn/news/2015/06/jd-618-docker?utm_source=infoq&utm_medium=popular_widget&utm_campaign=popular_content_list&utm_content=homepage 不知不觉中,年中的618和年终的11.11已经成为中国电商的两大促销日,当然,这两天也是一年中系统访问压力最大的两天.对于京东而言,618更是这一年中最大的一次考试,考点是系统的扩展

618揭秘:这些产品为何成爆款?因有京东亲授“秘籍”

随着618电商年中购物节的逐步收官,由南都和京东双方合力打造的JDND消费指数之<2017年618电商消费报告>也正式出炉.京东大数据显示,6月1日至6月18日,京东商城累计下单金额达1199亿元,累计卖出商品超过7亿件(点击查看详细报告).爆发式增长的背后,京东618期间各品类的战报还透露出一个有趣现象,即根据京东大数据和用户画像定制的产品正在变得更受消费者欢迎.更具市场竞争力.    商家通过京东平台洞察消费者需求 来自蒙牛单品的战报显示,其基于京东大数据和新兴的互联网技术的兴趣,对年轻人

基于Raft构建弹性伸缩的存储系统的一些实践

基于Raft构建弹性伸缩的存储系统的一些实践 原创 2016-07-18 黄东旭 聊聊架构 最近几年来,越来越多的文章介绍了 Raft 或者 Paxos 这样的分布式一致性算法,但主要集中在算法细节和日志同步方面的应用,但是呢,这些算法的潜力并不仅限于此,基于这样的分布式一致性算法构建一个完整的可弹性伸缩的高可用的大规模存储系统,是一个很新的课题,我结合我们这一年多以来在 TiKV 这样一个大规模分布式数据库的实践上谈谈其中的一些设计和挑战. 本次分享的主要内容是如何使用 Raft 来构建一个可

Kubernetes高级进阶之多维度弹性伸缩

**基于Kubernetes的多维度的弹性伸缩** 目录:2.1 传统弹性伸缩的困境2.2 kubernetes 弹性伸缩布局2.3 Node 自动扩容/缩容2.4 pod自动扩容/缩容 (HPA)2.5 基于CPU指标缩放2.6 基于prometheus自定义指标缩放 2.1 传统伸缩的困境从传统意义上,弹性伸缩主要解决的问题是容量规划与实际负载的矛盾蓝色水位线表示集群资源容量随着负载的增加不断扩容,红色曲线表示集群资源实际负载变化.弹性伸缩就是要解决当实际负载增加,而集群资源容量没来得及反应

DCOS中监控和弹性伸缩方案经验

监控的选型 我们的DCOS 主要是面向2种业务形态:互联网应用,NFV组件和相关的数据库.2种不同的业务虽然说都是跑在容器内部,但是其实需要监控的信息和指标都是各不相同.因此在选择监控方案的时候我们更多的考虑了多样性和可定制化方案,同时最重要的是反应速度和自动化的因素 我们的方案需要有告警和自动的弹性伸缩功能来保证业务的可靠性和健壮性. 去年有幸听取了Brian Christner对于容器监控的讲解,所以对他当时提出的cAdvisor+Prometheus+InfluxDB+Grafana 的方

O2O已过时,看京东618如何用“×××零售”玩转线上线下

6月19日凌晨,京东公布全球年中购物节战报,从2018年6月1日0点到6月18日24点,累计下单金额达1592亿元,其中出库订单金额同比增长超过37%.相比往年大打价格,促销信息满天飞的年中购物节,今年的 "618"有点不一样.一.黑科技加持,京东618演绎线上线下"×××狂欢"线上线下联动是今年京东"618"的一大看点.据悉,今年618期间,京东联手超过50万+线下门店商超掀起线上线下高度融合的"×××狂欢".以京东与品牌商

618不打价格战,实力夏普成最受消费者欢迎电视品牌

这段时间,最热门的当属京东618全球购物狂欢节和世界杯了,前者让消费者清空了自己的购物车,后者让消费者彻夜狂欢,二者从物质和精神层面满足了用户的需求.因为世界杯,因为618,今年的大屏电视市场需求井喷.一.世界杯赶上京东618购物狂欢节,大屏电视销量暴涨6月18日下午,京东家电事业部总裁刘俊公布了618家电销售战报:电视品类一分钟销售额破亿元.据刘俊公布的战报显示,今年彩电是超高清大屏当道.4K超过请和60英寸以上大屏销售爆发.世界杯成为最佳销售推手.据介绍,6月1日至18日期间,60英寸以上4

深入玩转K8S之智能化的业务弹性伸缩和滚动更新操作

在上篇我们讲到了较为傻瓜初级的弹性伸缩和滚动更新,那么接下来我们来看看较为高级的智能的滚动更新.本节的知识点呢是K8S的liveness和readiness探测,也就是说利用健康检查来做更为智能化的弹性扩容和滚动更新. 那为什么说是比较智能化呢,因为在实际生产环境中会遇到这样那样的问题,比如:容器里面应用挂了或者说新启动的容器里面应用还没有就绪等等,所以说就需要进行探测来检验容器是否满足需求. 那么一般的检测分为几种,比如:进程检测.业务检测. 进程检测呢很好理解,也就是说通过检测容器进程来验证

Serverless 与容器决战在即?有了弹性伸缩就不一样了

作者 | 阿里云容器技术专家 莫源?本文整理自莫源于 8 月 31 日?K8s & cloudnative meetup 深圳场的演讲内容.关注"阿里巴巴云原生"公众号,回复关键词 "资料" ,即可获得 2019 全年 meetup 活动 PPT 合集及 K8s 最全知识图谱. 导读:Serverless 和 Autoscaling 是近些年来广大开发者非常关心的内容.有人说 Serverless 是容器 2.0,终有一天容器会和 Serverless 进行