CN115981673B - 一种基于Docker的devops持续交付与自动化系统及方法 - Google Patents
一种基于Docker的devops持续交付与自动化系统及方法 Download PDFInfo
- Publication number
- CN115981673B CN115981673B CN202211434972.2A CN202211434972A CN115981673B CN 115981673 B CN115981673 B CN 115981673B CN 202211434972 A CN202211434972 A CN 202211434972A CN 115981673 B CN115981673 B CN 115981673B
- Authority
- CN
- China
- Prior art keywords
- docker
- devots
- mirror image
- docker container
- project
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000002459 sustained effect Effects 0.000 title claims abstract description 12
- 230000010354 integration Effects 0.000 claims abstract description 27
- 238000004806 packaging method and process Methods 0.000 claims abstract description 16
- 230000033772 system development Effects 0.000 claims abstract description 12
- 238000012360 testing method Methods 0.000 claims description 29
- 238000012795 verification Methods 0.000 claims description 11
- 230000009286 beneficial effect Effects 0.000 description 10
- 230000018109 developmental process Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于Docker的devops持续交付与自动化系统及方法,该方法包括:基于devops系统开发环境,进行项目代码持续集成操作,将集成后的项目代码打包为Docker镜像,将Docker镜像存储于镜像仓库;Docker镜像根据项目的业务进行配置参数操作,生成Docker容器;将Docker容器远程部署到对应不同环境的服务器,交付至客户端。通过devops系统的代码集成和服务部署实现了系统的自动化,避免人工操作的错误,极大提高了效率,降低了错误成本。该devops系统还具有资源共享、资源利用率高、可移植性高和持续部署的优点。
Description
技术领域
本发明涉及互联网软件开发技术领域,尤其涉及一种基于Docker的devops持续交付与自动化系统及方法。
背景技术
随着互联网敏捷开发模式的流行,软件研发周期变短,迭代速度变快,传统的开发和运维方式难以有效支持。研发人员完成指定功能后,需要手动集成各模块代码,在代码集成后,需要人工编译、人工部署。然而,依赖人工操作的模式容易出错,发生错误时研发人员需要花费额外的时间和精力处理问题,导致项目延期。代码部署上线后,服务内部如果发生错误,研发人员无法快速感知。另外,用户访问流量具有不可控性,在流量高峰期间,服务资源可能无法支撑高并发访问,在流量低谷期间,富余的服务资源又会增加企业成本。在线上服务运行过程中,如果需要修复代码问题或者增加新功能,需要先停止服务,这样会影响用户体验并且降低企业收益。
发明内容
本发明提供了一种基于Docker的devops持续交付与自动化系统及方法,以解决现有技术中存在的随着互联网敏捷开发模式的流行,软件研发周期变短,迭代速度变快,传统的开发和运维方式难以有效支持。研发人员完成指定功能后,需要手动集成各模块代码,在代码集成后,需要人工编译、人工部署。然而,依赖人工操作的模式容易出错,发生错误时研发人员需要花费额外的时间和精力处理问题,导致项目延期。代码部署上线后,服务内部如果发生错误,研发人员无法快速感知。另外,用户访问流量具有不可控性,在流量高峰期间,服务资源可能无法支撑高并发访问,在流量低谷期间,富余的服务资源又会增加企业成本。在线上服务运行过程中,如果需要修复代码问题或者增加新功能,需要先停止服务,这样会影响用户体验并且降低企业收益的上述问题。
为了达到上述目的,本发明提供如下技术方案:
一种基于Docker的devops持续交付与自动化方法,包括:
S101:基于devops系统开发环境,进行项目代码持续集成操作,将集成后的项目代码打包为Docker镜像,将Docker镜像存储于镜像仓库;
S102:Docker镜像根据项目的业务进行配置参数操作,生成Docker容器;
S103:将Docker容器远程部署到对应不同环境的服务器,交付至客户端。
其中,所述S101步骤包括:
S1011:操作人员通过账号登录devops系统,其中,账号验证成功后获取devops系统的自动化部署权限;
S1012:基于客户需求,在devops系统界面进行项目代码持续集成操作,devops系统后台对集成后的项目代码进行打包,生成Docker镜像;
S1013:Docker镜像上传至远端的共享镜像仓库中,其他系统可通过镜像仓库拉取Docker镜像中的运行应用程序。
其中,所述S1022步骤包括:
S1021:基于项目的业务要求,在devops系统界面设置不同的参数配置,参数配置包括编写yaml文件,devops系统后台对设置的参数配置信息进行解析;
S1022:Docker镜像根据解析后的参数配置信息进行配置操作,其中,配置操作包括执行yaml文件操作,基于配置操作生成Docker容器。
其中,所述S103步骤包括:
S1031:基于业务项目的节点类型,为Docker容器获取对应的集群地址,其中,每个业务项目的服务节点类型根据部署的环境类型设置;
S1032:基于对应的集群地址,将Docker容器发送至集群地址对应的服务器,交付至客户端。
其中,所述S1021步骤包括:
对项目业务进行基本配置,其中,每个业务项目信息包括环境ID、http服务地址和socket地址,业务项目基本配置完成后,通过请求devops系统配置接口查看业务项目的配置;
在项目业务基础配置完成后,选择对应的发布参数,发布参数包括部署代码、部署环境ID、是否自动部署Docker容器和默认自动部署,devops系统后台将对应的发布参数进行解析后进行Docker镜像配置操作,获取Docker容器。
一种基于Docker的devops持续交付与自动化系统,包括:
构建Docker镜像单元用于基于devops系统开发环境,进行项目代码持续集成操作,将集成后的项目代码打包为Docker镜像,将Docker镜像存储于镜像仓库;
构建Docker容器单元用于Docker镜像根据项目的业务进行配置参数操作,生成Docker容器;
部署Docker容器单元用于将Docker容器远程部署到对应不同环境的服务器,交付至客户端。
其中,所述构建Docker镜像单元包括:
账号登录子单元用于操作人员通过账号登录devops系统,其中,账号验证成功后获取devops系统的自动化部署权限;
代码集成操作子单元用于基于客户需求在devops系统界面进行项目代码持续集成操作,devops系统后台对集成后的项目代码进行打包,生成Docker镜像;
Docker镜像存储子单元用于Docker镜像上传至远端的共享镜像仓库中,其他系统可通过镜像仓库拉取Docker镜像中的运行应用程序。
其中,所述构建Docker容器单元包括:
构建Docker容器第一子单元用于基于项目的业务要求,在devops系统界面设置不同的参数配置,参数配置包括编写yaml文件,devops系统后台对设置的参数配置信息进行解析;
构建Docker容器第二子单元用于Docker镜像根据解析后的参数配置信息进行配置操作,其中,配置操作包括执行yaml文件操作,基于配置操作生成Docker容器。
其中,所述部署Docker容器单元包括:
部署Docker容器第一子单元用于基于业务项目的节点类型,为Docker容器获取对应的集群地址,其中,每个业务项目的服务节点类型根据部署的环境类型设置;
部署Docker容器第二子单元用于基于对应的集群地址,将Docker容器发送至集群地址对应的服务器,交付至客户端。
其中,所述构建Docker容器第一子单元包括:
对项目业务进行基本配置,其中,每个业务项目信息包括环境ID、http服务地址和socket地址,业务项目基本配置完成后,通过请求devops系统配置接口查看业务项目的配置;
在项目业务基础配置完成后,选择对应的发布参数,发布参数包括部署代码、部署环境ID、是否自动部署Docker容器和默认自动部署,devops系统后台将对应的发布参数进行解析后进行Docker镜像配置操作,获取Docker容器。
与现有技术相比,本发明具有以下优点:
一种基于Docker的devops持续交付与自动化方法,包括:基于devops系统开发环境,进行项目代码持续集成操作,将集成后的项目代码打包为Docker镜像,将Docker镜像存储于镜像仓库;Docker镜像根据项目的业务进行配置参数操作,生成Docker容器;将Docker容器远程部署到对应不同环境的服务器,交付至客户端。通过devops系统的代码集成和服务部署实现了系统的自动化,避免人工操作的错误,极大提高了效率,降低了错误成本。该devops系统还具有资源共享、资源利用率高、可移植性高和持续部署的优点。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种基于Docker的devops持续交付与自动化方法的流程图;
图2为本发明实施例中一种基于Docker的devops持续交付与自动化方法的构建Docker镜像流程图;
图3为本发明实施例中一种基于Docker的devops持续交付与自动化方法的构建Docker容器流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明实施例提供了一种基于Docker的devops持续交付与自动化方法,包括:
S101:基于devops系统开发环境,进行项目代码持续集成操作,将集成后的项目代码打包为Docker镜像,将Docker镜像存储于镜像仓库;
S102:Docker镜像根据项目的业务进行配置参数操作,生成Docker容器;
S103:将Docker容器远程部署到对应不同环境的服务器,交付至客户端。
上述技术方案的工作原理为:基于devops系统开发环境,进行项目代码持续集成操作,将集成后的项目代码打包为Docker镜像,将Docker镜像存储于镜像仓库;Docker镜像根据项目的业务进行配置参数操作,生成Docker容器;将Docker容器远程部署到对应不同环境的服务器,交付至客户端。通过devops系统的代码集成和服务部署实现了系统的自动化,避免人工操作的错误,极大提高了效率,降低了错误成本。该devops系统还具有资源共享、资源利用率高、可移植性高和持续部署的优点。
上述技术方案的有益效果为:基于devops系统开发环境,进行项目代码持续集成操作,将集成后的项目代码打包为Docker镜像,将Docker镜像存储于镜像仓库;Docker镜像根据项目的业务进行配置参数操作,生成Docker容器;将Docker容器远程部署到对应不同环境的服务器,交付至客户端。通过devops系统的代码集成和服务部署实现了系统的自动化,避免人工操作的错误,极大提高了效率,降低了错误成本。该devops系统还具有资源共享、资源利用率高、可移植性高和持续部署的优点。
在另一实施例中,所述S101步骤包括:
S1011:操作人员通过账号登录devops系统,其中,账号验证成功后获取devops系统的自动化部署权限;
S1012:基于客户需求,在devops系统界面进行项目代码持续集成操作,devops系统后台对集成后的项目代码进行打包,生成Docker镜像;
S1013:Docker镜像上传至远端的共享镜像仓库中,其他系统可通过镜像仓库拉取Docker镜像中的运行应用程序。
上述技术方案的工作原理为:操作人员在devops系统前端界面发起登录请求,通过devops系统的主账号和密码进行登录,登录成功后获取到devops系统主账号服务的session密钥,携带session密钥向devops系统申请子token,子token是devops系统产生并认证的,收到申请子token的请求后,devops系统先验证session的合法性,若session是非法的,devops系统直接提示错误信息并且终止流程,若session是合法的,devops系统生成子token并且下发给浏览器,浏览器收到子token后重定向到devops系统的登录页,devops系统继续验证子token的合法性,若验证失败则继续提示错误信息并终止流程,若验证通过则表明用户成功登录devops系统;devops系统后台解析子token获取用户ID,并通过查询用户、角色、权限的关系数据获取到自动化部署权限。
在devops系统中源码管理使用分布式软件,操作人员开发完某个业务功能代码后,通过分布式软件提交代码到Gitlab上,Gitlab自动合并代码后判断是否有冲突,若无冲突则继续开发下一个业务功能代码;
操作人员项目中编写gitlab-ci代码,并且在Git版本库中设置webhook,在提交代码后触发gitlab-ci代码内构建的功能,devops系统在构建的过程中,会依次执行基础依赖拉取、代码风格检查、依赖库拉取、编译的操作;
devops系统将代码构建的结果记录到日志中并显示在devops系统界面上,同时将结果发送到相关人员的企业邮箱里。
上述技术方案的有益效果为:操作人员通过账号登录devops系统,其中,账号验证成功后获取devops系统的自动化部署权限;基于客户需求,在devops系统界面进行项目代码持续集成操作,devops系统后台对集成后的项目代码进行打包,生成Docker镜像;Docker镜像上传至远端的共享镜像仓库中,其他系统可通过镜像仓库拉取Docker镜像中的运行应用程序。操作人员需要用到某种功能的Docker镜像时,不需要自己开发,直接去镜像仓库拉取对应的Docker镜像,根据自己项目的实际需求进行配置,然后启动生成Docker容器。
在另一实施例中,所述S1022步骤包括:
S1021:基于项目的业务要求,在devops系统界面设置不同的参数配置,参数配置包括编写yaml文件,devops系统后台对设置的参数配置信息进行解析;
S1022:Docker镜像根据解析后的参数配置信息进行配置操作,其中,配置操作包括执行yaml文件操作,基于配置操作生成Docker容器。
上述技术方案的工作原理为:基于项目的业务要求,在devops系统界面设置不同的参数配置,参数配置包括编写yaml文件,devops系统后台对设置的参数配置信息进行解析;Docker镜像根据解析后的参数配置信息进行配置操作,其中,配置操作包括执行yaml文件操作,基于配置操作生成Docker容器。Docker容器的可移植性很强,它能够适应不同的server和系统,只要将Docker镜像打包上传到镜像仓库中,其他任意平台都可以拉取该Docker镜像运行应用程序。
上述技术方案的有益效果为:基于项目的业务要求,在devops系统界面设置不同的参数配置,参数配置包括编写yaml文件,devops系统后台对设置的参数配置信息进行解析;Docker镜像根据解析后的参数配置信息进行配置操作,其中,配置操作包括执行yaml文件操作,基于配置操作生成Docker容器。使用Docker容器的应用程序对系统资源的利用率更高;同时由于没有虚拟的操作系统需要加载运行,Docker容器的启动速度也会更快。
在另一实施例中,所述S103步骤包括:
S1031:基于业务项目的节点类型,为Docker容器获取对应的集群地址,其中,每个业务项目的服务节点类型根据部署的环境类型设置;
S1032:基于对应的集群地址,将Docker容器发送至集群地址对应的服务器,交付至客户端。
上述技术方案的工作原理为:操作人员devops系统上设置伸缩配置以及伸缩规则,伸缩配置包括服务节点类型,伸缩规则包括当CPU使用率达到某个阈值时则进行伸缩。
基于业务项目的节点类型,为Docker容器获取对应的集群地址,其中,每个业务项目的服务节点类型根据部署的环境类型设置;基于对应的集群地址,将Docker容器发送至集群地址对应的服务器,交付至客户端。
在业务项目的服务节点中的某种服务指标数据到达指定的阀值时,devops系统将自动增加一个或者多个对等的节点,而在服务指标数据下降到指定阀值时,devops系统将自动释放多余的节点,从而合理有效地利用资源且实现资源利用率最大化。
上述技术方案的有益效果为:基于业务项目的节点类型,为Docker容器获取对应的集群地址,其中,每个业务项目的服务节点类型根据部署的环境类型设置;基于对应的集群地址,将Docker容器发送至集群地址对应的服务器,交付至客户端。Docker容器不需要新建一个虚拟的操作系统,当有多个Docker容器时,不会消耗服务器的任何资源,从而提高了资源的利用率。
在另一实施例中,所述S1021步骤包括:
对项目业务进行基本配置,其中,每个业务项目信息包括环境ID、http服务地址和socket地址,业务项目基本配置完成后,通过请求devops系统配置接口查看业务项目的配置;
在项目业务基础配置完成后,选择对应的发布参数,发布参数包括部署代码、部署环境ID、是否自动部署Docker容器和默认自动部署,devops系统后台将对应的发布参数进行解析后进行Docker镜像配置操作,获取Docker容器。
上述技术方案的工作原理为:对项目业务进行基本配置,其中,每个业务项目信息包括环境ID、http服务地址和socket地址,业务项目基本配置完成后,通过请求devops系统配置接口查看业务项目的配置;在项目业务基础配置完成后,选择对应的发布参数,发布参数包括部署代码、部署环境ID、是否自动部署Docker容器和默认自动部署,devops系统后台将对应的发布参数进行解析后进行Docker镜像配置操作,获取Docker容器。
上述技术方案的有益效果为:对项目业务进行基本配置,其中,每个业务项目信息包括环境ID、http服务地址和socket地址,业务项目基本配置完成后,通过请求devops系统配置接口查看业务项目的配置;在项目业务基础配置完成后,选择对应的发布参数,发布参数包括部署代码、部署环境ID、是否自动部署Docker容器和默认自动部署,devops系统后台将对应的发布参数进行解析后进行Docker镜像配置操作,获取Docker容器。操作人员通过devops系统开发对应的Dockerfile,生成Docker镜像,软件项目通过Docker镜像来运行,从而实现应用程序持续部署。
在另一实施例中,一种基于Docker的devops持续交付与自动化系统,包括:
构建Docker镜像单元用于基于devops系统开发环境,进行项目代码持续集成操作,将集成后的项目代码打包为Docker镜像,将Docker镜像存储于镜像仓库;
构建Docker容器单元用于Docker镜像根据项目的业务进行配置参数操作,生成Docker容器;
部署Docker容器单元用于将Docker容器远程部署到对应不同环境的服务器,交付至客户端。
上述技术方案的工作原理为:构建Docker镜像单元用于基于devops系统开发环境,进行项目代码持续集成操作,将集成后的项目代码打包为Docker镜像,将Docker镜像存储于镜像仓库;构建Docker容器单元用于Docker镜像根据项目的业务进行配置参数操作,生成Docker容器;部署Docker容器单元用于将Docker容器远程部署到对应不同环境的服务器,交付至客户端。通过devops系统的代码集成和服务部署实现了系统的自动化,避免人工操作的错误,极大提高了效率,降低了错误成本。该devops系统还具有资源共享、资源利用率高、可移植性高和持续部署的优点。
上述技术方案的有益效果为:构建Docker镜像单元用于基于devops系统开发环境,进行项目代码持续集成操作,将集成后的项目代码打包为Docker镜像,将Docker镜像存储于镜像仓库;构建Docker容器单元用于Docker镜像根据项目的业务进行配置参数操作,生成Docker容器;部署Docker容器单元用于将Docker容器远程部署到对应不同环境的服务器,交付至客户端。通过devops系统的代码集成和服务部署实现了系统的自动化,避免人工操作的错误,极大提高了效率,降低了错误成本。该devops系统还具有资源共享、资源利用率高、可移植性高和持续部署的优点。
在另一实施例中,所述构建Docker镜像单元包括:
账号登录子单元用于操作人员通过账号登录devops系统,其中,账号验证成功后获取devops系统的自动化部署权限;
代码集成操作子单元用于基于客户需求在devops系统界面进行项目代码持续集成操作,devops系统后台对集成后的项目代码进行打包,生成Docker镜像;
Docker镜像存储子单元用于Docker镜像上传至远端的共享镜像仓库中,其他系统可通过镜像仓库拉取Docker镜像中的运行应用程序。
上述技术方案的工作原理为:操作人员在devops系统前端界面发起登录请求,通过devops系统的主账号和密码进行登录,登录成功后获取到devops系统主账号服务的session密钥,携带session密钥向devops系统申请子token,子token是devops系统产生并认证的,收到申请子token的请求后,devops系统先验证session的合法性,若session是非法的,devops系统直接提示错误信息并且终止流程,若session是合法的,devops系统生成子token并且下发给浏览器,浏览器收到子token后重定向到devops系统的登录页,devops系统继续验证子token的合法性,若验证失败则继续提示错误信息并终止流程,若验证通过则表明用户成功登录devops系统;devops系统后台解析子token获取用户ID,并通过查询用户、角色、权限的关系数据获取到自动化部署权限。
在devops系统中源码管理使用分布式软件,操作人员开发完某个业务功能代码后,通过分布式软件提交代码到Gitlab上,Gitlab自动合并代码后判断是否有冲突,若无冲突则继续开发下一个业务功能代码;
操作人员项目中编写gitlab-ci代码,并且在Git版本库中设置webhook,在提交代码后触发gitlab-ci代码内构建的功能,devops系统在构建的过程中,会依次执行基础依赖拉取、代码风格检查、依赖库拉取、编译的操作;
devops系统将代码构建的结果记录到日志中并显示在devops系统界面上,同时将结果发送到相关人员的企业邮箱里。
上述技术方案的有益效果为:账号登录子单元用于操作人员通过账号登录devops系统,其中,账号验证成功后获取devops系统的自动化部署权限;代码集成操作子单元用于基于客户需求在devops系统界面进行项目代码持续集成操作,devops系统后台对集成后的项目代码进行打包,生成Docker镜像;Docker镜像存储子单元用于Docker镜像上传至远端的共享镜像仓库中,其他系统可通过镜像仓库拉取Docker镜像中的运行应用程序。操作人员需要用到某种功能的Docker镜像时,不需要自己开发,直接去镜像仓库拉取对应的Docker镜像,根据自己项目的实际需求进行配置,然后启动生成Docker容器。
在另一实施例中,所述构建Docker容器单元包括:
构建Docker容器第一子单元用于基于项目的业务要求,在devops系统界面设置不同的参数配置,参数配置包括编写yaml文件,devops系统后台对设置的参数配置信息进行解析;
构建Docker容器第二子单元用于Docker镜像根据解析后的参数配置信息进行配置操作,其中,配置操作包括执行yaml文件操作,基于配置操作生成Docker容器。
上述技术方案的工作原理为:构建Docker容器第一子单元用于基于项目的业务要求,在devops系统界面设置不同的参数配置,参数配置包括编写yaml文件,devops系统后台对设置的参数配置信息进行解析;构建Docker容器第二子单元用于Docker镜像根据解析后的参数配置信息进行配置操作,其中,配置操作包括执行yaml文件操作,基于配置操作生成Docker容器。Docker容器的可移植性很强,它能够适应不同的server和系统,只要将Docker镜像打包上传到镜像仓库中,其他任意平台都可以拉取该Docker镜像运行应用程序。
上述技术方案的有益效果为:构建Docker容器第一子单元用于基于项目的业务要求,在devops系统界面设置不同的参数配置,参数配置包括编写yaml文件,devops系统后台对设置的参数配置信息进行解析;构建Docker容器第二子单元用于Docker镜像根据解析后的参数配置信息进行配置操作,其中,配置操作包括执行yaml文件操作,基于配置操作生成Docker容器。使用Docker容器的应用程序对系统资源的利用率更高;同时由于没有虚拟的操作系统需要加载运行,Docker容器的启动速度也会更快。
在另一实施例中,所述部署Docker容器单元包括:
部署Docker容器第一子单元用于基于业务项目的节点类型,为Docker容器获取对应的集群地址,其中,每个业务项目的服务节点类型根据部署的环境类型设置;
部署Docker容器第二子单元用于基于对应的集群地址,将Docker容器发送至集群地址对应的服务器,交付至客户端。
上述技术方案的工作原理为:部署Docker容器第一子单元用于基于业务项目的节点类型,为Docker容器获取对应的集群地址,其中,每个业务项目的服务节点类型根据部署的环境类型设置;部署Docker容器第二子单元用于基于对应的集群地址,将Docker容器发送至集群地址对应的服务器,交付至客户端。Docker容器不需要新建一个虚拟的操作系统,当有多个Docker容器时,不会消耗服务器的任何资源,从而提高了资源的利用率。
在交付客户端之前,需要通过交付测试单元对系统进行测试,验收测试用于验证系统整体是否满足客户需求,验收测试的好坏直接影响着系统能否成功交付,在验证测试过程中通过衡量测试用例的不同排序对程序模块的覆盖速率进行验证,其计算公式为:
其中,F表示衡量测试用例的不同排序对程序模块的覆盖速率;表示m表示程序代码的个数;n表示测试用例的个数;TBi表示第i个程序代码第1次被测试用例覆盖时该测试用例所处的次序,其中,i表示1~i中的某一数值;
通过衡量测试用例的不同排序对程序模块的覆盖速率对测试进行优化提高持续集成中测试的时间效率,降低DevOps开发的交付周期并且不影响软件质量。
上述技术方案的有益效果为:部署Docker容器第一子单元用于基于业务项目的节点类型,为Docker容器获取对应的集群地址,其中,每个业务项目的服务节点类型根据部署的环境类型设置;部署Docker容器第二子单元用于基于对应的集群地址,将Docker容器发送至集群地址对应的服务器,交付至客户端。Docker容器不需要新建一个虚拟的操作系统,当有多个Docker容器时,不会消耗服务器的任何资源,从而提高了资源的利用率。
在另一实施例中,所述构建Docker容器第一子单元包括:
对项目业务进行基本配置,其中,每个业务项目信息包括环境ID、http服务地址和socket地址,业务项目基本配置完成后,通过请求devops系统配置接口查看业务项目的配置;
在项目业务基础配置完成后,选择对应的发布参数,发布参数包括部署代码、部署环境ID、是否自动部署Docker容器和默认自动部署,devops系统后台将对应的发布参数进行解析后进行Docker镜像配置操作,获取Docker容器。
上述技术方案的工作原理为:对项目业务进行基本配置,其中,每个业务项目信息包括环境ID、http服务地址和socket地址,业务项目基本配置完成后,通过请求devops系统配置接口查看业务项目的配置;在项目业务基础配置完成后,选择对应的发布参数,发布参数包括部署代码、部署环境ID、是否自动部署Docker容器和默认自动部署,devops系统后台将对应的发布参数进行解析后进行Docker镜像配置操作,获取Docker容器。操作人员通过devops系统开发对应的Dockerfile,生成Docker镜像,软件项目通过Docker镜像来运行,从而实现应用程序持续部署。
上述技术方案的有益效果为:对项目业务进行基本配置,其中,每个业务项目信息包括环境ID、http服务地址和socket地址,业务项目基本配置完成后,通过请求devops系统配置接口查看业务项目的配置;在项目业务基础配置完成后,选择对应的发布参数,发布参数包括部署代码、部署环境ID、是否自动部署Docker容器和默认自动部署,devops系统后台将对应的发布参数进行解析后进行Docker镜像配置操作,获取Docker容器。操作人员通过devops系统开发对应的Dockerfile,生成Docker镜像,软件项目通过Docker镜像来运行,从而实现应用程序持续部署。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (2)
1.一种基于Docker的devops持续交付与自动化方法,其特征在于,包括:
S101:基于devops系统开发环境,进行项目代码持续集成操作,将集成后的项目代码打包为Docker镜像,将Docker镜像存储于镜像仓库;
S102:Docker镜像根据项目的业务进行配置参数操作,生成Docker容器;
S103:将Docker容器远程部署到对应不同环境的服务器,交付至客户端;
所述S101步骤包括:
S1011:操作人员通过账号登录devops系统,其中,账号验证成功后获取devops系统的自动化部署权限;
S1012:基于客户需求,在devops系统界面进行项目代码持续集成操作,devops系统后台对集成后的项目代码进行打包,生成Docker镜像;
S1013:Docker镜像上传至远端的共享镜像仓库中,其他系统可通过镜像仓库拉取Docker镜像中的运行应用程序;
其中,操作人员在devops系统前端界面发起登录请求,通过devops系统的主账号和密码进行登录,登录成功后获取到devops系统主账号服务的session密钥,携带session密钥向devops系统申请子token,子token是devops系统产生并认证的,收到申请子token的请求后,devops系统先验证session的合法性,若session是非法的,devops系统直接提示错误信息并且终止流程,若session是合法的,devops系统生成子token并且下发给浏览器,浏览器收到子token后重定向到devops系统的登录页,devops系统继续验证子token的合法性,若验证失败则继续提示错误信息并终止流程,若验证通过则表明用户成功登录devops系统;devops系统后台解析子token获取用户ID,并通过查询用户、角色、权限的关系数据获取到自动化部署权限;
所述S1022步骤包括:
S1021:基于项目的业务要求,在devops系统界面设置不同的参数配置,参数配置包括编写yaml文件,devops系统后台对设置的参数配置信息进行解析;
S1022:Docker镜像根据解析后的参数配置信息进行配置操作,其中,配置操作包括执行yaml文件操作,基于配置操作生成Docker容器;
所述S1021步骤包括:
对项目业务进行基本配置,其中,每个业务项目信息包括环境ID、http服务地址和socket地址,业务项目基本配置完成后,通过请求devops系统配置接口查看业务项目的配置;
在项目业务基础配置完成后,选择对应的发布参数,发布参数包括部署代码、部署环境ID、是否自动部署Docker容器和默认自动部署,devops系统后台将对应的发布参数进行解析后进行Docker镜像配置操作,获取Docker容器;
所述S103步骤包括:
S1031:基于业务项目的节点类型,为Docker容器获取对应的集群地址,其中,每个业务项目的服务节点类型根据部署的环境类型设置;
S1032:基于对应的集群地址,将Docker容器发送至集群地址对应的服务器,交付至客户端;
在交付客户端之前,需要通过交付测试单元对系统进行测试,验收测试用于验证系统整体是否满足客户需求,验收测试的好坏影响系统能否成功交付,在验证测试过程中通过衡量测试用例的不同排序对程序模块的覆盖速率进行验证,计算公式为:
其中,F表示衡量测试用例的不同排序对程序模块的覆盖速率;表示m表示程序代码的个数;n表示测试用例的个数;TBi表示第i个程序代码第1次被测试用例覆盖时该测试用例所处的次序,其中,i表示1~i中的某一数值。
2.一种基于Docker的devops持续交付与自动化系统,其特征在于,包括:
构建Docker镜像单元用于基于devops系统开发环境,进行项目代码持续集成操作,将集成后的项目代码打包为Docker镜像,将Docker镜像存储于镜像仓库;
构建Docker容器单元用于Docker镜像根据项目的业务进行配置参数操作,生成Docker容器;
部署Docker容器单元用于将Docker容器远程部署到对应不同环境的服务器,交付至客户端;
所述构建Docker镜像单元包括:
账号登录子单元用于操作人员通过账号登录devops系统,其中,账号验证成功后获取devops系统的自动化部署权限;
代码集成操作子单元用于基于客户需求在devops系统界面进行项目代码持续集成操作,devops系统后台对集成后的项目代码进行打包,生成Docker镜像;
Docker镜像存储子单元用于Docker镜像上传至远端的共享镜像仓库中,其他系统可通过镜像仓库拉取Docker镜像中的运行应用程序;
其中,操作人员在devops系统前端界面发起登录请求,通过devops系统的主账号和密码进行登录,登录成功后获取到devops系统主账号服务的session密钥,携带session密钥向devops系统申请子token,子token是devops系统产生并认证的,收到申请子token的请求后,devops系统先验证session的合法性,若session是非法的,devops系统直接提示错误信息并且终止流程,若session是合法的,devops系统生成子token并且下发给浏览器,浏览器收到子token后重定向到devops系统的登录页,devops系统继续验证子token的合法性,若验证失败则继续提示错误信息并终止流程,若验证通过则表明用户成功登录devops系统;devops系统后台解析子token获取用户ID,并通过查询用户、角色、权限的关系数据获取到自动化部署权限;
所述构建Docker容器单元包括:
构建Docker容器第一子单元用于基于项目的业务要求,在devops系统界面设置不同的参数配置,参数配置包括编写yaml文件,devops系统后台对设置的参数配置信息进行解析;
构建Docker容器第二子单元用于Docker镜像根据解析后的参数配置信息进行配置操作,其中,配置操作包括执行yaml文件操作,基于配置操作生成Docker容器;
所述构建Docker容器单元包括:
构建Docker容器第一子单元用于基于项目的业务要求,在devops系统界面设置不同的参数配置,参数配置包括编写yaml文件,devops系统后台对设置的参数配置信息进行解析;
构建Docker容器第二子单元用于Docker镜像根据解析后的参数配置信息进行配置操作,其中,配置操作包括执行yaml文件操作,基于配置操作生成Docker容器;
所述部署Docker容器单元包括:
部署Docker容器第一子单元用于基于业务项目的节点类型,为Docker容器获取对应的集群地址,其中,每个业务项目的服务节点类型根据部署的环境类型设置;
部署Docker容器第二子单元用于基于对应的集群地址,将Docker容器发送至集群地址对应的服务器,交付至客户端;
在交付客户端之前,需要通过交付测试单元对系统进行测试,验收测试用于验证系统整体是否满足客户需求,验收测试的好坏影响系统能否成功交付,在验证测试过程中通过衡量测试用例的不同排序对程序模块的覆盖速率进行验证,计算公式为:
其中,F表示衡量测试用例的不同排序对程序模块的覆盖速率;表示m表示程序代码的个数;n表示测试用例的个数;TBi表示第i个程序代码第1次被测试用例覆盖时该测试用例所处的次序,其中,i表示1~i中的某一数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211434972.2A CN115981673B (zh) | 2022-11-16 | 2022-11-16 | 一种基于Docker的devops持续交付与自动化系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211434972.2A CN115981673B (zh) | 2022-11-16 | 2022-11-16 | 一种基于Docker的devops持续交付与自动化系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115981673A CN115981673A (zh) | 2023-04-18 |
CN115981673B true CN115981673B (zh) | 2024-04-05 |
Family
ID=85957065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211434972.2A Active CN115981673B (zh) | 2022-11-16 | 2022-11-16 | 一种基于Docker的devops持续交付与自动化系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115981673B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017045424A1 (zh) * | 2015-09-18 | 2017-03-23 | 乐视控股(北京)有限公司 | 一种应用程序部署系统及部署方法 |
CN106873975A (zh) * | 2016-12-30 | 2017-06-20 | 武汉默联股份有限公司 | 基于Docker的devops持续交付与自动化系统及方法 |
CN111443940A (zh) * | 2020-05-08 | 2020-07-24 | 南京大学 | 一种基于DevOps的完整软件生命周期管理方法及平台 |
CN111565165A (zh) * | 2019-12-06 | 2020-08-21 | 广州微算互联信息技术有限公司 | 一种云手机认证、维持和状态变更系统及方法 |
CN111930388A (zh) * | 2020-07-13 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种基于k8s、docker容器的持续化集成方法和系统 |
CN114489934A (zh) * | 2021-12-29 | 2022-05-13 | 北京航天智造科技发展有限公司 | 一种基于容器的持续交付方法和装置 |
-
2022
- 2022-11-16 CN CN202211434972.2A patent/CN115981673B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017045424A1 (zh) * | 2015-09-18 | 2017-03-23 | 乐视控股(北京)有限公司 | 一种应用程序部署系统及部署方法 |
CN106873975A (zh) * | 2016-12-30 | 2017-06-20 | 武汉默联股份有限公司 | 基于Docker的devops持续交付与自动化系统及方法 |
CN111565165A (zh) * | 2019-12-06 | 2020-08-21 | 广州微算互联信息技术有限公司 | 一种云手机认证、维持和状态变更系统及方法 |
CN111443940A (zh) * | 2020-05-08 | 2020-07-24 | 南京大学 | 一种基于DevOps的完整软件生命周期管理方法及平台 |
CN111930388A (zh) * | 2020-07-13 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种基于k8s、docker容器的持续化集成方法和系统 |
CN114489934A (zh) * | 2021-12-29 | 2022-05-13 | 北京航天智造科技发展有限公司 | 一种基于容器的持续交付方法和装置 |
Non-Patent Citations (2)
Title |
---|
基于容器技术的高可用OpenStack云平台快速部署应用;陈亚威;朱龙;;电子测试(第18期);全文 * |
陈亚威 ; 朱龙 ; .基于容器技术的高可用OpenStack云平台快速部署应用.电子测试.2018,(第18期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115981673A (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10515003B1 (en) | Installation testing in automated application distribution | |
US5892905A (en) | Computer apparatus and method for providing a common user interface for software applications accessed via the world-wide web | |
CN107590075B (zh) | 一种软件测试方法及装置 | |
EP4161012A1 (en) | Authentication method and apparatus, electronic device, server, program, and storage medium | |
KR102080156B1 (ko) | 자동 재충전 시스템, 방법 및 서버 | |
CN110011875B (zh) | 拨测方法、装置、设备及计算机可读存储介质 | |
CN111708550A (zh) | 应用部署方法、装置、计算机设备及存储介质 | |
CN110727575B (zh) | 一种信息处理方法、系统、装置、以及存储介质 | |
CN108984202B (zh) | 一种电子资源分享方法、装置和存储介质 | |
CN114374632B (zh) | 一种物联网数据平台多协议测试提效方法 | |
CN114546592A (zh) | 模型部署评测方法、服务器、电子设备及存储介质 | |
CN105704178A (zh) | 任务平台的接入方法及装置 | |
CN110889108B (zh) | spark任务的提交方法、装置和服务器 | |
CN112579142A (zh) | 用于工业互联网的应用程序发布方法及装置 | |
US20140351792A1 (en) | Version Construction System and Method | |
CN115981673B (zh) | 一种基于Docker的devops持续交付与自动化系统及方法 | |
US20240220449A1 (en) | Method and apparatus for managing accounts, and server and storage medium thereof | |
CN108053288B (zh) | 一种业务编排下发的方法及装置 | |
US20240176605A1 (en) | Method and apparatus for application deployment in software-as-a-service platform and storage medium | |
CN114461912A (zh) | 一种信息处理方法、装置、电子设备及存储介质 | |
CN114840414A (zh) | 软件测试系统、软件测试平台及软件测试方法 | |
CN114879977A (zh) | 应用部署方法、装置及存储介质 | |
CN113628052A (zh) | 基于预言机的区块链资产与合约处理方法、系统及装置 | |
CN112001715A (zh) | 一种分布式前端工具的使用方法及系统 | |
CN114741323A (zh) | 区块链性能的测试方法和装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |