一种基于容器的持续交付方法和装置制造方法及图纸

技术编号:33531761 阅读:21 留言:0更新日期:2022-05-19 02:04
本发明专利技术公开了一种基于容器的持续交付方法和装置,属于软件开发技术领域,包括JenkinsJenkins工具、代码管理工具Git、容器镜像仓库、容器部署引擎以及容器管理引擎,通过持续集成工具,创建持续集成任务,完成代码构建、打包推送到镜像仓库和应用的容器化部署,并创建持续部署任务,定义自动化测试脚本任务集合,执行测试任务。该基于容器的持续交付方法和装置,通过定义详尽的持续集成和持续部署流程,以及通过Jenkins定义pipeline的方式自由编排Jenkins任务的构建顺序,将传统应用全部容器化打包,建立了一套合理的流程方案,降低了成本,达到了DevOps提出的理念。达到了DevOps提出的理念。达到了DevOps提出的理念。

【技术实现步骤摘要】
一种基于容器的持续交付方法和装置


[0001]本专利技术属于软件开发
,具体为一种基于容器的持续交付方法和装置。

技术介绍

[0002]在目前软件开发的整个生命周期当中,DevOps是一个崭新的概念,旨在通过自动化“软件开发交付”和“业务以及架构变更”的流程,来使得构建、测试、发布能够更加地快捷、频繁和可靠,流水线化,而这一概念所提倡的快捷、频繁和可靠的交付需要一套完全自动化的构建流程来保证,目前的软件在开发、测试、部署、交付、运维的各个环节都有一套比较成熟的方法论和工具,但是没有一个成熟的完整的方法论体系来解决DevOps提出的这种快速、频繁和可靠的自动化的持续交付,使得每个环节的的参与人员花费在沟通上的成本非常大,并且需要人为的干预才能跑完整个流程,这使得软件的最终交付很难达到DevOps提出的理念,而使团队对DevOps的做法又望而却步。
[0003]为了解决上述问题,我们提出了一种基于容器的持续交付方法和装置,将传统应用全部容器化打包,建立了一套合理的流程方案,降低了成本,达到了DevOps提出的理念。

技术实现思路

