京东弹性云技术:Openstack+Docker的创新实践

需积分: 10 2 下载量 63 浏览量 更新于2024-07-17 收藏 1.23MB PDF 举报
"鲍永成:京东弹性云技术.pdf - 2016 Gdevops全球敏捷运维峰会杭州站,京东南京研发中心鲍永成分享的京东弹性云技术相关内容,包括架构、运维情况和面临的挑战。" 在2016年的Gdevops全球敏捷运维峰会上,京东南京研发中心的鲍永成详细介绍了京东的弹性云技术。京东的全部业务运行在一个基于Openstack、OVS(Open vSwitch)和Docker构建的弹性云平台上。这一架构设计旨在提供高度灵活和可扩展的基础设施服务。 在架构层面,京东采用了Openstack作为云管理框架,利用OVS进行网络虚拟化,并结合Docker实现容器化应用部署。Docker容器通过cgroup(控制组)进行资源限制,如CPU的cfs( Completely Fair Scheduler)算法、cpuset和cpushare,以及blkio的cfq和deadline调度算法来优化存储性能。京东还发展了自己的胖容器模式,将/export目录设置为只读,并通过LVM(逻辑卷管理)和自定义工具链与应用系统集成。同时,京东选择禁用Docker的内置网络,转而使用Neutron(OVS-vlan)进行网络管理,增强了监控能力,加入了对进程和打开文件描述符的监控。 在运维方面,京东的弹性云平台面临着大规模的运维挑战。Openstack集群规模不断扩展,从F版开始采用自研的brooder(类似nova-conductor)进行管理。京东还开发了自有的yaRPC(基于eventlet+msgpack)来替代Python RPC,并将其贡献给了msgpack.org。此外,他们改进了Neutron-openvswitch-agent的更新机制,并重写了Openstack中广泛使用的文件锁函数。京东还实现了消息追踪,通过yaRPC自带的消息跟踪功能记录到数据库。为了应对大规模调度需求,京东引入了多种特性,如应用根据app-id跨交换机和机架部署,根据业务级别和资源特性调度到不同的novazone和网络zone,并开发了JDIDCnetworkzone功能以支持不同IDC物理pod的隔离。 在运维实践中,京东进行了“微笑运维”的尝试,旨在提升运维效率和用户体验。然而,也存在一些挑战,如内核bug,鲍永成在演讲中提到了一个具体的CentOS内核bug链接,表明在实际运行中遇到的技术难题需要不断解决和优化。 京东的弹性云技术是其业务持续发展和运维效率提升的关键所在,它通过技术创新和优化,实现了大规模、高弹性的云基础设施,同时也揭示了在大型企业环境中实施敏捷运维所面临的复杂性和挑战。