基于Docker的devops持续交付与自动化系统及方法技术方案

技术编号:15690568 阅读:229 留言:0更新日期:2017-06-24 03:04
本发明专利技术公开了一种基于Docker的devops持续交付与自动化系统和方法,该系统基于Docker开发平台实现,包括开发环境、镜像仓库、测试环境和运维环境。开发环境用于计算机代码的开发、复查、集成、编译和版本控制,编译完成的代码自动存入所述镜像仓库中;镜像仓库:用于以Docker镜像的形式存储计算机代码;测试环境:用于从镜像仓库拉取需要测试的Docker镜像,并启动为Docker容器,测试通过后打上Tag标注并自动存入镜像仓库;运维环境:用于从镜像仓库拉取已打上Tag标注的Docker镜像,并运行为容器应用。本发明专利技术实现了开发、测试和运维环境的统一化和标准化;解决底层基础环境的异构问题;易于构建、迁移和部署;轻量和高效;实现了工具链的标准化和快速部署。

Devops continuous delivery and automation system and method based on Docker

The invention discloses a Devops continuous delivery and automation system and method based on Docker, which is realized on the Docker development platform, which comprises a developing environment, a mirrored warehouse, a testing environment and an operation and maintenance environment. Development environment for computer code development, review, integration, compilation and version control, the compiled code stored in the image in the warehouse; warehouse for storage in the form of image: computer code Docker image; test environment for Docker image from the mirror warehouse pull to test, and start the Docker test container. After playing Tag tagging and automatically stored in the warehouse operation environment: mirror; to pull type Docker mirror Tag label from the mirror warehouse, and run for the container application. The invention realizes the development, testing and maintenance of environmental harmonization and standardization; solve the problem of heterogeneous underlying environment; easy to build, migration and deployment; light weight and high efficiency; the tool chain standardization and rapid deployment.

