CN115981673B - 一种基于Docker的devops持续交付与自动化***及方法 - Google Patents

一种基于Docker的devops持续交付与自动化***及方法 Download PDF

Info

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
Application number
CN202211434972.2A
Other languages
English (en)
Other versions
CN115981673A (zh
Inventor
谢耘
张春林
张运春
李京华
温胤鑫
刘玉连
章鹏
陈心航
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Tongtech Co Ltd
Original Assignee
Beijing Tongtech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Tongtech Co Ltd filed Critical Beijing Tongtech Co Ltd
Priority to CN202211434972.2A priority Critical patent/CN115981673B/zh
Publication of CN115981673A publication Critical patent/CN115981673A/zh
Application granted granted Critical
Publication of CN115981673B publication Critical patent/CN115981673B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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持续交付与自动化***及方法,以解决现有技术中存在的随着互联网敏捷开发模式的流行,软件研发周期变短,迭代速度变快,传统的开发和运维方式难以有效支持。研发人员完成指定功能后,需要手动集成各模块代码,在代码集成后,需要人工编译、人工部署。然而,依赖人工操作的模式容易出错,发生错误时研发人员需要花费额外的时间和精力处理问题,导致项目延期。代码部署上线后,服务内部如果发生错误,研发人员无法快速感知。另外,用户访问流量具有不可控性,在流量高峰期间,服务资源可能无法支撑高并发访问,在流量低谷期间,富余的服务资源又会增加企业成本。在线上服务运行过程中,如果需要修复代码问题或者增加新功能,需要先停止服务,这样会影响用户体验并且降低企业收益的上述问题。
为了达到上述目的,本发明提供如下技术方案:
一种基于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中的某一数值。
CN202211434972.2A 2022-11-16 2022-11-16 一种基于Docker的devops持续交付与自动化***及方法 Active CN115981673B (zh)

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)

* Cited by examiner, † Cited by third party
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 北京航天智造科技发展有限公司 一种基于容器的持续交付方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
基于容器技术的高可用OpenStack云平台快速部署应用;陈亚威;朱龙;;电子测试(第18期);全文 *
陈亚威 ; 朱龙 ; .基于容器技术的高可用OpenStack云平台快速部署应用.电子测试.2018,(第18期),全文. *

Also Published As

Publication number Publication date
CN115981673A (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
JP6894944B2 (ja) ブロックチェーンネットワークに基づくアプリケーション実現方法、装置、デバイス及び記憶媒体
US10977111B2 (en) Constraint solver execution service and infrastructure therefor
US8490084B1 (en) Installation testing in automated application distribution
EP2989543B1 (en) Method and device for updating client
CN107590075B (zh) 一种软件测试方法及装置
EP4161012A1 (en) Authentication method and apparatus, electronic device, server, program, and storage medium
KR102080156B1 (ko) 자동 재충전 시스템, 방법 및 서버
CN106656927A (zh) 将Linux账号加入AD域的方法及装置
AU2016273965A1 (en) Distributed Computing for Engaging Software Services
CN110727575B (zh) 一种信息处理方法、***、装置、以及存储介质
CN108984202B (zh) 一种电子资源分享方法、装置和存储介质
CN111708550A (zh) 应用部署方法、装置、计算机设备及存储介质
CN114546592A (zh) 模型部署评测方法、服务器、电子设备及存储介质
CN109933362A (zh) 一种平台功能调用方法、***及设备
CN110889108B (zh) spark任务的提交方法、装置和服务器
CN112579142A (zh) 用于工业互联网的应用程序发布方法及装置
CN114374632A (zh) 一种物联网数据平台多协议测试提效方法
US20140351792A1 (en) Version Construction System and Method
CN115981673B (zh) 一种基于Docker的devops持续交付与自动化***及方法
US11968182B2 (en) Authentication of software robots with gateway proxy for access to cloud-based services
CN105404543A (zh) 一种模拟机
CN112973129B (zh) 游戏部署方法、装置、电子设备及计算机可读存储介质
US20240176605A1 (en) Method and apparatus for application deployment in software-as-a-service platform and storage medium
CN114461912A (zh) 一种信息处理方法、装置、电子设备及存储介质
CN114879977A (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