随着企业对IT精益运营要求的提高,DevOps概念日渐火爆。调查显示,2016年,38%的企业已经在使用DevOps, 2017年超过70%的IT市场会将目光聚焦在DevOps技术及功能上。
企业若想实施DevOps离不开近几年最为火爆的技术之一Docker, 该技术的应用能为运维人员提供了良好的开发及应用环境,还能够提供资源;而对开发者,Docker足够简单,便于开发人员调用硬件资源、构建环境及配置资源。
美团云从2015年开始构建Docker容器集群管理系统,提供对Docker容器的实例化、调度、运行、监控以及镜像托管等功能。两年的实战验证了Docker容器虚拟化技术在提高运维效率,降低IT成本等方面的价值。近日,美团云技术团队与金融科技企业买单侠的技术专家就Docker的应用进行了分享交流。
美团云计算研发负责人巩向锋在买单侠做技术分享
为何开发容器管理平台
作为国内最大的生活服务电商平台,美团点评为超6亿用户、450万商家提供多样化的服务,因自身业务属性,美团点评每天都面临周期性、突发性流量高并发的挑战。因此,美团点评于2013年将业务全部迁移上云。
即便在上云及自动化运维方面走在行业前列,在构建容器平台之前,美团点评仍必须事先基于虚拟机进行手动扩容,提前为业务线预留大量资源,方能保证业务高峰期平稳度过,其效率很低,资源浪费也较严重。
为了解决以上问题,美团云从2015年开始引入Docker,结合集团的业务需求,基于美团云现有架构和组件,实践出一条自研Docker容器管理平台之路。平台在多个纬度封装了业务需要的资源,简化了业务和资源平台的交互,在业务有大规模需求的时候能自动化部署,弹性伸缩,不但指数级的提高了效率,还大量地节约了成本。
容器管理平台的架构设计
美团云将容器管理平台视作一种云计算模式,云计算的架构同样适用于容器。云平台的大部分组件可以直接复用或者经过少量扩展开发。
美团点评容器管理平台架构
可以看出,容器平台整体架构与美团云基本一致,自上而下分为业务层、PaaS层、IaaS控制层及宿主机资源层。
业务层:美团点评使用容器的业务线,是容器平台的最终用户。
PaaS层:使用容器平台的HTTP API,完成容器的编排、部署、弹性伸缩、监控、服务治理等功能,对上面的业务层通过HTTP API或者Web的方式提供服务。
IaaS控制层:提供容器平台的API处理、调度、网络、用户鉴权、镜像仓库等管理功能,对PaaS提供HTTP API接口。
宿主机资源层:Docker宿主机集群由多个机房数百个节点组成。每个节点部署HostServer、Docker、监控数据采集模块,Volume管理模块,OVS网络管理模块,Cgroup管理模块等。
据介绍,容器平台中的绝大部分组件是基于美团云已有组件扩展开发的,例如API,镜像仓库、平台控制器、HostServer、网络管理模块等。
高性能、高弹性的容器网络
一个好的网络架构,需要有高网络传输性能、高弹性、多租户隔离、支持软件定义网络配置等多方面的能力。从容器集群系统来看,只有单宿主机的网络接入是远远不够的,网络还需要提供跨宿主机、机架和机房的能力。从这个需求出发Docker和虚拟机共通,没有明显的差异。基于该理念,美团点评容器平台在网络方面复用了美团云网络基础架构和组件。
美团点评容器平台网络架构
数据平面: 美团云采用万兆网卡,结合OVS-DPDK方案,并进一步优化单流的转发性能,将几个CPU核绑定给OVS-DPDK转发使用,只需要少量的计算资源即可提供万兆的数据转发能力。OVS-DPDK和容器所使用的CPU完全隔离,因此也不影响用户的计算资源。
控制平面: 美团云使用OVS方案。该方案是在每个宿主机上部署一个自研的软件Controller,动态接收网络服务下发的网络规则,并将规则进一步下发至OVS流表,决定是否对某网络流放行。
美团云还基于Libnetwork开发了MosBridge ——适配美团云网络架构的Docker网络驱动。在创建容器时,需要指定容器创建参数并将IP地址、网关、OVS Bridge等参数传给Docker,由MosBridge完成网络的配置过程。有了MosBridge,容器创建启动后便有了网络可以使用。容器的网络配置也持久化在MosBridge中,容器重启后网络配置也不会丢失。更重要的是,MosBridge使Host-SRV和Docker充分解耦,让网络功能的升级更加方便。
稳定、高可用的解决方案:MosDocker
Docker社区十分火热,版本更新频繁,且每次更新都会伴随大量的代码重构,不可避免地会引入新的Bug, 其稳定性很难满足生产场景的要求。因此有必要维护一个相对稳定的版本,如果发现Bug, 可以在此版本基础上,通过自研或者采用社区的BugFix来修复。
美团点评业务的一些需求来自于公司的生产环境,而不属于业界通用的需求,因此除了稳定性的需求之外,美团云还需要开发一些功能来满足美团点评自身业务的需求。对于这类需求,开源社区通常不会考虑。美团云作为公司基础服务团队则必须通过技术开发来满足该需求。
基于以上考虑,美团云从Docker 1.11版本开始,自研维护一个分支,称之为MosDocker。MosDocker自研的特性主要有:MosBridge支持美团云网络架构的网络驱动,基于此特性实现容器多IP,VPC等网络功能;Cgroup持久化,扩展Docker Update接口,可以使更多的CGroup配置持久化在容器中,保证容器重启后CGroup配置不丢失;支持子镜像的Docker Save,可以大幅度提高Docker镜像的上传、下载速度。
维护MosDocker使美团云可以将Docker稳定性逐渐控制在自己手里,并且可以按照公司业务的需求做定制开发。
Docker推动美团点评DevOps落地
目前,美团云容器平台已经接入了美团点评多个大型业务部门,让业务的机器申请、部署、业务发布一步完成,业务扩容从原来的小时级缩减为秒级,极大地提高了业务的弹性能力,以应对突发业务高峰。
此外,Docker计算效率更高,加之高弹性使得业务部门不必预留大量的资源,节省了硬件投资。而Docker的在线扩容能力,能够保障服务不中断。例如,数据库和缓存在运行时常常需调整CPU、内存和磁盘,在接入容器平台之前,调整配置需要重启虚拟机,业务的可用性不可避免地被中断。而Docker对CPU、内存等资源管理是通过Linux的CGroup实现的,调整配置只需要修改容器的CGroup参数,不必重启容器。
基于美团云计算平台构建的Docker容器管理平台让美团点评的研发和运维人员通过自动化流程加强协作,加速落地了美团点评DevOps的实施,在面对日订单超1800万的业务压力时,为公司提升了IT运营效率并节省大量资源,真正实现了精细化运营。
A5创业网 版权所有