论文部分内容阅读
应用编排技术一直是Devops的研究方向之一,具体来说是指用户通过编写配置文件,或者在界面上拖拽控件的方式对应用中组件之间的依赖关系进行定义,以实现应用的自动部署和快速伸缩,从而降低系统运维的门槛,提高运维效率。传统的应用编排技术通常是预先将应用中的各组件制作为虚拟机镜像,然后通过OpenStack等虚拟机管理工具对这些镜像进行管理、部署和启动。这种应用编排技术目前已经相对比较成熟,在实践中也取得了不错的效果,但是随着科技的不断发展,新的技术不断出现,传统的应用编排技术逐渐暴露出一些问题,主要体现在部署和伸缩速度较慢以及适用场景单一,究其原因主要是因为虚拟机的启动速度较慢以及单纯的私有云或公有云平台具有一定的局限性。本文针对传统应用编排技术存在的这些问题,提出了一种基于Docker的混合云应用编排方案,旨在借用Docker的快速启动特性以及混合云技术的普适特性,从根源上解决现有应用编排技术的问题。本文的工作包括如下三个部分:1.调查与分析。对应用编排技术的研究背景、研究意义进行了调查,发现当前基于虚拟机的应用编排技术存在着启动速度慢、资源粒度大、额外开销大等问题,此外,采用单一的云平台制约了应用编排的适用范围。对国内外研究现状进行调查,主要调查了国外的Docker Compose、Kubernetes、OpenShift3和Fabric8等应用编排方案以及国内阿里巴巴公司的蚂蚁金融云架构。结合以上调查,提出了本文所研究的基于Docker的混合云应用编排方案的三个核心需求:应用编排、动态伸缩和系统监控。2.设计与实现。对基于Docker的混合云应用编排方案进行设计,重点围绕方案的三个核心需求进行设计,提出了包含基础层、核心层、网关层和交互层的四层架构,并对核心层中的应用编排模块、动态伸缩模块和系统监控模块进行了详细设计。针对方案的性能需求,提出了批量调度算法和节点状态增量计算算法等性能优化算法,有效提高了方案中的应用部署速度以及容器分布的均衡性。对基于Docker的混合云应用编排方案进行实现,实现工作同样围绕着应用编排、动态伸缩和系统监控这三个核心模块以及性能优化算法进行。3.测试与总结。对最终实现的方案进行了全面测试:在功能测试中,方案很好地实现了需求分析时提出的核心需求;在性能测试中,实现的方案表现出了良好的部署速度、伸缩速度、容器分布均衡性以及较高的可靠性。对论文进行的整个过程进行了总结,指出了当前方案在安全性、监控完善性和模板管理上存在的一些不足,并对论文的下一步发展方向进行了展望。最终实现的基于Docker的混合云应用编排方案,经受住了测试以及实际生产环境的考验,很好的解决了传统应用编排技术带来的部署速度慢以及适用场景单一的缺点,实现了论文的目标。