[0004]针对现有技术的不足,本专利技术提供了一种基于容器的持续交付方法和装置,以解决上述
技术介绍
中提出的问题。
[0005]为实现上述目的,本专利技术提供如下技术方案:一种基于容器的持续交付方法,包括以下步骤:
[0006]S1、编写业务应用代码,并提供所述业务应用代码容器化应用的构建文件;
[0007]S2、内置所述容器化应用的构建文件和编译容器镜像的配置文件;
[0008]S3、通过持续集成工具,创建持续集成任务,完成代码构建、打包推送到镜像仓库和应用的容器化部署;
[0009]S4、通过持续集成工具,创建持续部署任务;
[0010]S5、定义自动化测试脚本任务集合,运行自动化测试脚本,生成并发送测试报告;
[0011]S6、自定义持续集成到持续部署的Pipeline,执行测试任务;
[0012]S7、配置Webhook地址到开发的代码库中,开发人员通过提交业务应用代码或合并业务应用代码,触发在持续集成工具中定义的Pipline任务。
[0013]进一步优化本技术方案,所述S1中,采用代码管理工具Git用于编写业务应用代码。
[0014]进一步优化本技术方案,所述S2中,通过在Jenkins工具内置容器化应用的构建文件,依据构建文件将业务应用打包成镜像并推送到镜像仓库中。
[0015]进一步优化本技术方案,所述S3中,创建持续集成任务基于Jenkins工具进行,该任务需定义代码仓库源地址,需要构建的分支,Jenkins在执行此任务时,通过此地址进行代码拉取;编译打包的方式;运行内置在代码或额外提供的单元测试;通过调用Docker插件
完成应用的容器化及将生成好的容器镜像推送到镜像仓库中。
[0016]进一步优化本技术方案,所述Jenkins工具支持的插件有Git、SVN、Docker和Maven,用户可根据自身需要进行插件的安装。
[0017]进一步优化本技术方案,所述S4中,创建持续部署任务基于Jenkins工具进行,根据使用的容器部署引擎进行部署任务的模板定义,选用kubernetes时,模板文件包含kubernetes所能解析的Service、Deployment以及Configmap资源的定义。
[0018]进一步优化本技术方案,所述S5中,通过Jenkins工具添加额外的集成测试任务集合,用于运行自动化测试脚本验证部署好的环境,并生成测试报告通过邮件或企业沟通群的方式通知QA和测试人员。
[0019]进一步优化本技术方案,所述S6中,通过Jenkins工具编排一个Pipeline任务,指定从持续集成、持续部署到测试任务的工作流,工作流中的任务可以根据自己的需要独立串行进行,也可以并发进行。
[0020]一种基于容器的持续交付装置,基于上述的一种基于容器的持续交付方法进行操作,包括JenkinsJenkins工具、代码管理工具Git、容器镜像仓库、容器部署引擎以及容器管理引擎,用于定义持续集成和持续部署流程以及定义pipeline的方式自由编排Jenkins任务的构建顺序,达到最终的交付。
[0021]进一步优化本技术方案,所述JenkinsJenkins工具用于监控持续集成和持续部署工作,所述代码管理工具Git用于编写业务代码,所述容器管理引擎采用Docker,用于打包应用以及依赖包到可移植的容器中,并发布到的Linux机器上,所述容器镜像仓库用于存放Docker镜像的仓库,并提供镜像的下载上传功能,所述容器管理引擎用于负责对容器的网络,存储和编排的工作。
[0022]与现有技术相比,本专利技术提供了一种基于容器的持续交付方法和装置,具备以下有益效果:
[0023]该基于容器的持续交付方法和装置,通过定义详尽的持续集成和持续部署流程,以及通过Jenkins定义pipeline的方式自由编排Jenkins任务的构建顺序,将传统应用全部容器化打包,建立了一套合理的流程方案,降低了成本,达到了DevOps提出的理念。
附图说明
[0024]图1为本专利技术提出的一种基于容器的持续交付方法的流程示意图。
具体实施方式
[0025]下面将结合本专利技术的实施例,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0026]实施例一:
[0027]请参阅图1,一种基于容器的持续交付方法,包括以下步骤:
[0028]S1、编写业务应用代码,并提供所述业务应用代码容器化应用的构建文件。
[0029]进一步的,采用代码管理工具Git用于编写业务应用代码。
[0030]S2、内置所述容器化应用的构建文件和编译容器镜像的配置文件。
[0031]进一步的,通过在Jenkins工具内置容器化应用的构建文件(Dockerfile),依据构建文件将业务应用打包成镜像并推送到镜像仓库中。
[0032]S3、通过持续集成工具,创建持续集成任务,完成代码构建、打包推送到镜像仓库和应用的容器化部署。
[0033]进一步的,创建持续集成任务基于Jenkins工具进行,该任务需定义代码仓库源地址,需要构建的分支,Jenkins在执行此任务时,通过此地址进行代码拉取;编译打包的方式(maven、gradle或shell等);运行内置在代码或额外提供的单元测试;通过调用Docker插件完成应用的容器化及将生成好的容器镜像推送到镜像仓库中。其中,所述Jenkins工具支持的插件有Git、SVN、Docker和Maven,用户可根据自身需要进行插件的安装。
[0034]S4、通过持续集成工具,创建持续部署任务。...

【技术保护点】

【技术特征摘要】
1.一种基于容器的持续交付方法,其特征在于,包括以下步骤:S1、编写业务应用代码,并提供所述业务应用代码容器化应用的构建文件;S2、内置所述容器化应用的构建文件和编译容器镜像的配置文件;S3、通过持续集成工具,创建持续集成任务,完成代码构建、打包推送到镜像仓库和应用的容器化部署;S4、通过持续集成工具,创建持续部署任务;S5、定义自动化测试脚本任务集合,运行自动化测试脚本,生成并发送测试报告;S6、自定义持续集成到持续部署的Pipeline,执行测试任务;S7、配置Webhook地址到开发的代码库中,开发人员通过提交业务应用代码或合并业务应用代码,触发在持续集成工具中定义的Pipline任务。2.根据权利要求1所述的一种基于容器的持续交付方法,其特征在于,所述S1中,采用代码管理工具Git用于编写业务应用代码。3.根据权利要求1所述的一种基于容器的持续交付方法,其特征在于,所述S2中,通过在Jenkins工具内置容器化应用的构建文件,依据构建文件将业务应用打包成镜像并推送到镜像仓库中。4.根据权利要求1所述的一种基于容器的持续交付方法,其特征在于,所述S3中,创建持续集成任务基于Jenkins工具进行,该任务需定义代码仓库源地址,需要构建的分支,Jenkins在执行此任务时,通过此地址进行代码拉取;编译打包的方式;运行内置在代码或额外提供的单元测试;通过调用Docker插件完成应用的容器化及将生成好的容器镜像推送到镜像仓库中。5.根据权利要求4所述的一种基于容器的持续交付方法,其特征在于,所述Jenkins工具支持的插件有Git、SVN、Docker和Maven,用户根据自身需要进行插件的安装。6.根据权利要求1所述的一种基于容器的持续交付方法,其特征在于,所述...

【专利技术属性】
技术研发人员:申俊波王新龙来敬佛刘莹
申请(专利权)人:北京航天智造科技发展有限公司
类型:发明
国别省市:

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

1