【技术实现步骤摘要】
基于Docker的devops持续交付与自动化系统及方法
本专利技术涉及IT互联网领域的软件研发、产品交付、产品运维等领域,具体地指一种基于Docker的devops持续交付与自动化系统及方法。
技术介绍
在IT互联网
,开发、测试和运维环境的统一化和标准化一直是技术人员的探索方向。Devops(Development和Operations的简称),中译为开发运维自动化一体化,定义为是一种软件过程,方法,文化,实践,通过一条高度自动化的流水线来加强开发和其他IT职能部门之间的沟通和协作,更快速,高效和稳定的实现环境搭建,软件开发,软件测试,软件质量分析,产品相关文档生成和产品交付的一种文化和趋势。DevOps有以下四个阶段:简单的自动化,CI与静态Docker,增强与动态Docker,以及全面CI和自动化。第一个阶段是使用了一些简单的自动化工具完成版本更新发布;第二个阶段是企业拥有了自己的CI,使用静态模式、手动部署的Docker;第三个阶段,对第二个阶段做全方位地加强,包括很多细节比如系统架构,如何实现CI,如何实现自动化的测试,并且可以拥有一个动态的Docker部署;最后,在第四个阶段就是一个全自动的阶段。目前大多数企业都处于在第一和第二阶段,devops体系都比较初级,各个环节都需要人工干预,IT企业都期盼有更好的解决方案,以实现不同的物理设备,不同的虚拟化类型,不同云计算平台之间开发、测试和运维环境的统一化和标准化。
技术实现思路
针对以上所述背景,本专利技术提供了一种基于Docker的devops持续交付与自动化系统及方法,重点解决不同的物理设备,不同的虚拟化类型,不同云计算平台之间开发、测试和运维环境的统一化和标准化的问题。为实现上述目的,本专利技术所设计的基于Docker的devops持续交付与自动化系统,其特殊之处在于,所述系统基于Docker开发平台实现,包括开发环境、镜像仓库、测试环境和运维环境;所述开发环境:用于计算机代码的开发、复查、集成、编译和版本控制,编译完成的代码自动存入所述镜像仓库中;所述镜像仓库:用于以Docker镜像的形式存储计算机代码;所述测试环境:用于从所述镜像仓库拉取需要测试的Docker镜像,并启动为Docker容器,测试通过后打上Tag标注并自动存入镜像仓库;所述运维环境:用于从所述镜像仓库(2)拉取已打上Tag标注的Docker镜像,并运行为容器应用。进一步地,所述系统还包括容器镜像管理器,所述容器镜像管理器基于kubernetes工具实现,用于管理镜像仓库、测试环境和运维环境中的Docker容器。更进一步地,所述开发环境包括持续构建平台、代码仓库,所述持续构建平台基于Jenkins平台实现,用于自动拉取代码仓库中的代码,自动编译后存储至镜像仓库。更进一步地,所述镜像仓库中的Docker镜像包括数据库镜像、应用系统镜像、定时任务系统镜像、分布式管理镜像和其他镜像。更进一步地,所述测试环境中的Docker容器包括数据库测试容器、应用系统测试容器和定时任务系统测试容器。更进一步地,所述运维环境基于K8s平台实现,所述运维环境中的Docker容器包括数据库生产容器、应用系统生产容器、定时任务系统生产容器、消息列队生产容器。更进一步地,所述开发环境中还包括代码质量分析器,所述持续构建平台自动编译代码后,调用代码质量分析器,生成代码质量分析报告。本专利技术还提出一种根据上述基于Docker的devops持续交付与自动化系统的方法,其特殊之处在于,包括如下步骤:1)开发人员通提交计算机代码,所述开发环境对计算机代码自动集成、编译并存储至镜像仓库的Docker镜像中,开发人员将对应的Docker镜像中的容器启动来预览的开发结果,如果确认已满足预期,则将该Docker镜像中推送到镜像仓库中进行存储;2)测试人员从所述镜像仓库中拉取需要测试的Docker镜像,并启动为Docker容器进行手动或者自动的功能性测试,完成测试后打上Tag标注,并自动存入镜像仓库中;3)运维人员将所述镜像仓库中被打上Tag标注的Docker镜像在运维环境中自动启动为容器应用,并远程部署至位于客户方的服务器,交付给客户使用。优选地,所述步骤3)中交付给客户使用以后,运维人员通过运维环境管理交付给客户使用的容器应用,管理方式包括统一资源监控、资源调度、实时监控。优选地,所述开发环境中还包括代码质量分析器,所述持续构建平台自动编译代码后,调用代码质量分析器,生成代码质量分析报告,其特征在于:所述持续构建平台自动编译代码后,所述代码质量分析器自动生成代码质量分析报告并通过邮件发送至开发人员。本专利技术基于DevOps的四个阶段,实现DevOps的四个技术基础分别是:版本控制,环境抽象,全自动化测试以及完全持续部署。在没有这四个基础的准备之下,DevOps就是空中楼阁。版本控制:指的是代码的开发,复查,版本控制,代码集成等能够在DevOps中更加自动化;抽象环境:是指开发的代码可以匹配兼容各种环境,比如在一个Docker镜像里,我们的代码可以根据镜像所处的不同环境,调取不同的环境变量如IP,域名,文件,存储,密码等;一个docker镜像满足多环境部署,配置独立且动态化;全自动化测试:是指所有版本,变更与其他版本的兼容性都可以得到自动的测试;完全的持续集成:是指无论在什么时间,或者什么人做的变更,都会与当前的版本代码进行持续的兼容测试,以保证所有的变更都可以最终整合在一起,实现最终版本的发布并部署到各个环境中。本专利技术的优点包括:1)本专利技术实现了开发、测试和运维环境的统一化和标准化,通过镜像容器作为标准的交付件,可在开发、测试和生产环境上以容器来运行,最终实现三套环境上的应用以及运行所依赖内容的完全一致。2)本专利技术解决底层基础环境的异构问题。基础环境的多元化造成了从Dev到Ops过程中的阻力,而使用Docker主机可无视基础环境的类型。不同的物理设备,不同的虚拟化类型,不同云计算平台,只要是运行了Docker主机的环境,最终的应用都会以容器为基础来提供服务。3)本专利技术具有易于构建、迁移和部署的特点。Docker容器实现镜像构建的标准化和可复用,镜像本身的分层机制也提高了镜像构建的效率。使用镜像仓库可以将构建好的镜像迁移到任意环境,而且环境的部署仅需要将静态只读的镜像转换为动态可运行的容器即可。4)本专利技术具有轻量和高效的特点。和需要封装操作系统的虚拟机相比,容器仅需要封装应用和应用需要的依赖文件,实现轻量的应用运行环境,且拥有比虚拟机更高的硬件资源利用率。5)本专利技术实现了工具链的标准化和快速部署。将实现DevOps所需的多种工具或软件进行Docker化后,可在任意环境实现一条或多条工具链的快速部署。附图说明图1为本专利技术基于Docker的devops持续交付与自动化系统的结构框图。其中:开发环境1,持续构建平台11,代码仓库12,代码质量分析器13,生成的Sonar质量分析报告14,镜像仓库2,数据库镜像21,应用系统镜像22,定时任务系统镜像23,分布式管理镜像24,缓存镜像25,消息队列镜像26,其他镜像27,测试环境3,数据库测试容器31,应用系统测试容器32,定时任务系统测试容器33,运维环境4,数据库生产容本文档来自技高网...
基于Docker的devops持续交付与自动化系统及方法

【技术保护点】
一种基于Docker的devops持续交付与自动化系统,其特征在于:所述系统基于Docker开发平台实现,包括开发环境(1)、镜像仓库(2)、测试环境(3)和运维环境(4);所述开发环境(1):用于计算机代码的开发、复查、集成、编译和版本控制,编译完成的代码自动存入所述镜像仓库(2)中;所述镜像仓库(2):用于以Docker镜像的形式存储计算机代码;所述测试环境(3):用于从所述镜像仓库(2)拉取需要测试的Docker镜像,并启动为Docker容器,测试通过后打上Tag标注并自动存入镜像仓库(2);所述运维环境(4):用于从所述镜像仓库(2)拉取已打上Tag标注的Docker镜像,并运行为容器应用。

【技术特征摘要】
1.一种基于Docker的devops持续交付与自动化系统,其特征在于:所述系统基于Docker开发平台实现,包括开发环境(1)、镜像仓库(2)、测试环境(3)和运维环境(4);所述开发环境(1):用于计算机代码的开发、复查、集成、编译和版本控制,编译完成的代码自动存入所述镜像仓库(2)中;所述镜像仓库(2):用于以Docker镜像的形式存储计算机代码;所述测试环境(3):用于从所述镜像仓库(2)拉取需要测试的Docker镜像,并启动为Docker容器,测试通过后打上Tag标注并自动存入镜像仓库(2);所述运维环境(4):用于从所述镜像仓库(2)拉取已打上Tag标注的Docker镜像,并运行为容器应用。2.根据权利要求1所述的基于Docker的devops持续交付与自动化系统,其特征在于:所述系统还包括容器镜像管理器(5),所述容器镜像管理器(5)基于kubernetes工具实现,用于管理镜像仓库(2)、测试环境(3)和运维环境(4)中的Docker容器。3.根据权利要求1所述的基于Docker的devops持续交付与自动化系统,其特征在于:所述开发环境(1)包括持续构建平台(11)、代码仓库(12),所述持续构建平台(11)基于Jenkins平台实现,用于自动拉取代码仓库(12)中的代码,自动编译后存储至镜像仓库(2)。4.根据权利要求1所述的基于Docker的devops持续交付与自动化系统,其特征在于:所述镜像仓库(2)中的Docker镜像包括数据库镜像(21)、应用系统镜像(22)、定时任务系统镜像(23)、分布式管理镜像(24)和其他镜像(25)。5.根据权利要求1所述的基于Docker的devops持续交付与自动化系统,其特征在于:所述测试环境(3)中的Docker容器包括数据库测试容器(31)、应用系统测试容器(32)和定时任务系统测试容器(33)。6.根据权利要求1所述的基于Docker的devops持续交付与自动化系统,其特征在于:所述运维环境(4)基于...

【专利技术属性】
技术研发人员:占进王子涛
申请(专利权)人:武汉默联股份有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1