CN112712332A - DevOps项目发布管理系统 - Google Patents
DevOps项目发布管理系统 Download PDFInfo
- Publication number
- CN112712332A CN112712332A CN202011528758.4A CN202011528758A CN112712332A CN 112712332 A CN112712332 A CN 112712332A CN 202011528758 A CN202011528758 A CN 202011528758A CN 112712332 A CN112712332 A CN 112712332A
- Authority
- CN
- China
- Prior art keywords
- project
- release
- compiling
- subsystem
- issuing
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000004458 analytical method Methods 0.000 claims abstract description 16
- 238000011161 development Methods 0.000 claims abstract description 11
- 238000005096 rolling process Methods 0.000 claims abstract description 11
- 238000007405 data analysis Methods 0.000 claims abstract description 4
- 238000013461 design Methods 0.000 claims abstract description 4
- 238000012423 maintenance Methods 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 238000012856 packing Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 abstract description 31
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000009826 distribution Methods 0.000 description 12
- 230000010354 integration Effects 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000000275 quality assurance Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Abstract
本发明提供了一套Devops项目发布管理系统,其特征在于,包括项目配置子系统、发布申请子系统、发布审批子系统、回滚子系统、发布子系统、发布数据分析子系统,其中项目配置子系统用于项目申请以及项目发布流程配置;发布申请子系统用于项目发布计划提交和项目发布申请;回滚子系统用于回滚到之前的某一版本;发布子系统用于项目的编译和项目的发布;发布设计分析子系统用于项目发布数据实时统计以及项目服务操作。本申请前端使用element‑ui框架编写,后端使用Flask(python)编写,配合gitLab、saltstack、redis、rabbitmq,mysql,MongoDB等技术完成自动化项目发布。目前支持虚拟机和k8s容器两种类型的项目发布。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及DevOps自动化运维系统。
背景技术
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
DevOps的核心在于连接开发与运维,使之可以高效的沟通协作以缩短软件研发周期,提升交付速度及质量。
Jenkins是一个开源的、基于Java开发的一种持续集成工具,提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。
Jenkins作为当前最火的持续集成产品,具有良好的通用性,支持很多主流的部署、编译技术。虽然在应用部署方面很强大,但对于大型企业来说,生产环境发布流程、发布质量管控也是至关重要的,而这方面Jenkins则显得无能为力。
发明内容
本发明的目的是提供一种DevOps项目发布管理系统。前端使用element-ui框架,后端使用Flask(python),配合gitLab、saltstack、redis、rabbitmq、mysql、MongoDB等技术完成自动化项目发布。解决采用Jenkins无法对生产环境发布流程、发布质量管控的问题。
为解决上述技术问题,本发明采用的技术方案是:
本发明提供一种DevOps项目发布管理系统,包括项目配置子系统、发布申请子系统、发布审批子系统、回滚子系统、发布子系统、发布数据分析子系统,其中项目配置子系统用于项目申请以及项目发布流程配置;发布申请子系统用于项目发布计划提交和项目发布申请;回滚子系统用于回滚到之前的某一版本;发布子系统用于项目的编译和项目的发布;发布设计分析子系统用于项目发布数据实时统计以及项目服务操作。
本申请还提供了所述的DevOps项目发布管理系统进行项目发布管理的方法,步骤包括:
A1:项目需求人员申请项目所需的资源以及项目配置信息,审批通过后自动在Devops平台创建项目并初始化项目信息,同时由运维管理员来配置发布流程的审批人员或者组成员;
A2:项目发布计划提交;
A3:项目发布申请;
A4:发布审批;
A5:发布审批通过后,判断是否为虚拟机项目(如java和/或node.js类型的项目),如果是,则执行编译步骤,编译后进入A6;如果判断为否,则不执行编译步骤,转入A6;
A6:项目发布;
A7:发布验证;
A8:项目回滚;
A9:项目发布数据实时统计以及项目服务操作。
进一步地,所述的DevOps项目发布管理系统,步骤A2中,当项目创建及初始化完成后,就可以提交发布计划(即,发布登记);发布计划中可以填写需要发布版本的工单信息以及预计发布时间。
进一步地,所述的DevOps项目发布管理系统,步骤A3中,由发布需求人来进行发布计划提交,填写发布的版本信息、发布时间以及同步发布计划内容,确认信息后提交发布申请。
优选地,步骤A3中,对于虚拟机项目,开发人员提交版本号,平台自动从gitLab拉取代码,供后面编译使用;对于k8s项目,直接通过镜像信息接口获取版本号,进行项目发布申请。
进一步地,所述的DevOps项目发布管理系统,步骤A5中,对于java、node.js类型的项目,需要java-maven编译,对于node.js类型的项目,需要调用node.js-npm,编译的流程如下:
B1、由编译权限的开发人员触发编译的操作;
B2、指令会发送到编译服务器上,针对不同的项目类型调用不同的编译操作;
B3、编译服务器根据编译日志判断编译的结果,只有验证编译成功后才能进行后续操作;
B4、编译完成后会将之前的版本备份,编译完成后会对编译的代码进行打包操作,发布平台可以看到具体的编译文件信息;
B5、不需要编译的项目直接进入项目发布阶段。
进一步地,所述的DevOps项目发布管理系统,步骤A6中,发布具体逻辑如下:
不能一次发布所有的节点;
检查是否有发布计划;
如配有降权设置,降权操作;
如需要启停服务,停止服务;
传送新代码包进行分布式发布;
如需要启停服务,启动服务;
如配有降权设置,发布完成后进行升权操作。
进一步地,所述的DevOps项目发布管理系统,步骤A6中,项目发布也只能是系统配置的发布人员进行发布,优选地,对于虚拟机项目,选择要发布的服务器,即可更新该服务器的项目版本;对于k8s项目,k8s将进行滚动更新。
进一步地,所述的DevOps项目发布管理系统,步骤A7中,项目发布后,需要有相关的测试人针对发布工单内容进行验证,相关人员验证通过后流程结束,同时发布的版本计入可回滚记录。
进一步地,所述的DevOps项目发布管理系统,步骤A8中,项目验证失败或者发布导致项目一些功能性问题,可以通过回滚操作来回滚到之前的任意版本,发布平台会保存最近发布成功的版本。
进一步地,所述的DevOps项目发布管理系统,步骤A9中,会对发布整个流程做信息统计,具体包括:
纪录模块:记录项目发布日志,包含该项目的历史发布信息,发布结果等;
项目服务维护模块:支持对项目各个节点在任何时间进行启动、停止、重启等操作;
消息通知模块:对于项目发布审批、项目发布、发布出错等操作,进行消息通知,例如,优选地,由邮件、APP、企业微信等消息通知,以提醒相关人员进行当前操作;
发布分析统计、发布分析模块:通过项目发布相关信息实时对项目发布流程的每个阶段进行了精准的监控和展示;优选地,包括发布计划、发布流程中、正在发布、流程结束、发布出错等子模块,可以很好的展示项目发布详情及问题追踪;回滚统计模块:回滚统计模块对项目发布后的回滚记录做一个展示和统计,包括回滚统计、回滚记录、回滚类型三个管理子模块;
紧急发布模块:对类型为紧急发布的项目进行统计,此模块按项目所属模块进行分类,对紧急发布的项目成功数、未发布数、发布总数进行统计展示;
发布工单统计模块:发布工单统计模块对发布项目所关联的工单进行统计和展示;优选地,包括工单详情、工单统计、待验证工单等子模块,更优选地,此模块会定时统计前一天以及当天的项目发布工单的处理状态,并入库和定时更新,精准的来统计项目发布的功能详情。
与现有技术相比,本发明的有益技术效果为:
1、开发人员只需提交git版本号,即可完成代码拉取、线上编译、项目发布等操作。
2、进一步地,规范生产环境项目发布流程,做到层层审批、验证,从而保障业务的稳定和安全。
3、进一步地,简化人员操作,只需在DevOps发布平台点击相关按钮即可完成操作,无需登录服务器和人员沟通,提升工作效率。
4、进一步地,对项目发布进行良好的监控、统计、追踪,数据可视化展示,以达到管理需求。
本发明与Jenkins持续集成类似,服务于开发、运维、运营等人员,用于快速部署、更新项目。相比Jenkins,本系统还对接了各种系统,提供更多样的服务,比如服务器、虚拟化管理,流程与工单,数据统计与分析,资源管理等等。
附图说明
图1是本发明的一个具体案例发布流程示意图;
图2是本发明发布系统支持的项目发布类型。
图3是虚拟机项目发布申请界面实例;
图4是版本信息确认界面实例;
图5是审批界面实例;
图6是编译界面实例;
图7是虚拟机项目发布界面实例;
图8是项目发布后验证界面实例;
图9是项目发布后回滚界面实例;
图10是项目发布日志界面实例;
图11是项目服务维护界面实例;
图12是项目发布分析模块界面实例;
图13是项目回滚统计模块界面实例;
图14是紧急发布统计模块界面实例;
图15是发布工单模块界面实例;
图16是k8s项目发布申请界面实例;
图17是k8s项目发布界面实例。
具体实施方式
实施例1
本申请DevOps项目发布管理系统包括项目配置子系统、发布申请子系统、发布审批子系统、回滚子系统、发布子系统、发布数据分析子系统,其中项目配置子系统用于项目申请以及项目发布流程配置;发布申请子系统用于项目发布计划提交和项目发布申请;回滚子系统用于回滚到之前的某一版本;发布子系统用于项目的编译和项目的发布;发布设计分析子系统用于项目发布数据实时统计以及项目服务操作。
参照图1,本申请的一个具体实施例中,DevOps项目发布管理系统进行项目发布管理的方法,包括以下步骤:
A1:项目需求人员申请项目所需的资源以及项目配置信息,审批通过后自动在Devops平台创建项目并初始化项目信息,同时由运维管理员来配置发布流程的审批人员或者组成员;
A2:项目发布计划提交;
A3:项目发布申请;
A4:发布审批:如果审批通过,则进入A5,如果审批未通过,则发布完成,并进入A9;
A5:编译,对于java、node.js类型的项目执行此步骤,然后转入A6,如果不需要编译,则不执行此步骤,转入A6;
A6:项目发布;
A7:发布验证;
A8:项目回滚;
A9:项目发布数据实时统计以及项目服务操作。
步骤A2中,项目创建及初始化完成后,提交发布计划(发布登记),发布计划中填写需要发布版本的工单信息以及预计发布时间(打通了工单系统)。
步骤A3中,由发布需求人来进行发布计划提交,填写发布的版本信息、发布时间以及同步发布计划内容,确认信息后提交发布申请。参照图2,本申请管理系统可以支持虚拟机(如java类型项、node.js类型项、静态项目、或者其他非编译型项目)以及k8s项目类型(如Docker项目),本实施例中以java类型为例,开发人员提交版本号,平台自动从gitLab拉取代码,供后面编译使用,发布申请及其确认界面如图3和图4所示。
步骤A4中,发布申请提交后进入流程审批,一般由相关项目总负责人审批后才能进入后续的流程,审批界面如图5所示。
步骤A5中,对于java类型的项目,需要调用java-maven编译,项目编译流程如下:
B1、由编译权限的开发人员触发编译的操作;
B2、指令会发送到编译服务器上,针对不同的项目类型调用不同的编译操作;
B3、编译服务器根据编译日志判断编译的结果,只有验证编译成功后才能进行后续操作;
B4、编译完成后会将之前的版本备份(为回滚操作准备),编译完成后会对编译的代码进行打包操作,发布平台可以看到具体的编译文件信息;
B5、进入项目发布阶段;不需要编译的项目直接进入项目发布阶段,编译界面如图6所示。
步骤A6中,项目发布也只能是系统配置的发布人员进行发布。对于java类型的虚拟机项目,选择要发布的服务器,点击“发布”按钮,即可更新该服务器的项目版本,如图7所示。发布具体逻辑如下:
C1、不能一次发布所有的节点;
C2、检查是否有发布计划;
C3、降权操作(如配有降权设置);
C4、停止服务(如需要启停服务);
C5、传送新代码包进行分布式发布;
C6、启动服务(如需要启停服务);
C7、发布完成后进行升权操作(如配有降权设置)。
步骤A7中,项目发布后,需要有相关的测试人针对发布工单内容进行验证,相关人员验证通过后流程结束,同时发布的版本计入可回滚记录,验证界面如图8所示。
步骤A8中,项目验证失败或者发布导致项目一些功能性问题,可以通过回滚操作来回滚到之前的任意版本,发布平台会保存最近发布成功的版本,如图9所示。
步骤A9中,会对发布整个流程做信息统计,具体内容如下:
D1、记录项目发布日志,包含该项目的历史发布信息,发布结果等,如图10所示;
D2、项目服务维护功能支持对项目各个节点在任何时间进行启动、停止、重启等操作,如图11所示;
D3、对于项目发布审批、项目发布、发布出错等操作,都会有邮件或APP或企业微信消息通知,以提醒相关人员进行当前操作;
D4、发布分析统计、发布分析模块通过项目发布相关信息实时对项目发布流程的每个阶段进行了精准的监控和展示。包括发布计划、发布流程中、正在发布、流程结束、发布出错等子模块,可以很好的展示项目发布详情及问题追踪,如图12所示;
D5、回滚统计模块,回滚统计模块对项目发布后的回滚记录做一个展示和统计,包括回滚统计、回滚记录、回滚类型三个管理子模块,如图13所示;
D6、紧急发布模块对类型为紧急发布的项目进行统计,此模块按项目所属模块进行分类,对紧急发布的项目成功数、未发布数、发布总数进行统计展示,如图14所示;
D7、发布工单统计模块:发布工单统计模块对发布项目所关联的工单进行统计和展示。包括工单详情、工单统计、待验证工单等子模块。此模块会定时统计前一天以及当天的项目发布工单的处理状态,并入库和定时更新,精准的来统计项目发布的功能详情,如图15所示。
实施例2
参照图1,本申请的一个具体实施例中,DevOps项目发布管理系统进行项目发布管理的方法,包括以下步骤:
A1:项目需求人员申请项目所需的资源以及项目配置信息,审批通过后自动在Devops平台创建项目并初始化项目信息,同时由运维管理员来配置发布流程的审批人员或者组成员;
A2:项目发布计划提交;
A3:项目发布申请;
A4:发布审批:如果审批通过,则进入A5,如果审批未通过,则发布完成,并进入A9;
A5:编译,对于java、node.js类型的项目执行此步骤,然后转入A6,如果不需要编译,则不执行此步骤,转入A6;
A6:项目发布;
A7:发布验证;
A8:项目回滚;
A9:项目发布数据实时统计以及项目服务操作。
步骤A2中,项目创建及初始化完成后,提交发布计划(发布登记),发布计划中填写需要发布版本的工单信息以及预计发布时间(打通了工单系统)。
步骤A3中,由发布需求人来进行发布计划提交,填写发布的版本信息、发布时间以及同步发布计划内容,确认信息后提交发布申请。参照图2,本申请管理系统可以支持虚拟机(如java类型项、node.js类型项、静态项目、或者其他非编译型项目)以及k8s项目类型(如Docker项目),本实施例中以node.js类型为例,与实施例1的java类型项目类似,开发人员提交版本号,平台自动从gitLab拉取代码,供后面编译使用。
步骤A4中,发布申请提交后进入流程审批,一般由相关项目总负责人审批后才能进入后续的流程。
步骤A5中,需要调用node.js-npm编译,项目编译流程如下:
B1、由编译权限的开发人员触发编译的操作;
B2、指令会发送到编译服务器上,针对不同的项目类型调用不同的编译操作;
B3、编译服务器根据编译日志判断编译的结果,只有验证编译成功后才能进行后续操作;
B4、编译完成后会将之前的版本备份(为回滚操作准备),编译完成后会对编译的代码进行打包操作,发布平台可以看到具体的编译文件信息;
B5、进入项目发布阶段;不需要编译的项目直接进入项目发布阶段,编译界面如图6所示。
步骤A6中,项目发布也只能是系统配置的发布人员进行发布。对于node.js类型的虚拟机项目,选择要发布的服务器,点击“发布”按钮,即可更新该服务器的项目版本。发布具体逻辑如下:
C1、不能一次发布所有的节点;
C2、检查是否有发布计划;
C3、降权操作(如配有降权设置);
C4、停止服务(如需要启停服务);
C5、传送新代码包进行分布式发布;
C6、启动服务(如需要启停服务);
C7、发布完成后进行升权操作(如配有降权设置)。
步骤A7中,项目发布后,需要有相关的测试人针对发布工单内容进行验证,相关人员验证通过后流程结束,同时发布的版本计入可回滚记录。
步骤A8中,项目验证失败或者发布导致项目一些功能性问题,可以通过回滚操作来回滚到之前的任意版本,发布平台会保存最近发布成功的版本。
步骤A9中,会对发布整个流程做信息统计,具体内容如下:
D1、记录项目发布日志,包含该项目的历史发布信息,发布结果等;
D2、项目服务维护功能支持对项目各个节点在任何时间进行启动、停止、重启等操作;
D3、对于项目发布审批、项目发布、发布出错等操作,都会有邮件或APP或企业微信消息通知,以提醒相关人员进行当前操作;
D4、发布分析统计、发布分析模块通过项目发布相关信息实时对项目发布流程的每个阶段进行了精准的监控和展示。包括发布计划、发布流程中、正在发布、流程结束、发布出错等子模块,可以很好的展示项目发布详情及问题追踪;
D5、回滚统计模块,回滚统计模块对项目发布后的回滚记录做一个展示和统计,包括回滚统计、回滚记录、回滚类型三个管理子模块;
D6、紧急发布模块对类型为紧急发布的项目进行统计,此模块按项目所属模块进行分类,对紧急发布的项目成功数、未发布数、发布总数进行统计展示;
D7、发布工单统计模块:发布工单统计模块对发布项目所关联的工单进行统计和展示。包括工单详情、工单统计、待验证工单等子模块。此模块会定时统计前一天以及当天的项目发布工单的处理状态,并入库和定时更新,精准的来统计项目发布的功能详情。
实施例3
参照图1,本申请的一个具体实施例中,DevOps项目发布管理系统进行项目发布管理的方法,包括以下步骤:
A1:项目需求人员申请项目所需的资源以及项目配置信息,审批通过后自动在Devops平台创建项目并初始化项目信息,同时由运维管理员来配置发布流程的审批人员或者组成员;
A2:项目发布计划提交;
A3:项目发布申请;
A4:发布审批:如果审批通过,则进入A5,如果审批未通过,则发布完成,并进入A9;
A5:编译,对于java、node.js类型的项目执行此步骤,然后转入A6,如果不需要编译,则不执行此步骤,转入A6;
A6:项目发布;
A7:发布验证;
A8:项目回滚;
A9:项目发布数据实时统计以及项目服务操作。
步骤A2中,项目创建及初始化完成后,提交发布计划(发布登记),发布计划中填写需要发布版本的工单信息以及预计发布时间(打通了工单系统)。
步骤A3中,由发布需求人来进行发布计划提交,填写发布的版本信息、发布时间以及同步发布计划内容,确认信息后提交发布申请。参照图2,本申请管理系统可以支持虚拟机(如java类型项、node.js类型项、静态项目、或者其他非编译型项目)以及k8s项目类型(如Docker项目),本实施例中以k8s项目类型为例,直接通过镜像信息接口获取版本号,进行项目发布申请,如图16所示。
步骤A4中,发布申请提交后进入流程审批,一般由相关项目总负责人审批后才能进入后续的流程。
步骤A5中,判断不需要编译,进入A6。
步骤A6中,项目发布也只能是系统配置的发布人员进行发布。对于k8s项目,直接点击“发布”按钮,k8s将进行滚动更新,如图17所示。发布具体逻辑如下:
C1、不能一次发布所有的节点;
C2、检查是否有发布计划;
C3、降权操作(如配有降权设置);
C4、停止服务(如需要启停服务);
C5、传送新代码包进行分布式发布;
C6、启动服务(如需要启停服务);
C7、发布完成后进行升权操作(如配有降权设置)。
步骤A7中,项目发布后,需要有相关的测试人针对发布工单内容进行验证,相关人员验证通过后流程结束,同时发布的版本计入可回滚记录。
步骤A8中,项目验证失败或者发布导致项目一些功能性问题,可以通过回滚操作来回滚到之前的任意版本,发布平台会保存最近发布成功的版本。
步骤A9中,会对发布整个流程做信息统计,具体内容如下:
D1、记录项目发布日志,包含该项目的历史发布信息,发布结果等;
D2、项目服务维护功能支持对项目各个节点在任何时间进行启动、停止、重启等操作;
D3、对于项目发布审批、项目发布、发布出错等操作,都会有邮件或APP或企业微信消息通知,以提醒相关人员进行当前操作;
D4、发布分析统计、发布分析模块通过项目发布相关信息实时对项目发布流程的每个阶段进行了精准的监控和展示。包括发布计划、发布流程中、正在发布、流程结束、发布出错等子模块,可以很好的展示项目发布详情及问题追踪;
D5、回滚统计模块,回滚统计模块对项目发布后的回滚记录做一个展示和统计,包括回滚统计、回滚记录、回滚类型三个管理子模块;
D6、紧急发布模块对类型为紧急发布的项目进行统计,此模块按项目所属模块进行分类,对紧急发布的项目成功数、未发布数、发布总数进行统计展示;
D7、发布工单统计模块:发布工单统计模块对发布项目所关联的工单进行统计和展示。包括工单详情、工单统计、待验证工单等子模块。此模块会定时统计前一天以及当天的项目发布工单的处理状态,并入库和定时更新,精准的来统计项目发布的功能详情。
本申请与Jenkins区别如下:
以上对本发明的具体实施例进行了详细描述,但其只是作为范例,本发明并不限制于以上描述的具体实施例。对于本领域技术人员而言,任何对本发明进行的等同修改和替代也都在本发明的范畴之中。因此,在不脱离本发明的精神和范围下所作的均等变换和修改,都应涵盖在本发明的范围内。
Claims (10)
1.一种DevOps项目发布管理系统,其特征在于,包括项目配置子系统、发布申请子系统、发布审批子系统、回滚子系统、发布子系统、发布数据分析子系统,其中项目配置子系统用于项目申请以及项目发布流程配置;发布申请子系统用于项目发布计划提交和项目发布申请;回滚子系统用于回滚到之前的某一版本;发布子系统用于项目的编译和项目的发布;发布设计分析子系统用于项目发布数据实时统计以及项目服务操作。
2.根据权利要求1所述的Devops项目发布管理系统,其特征在于,项目发布管理具体流程如下:
A1:项目需求人员申请项目所需的资源以及项目配置信息,审批通过后自动在Devops平台创建项目并初始化项目信息,同时由运维管理员来配置发布流程的审批人员或者组成员;
A2:项目发布计划提交;
A3:项目发布申请;
A4:发布审批;
A5:发布审批通过后,判断是否为虚拟机项目,如果是,则执行编译步骤,编译后进入A6;如果判断为否,则不执行编译步骤,转入A6;
A6:项目发布;
A7:发布验证;
A8:项目回滚;
A9:项目发布数据实时统计以及项目服务操作。
3.根据权利要求2所述的Devops项目发布管理系统,其特征在于,步骤A2中,当项目创建及初始化完成后,就可以提交发布计划;发布计划中可以填写需要发布版本的工单信息以及预计发布时间。
4.根据权利要求2所述的Devops项目发布管理系统,其特征在于,步骤A3中,
由发布需求人来进行发布计划提交,填写发布的版本信息、发布时间以及同步发布计划内容,确认信息后提交发布申请;
对于虚拟机项目,开发人员提交版本号,平台自动从gitLab拉取代码,供后面编译使用;对于k8s项目,直接通过镜像信息接口获取版本号,进行项目发布申请。
5.根据权利要求2所述的Devops项目发布管理系统,其特征在于,步骤A5中,对于java、node.js类型的项目,需要java-maven编译,对于node.js类型的项目,需要调用node.js-npm,编译的流程如下:
B1、由编译权限的开发人员触发编译的操作;
B2、指令会发送到编译服务器上,针对不同的项目类型调用不同的编译操作;
B3、编译服务器根据编译日志判断编译的结果,只有验证编译成功后才能进行后续操作;
B4、编译完成后会将之前的版本备份,编译完成后会对编译的代码进行打包操作,发布平台可以看到具体的编译文件信息;
B5、不需要编译的项目直接进入项目发布阶段。
6.根据权利要求2所述的Devops项目发布管理系统,其特征在于,步骤A6中,发布具体逻辑如下:
不能一次发布所有的节点;
检查是否有发布计划;
如配有降权设置,降权操作;
如需要启停服务,停止服务;
传送新代码包进行分布式发布;
如需要启停服务,启动服务;
如配有降权设置,发布完成后进行升权操作。
7.根据权利要求2所述的Devops项目发布管理系统,其特征在于,步骤A7中,项目发布后,需要有相关的测试人针对发布工单内容进行验证,相关人员验证通过后流程结束,同时发布的版本计入可回滚记录。
8.根据权利要求2所述的Devops项目发布管理系统,其特征在于,步骤A8中,项目验证失败或者发布导致项目一些功能性问题,可以通过回滚操作来回滚到之前的任意版本,发布平台会保存最近发布成功的版本。
9.根据权利要求2所述的Devops项目发布管理系统,其特征在于,步骤A9中,会对发布整个流程做信息统计,具体包括:
纪录模块:记录项目发布日志,包含该项目的历史发布信息,发布结果等;
项目服务维护模块:支持对项目各个节点在任何时间进行启动、停止、重启等操作;
消息通知模块:对于项目发布审批、项目发布、发布出错等操作,进行消息通知,例如,优选地,由邮件、APP、企业微信等消息通知,以提醒相关人员进行当前操作;
发布分析统计、发布分析模块:通过项目发布相关信息实时对项目发布流程的每个阶段进行了精准的监控和展示;优选地,包括发布计划、发布流程中、正在发布、流程结束、发布出错等子模块,可以很好的展示项目发布详情及问题追踪;回滚统计模块:回滚统计模块对项目发布后的回滚记录做一个展示和统计,包括回滚统计、回滚记录、回滚类型三个管理子模块;
紧急发布模块:对类型为紧急发布的项目进行统计,此模块按项目所属模块进行分类,对紧急发布的项目成功数、未发布数、发布总数进行统计展示;
发布工单统计模块:发布工单统计模块对发布项目所关联的工单进行统计和展示;优选地,包括工单详情、工单统计、待验证工单等子模块,更优选地,此模块会定时统计前一天以及当天的项目发布工单的处理状态,并入库和定时更新,精准的来统计项目发布的功能详情。
10.一种利用权利要求1所述DevOps项目发布管理系统进行项目发布管理的方法,其特征在于,包括:
A1:项目需求人员申请项目所需的资源以及项目配置信息,审批通过后自动在Devops平台创建项目并初始化项目信息,同时由运维管理员来配置发布流程的审批人员或者组成员;
A2:项目发布计划提交;
A3:项目发布申请;
A4:发布审批;
A5:发布审批通过后,判断是否为java和/或node.js类型的项目,如果是,则执行编译步骤,编译后进入A6;如果判断为否,则不执行编译步骤,转入A6;
A6:项目发布;
A7:发布验证;
A8:项目回滚;
A9:项目发布数据实时统计以及项目服务操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011528758.4A CN112712332A (zh) | 2020-12-22 | 2020-12-22 | DevOps项目发布管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011528758.4A CN112712332A (zh) | 2020-12-22 | 2020-12-22 | DevOps项目发布管理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112712332A true CN112712332A (zh) | 2021-04-27 |
Family
ID=75545153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011528758.4A Pending CN112712332A (zh) | 2020-12-22 | 2020-12-22 | DevOps项目发布管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112712332A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112991121A (zh) * | 2021-05-07 | 2021-06-18 | 南京苏迪科技有限公司 | 一种高校信息化建设管理系统和方法 |
CN114265618A (zh) * | 2021-11-30 | 2022-04-01 | 重庆富民银行股份有限公司 | 一种应用一键发布和回滚的方法 |
CN115357231A (zh) * | 2022-10-20 | 2022-11-18 | 东方合智数据科技(广东)有限责任公司 | 基于DevOps的应用发布系统、应用发布方法及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035892A (zh) * | 2010-12-23 | 2011-04-27 | 中科方德软件有限公司 | 操作系统版本自动发布和软件包自动更新的系统及方法 |
CN106708509A (zh) * | 2016-11-28 | 2017-05-24 | 上海宝尊电子商务有限公司 | 自动化软件项目开发全链路配置管理系统 |
CN111080257A (zh) * | 2019-12-17 | 2020-04-28 | 苏州博纳讯动软件有限公司 | 基于DevOps端到端在线研发管理的系统和方法 |
CN112036825A (zh) * | 2020-08-28 | 2020-12-04 | 航天科工网络信息发展有限公司 | 一种基于工单的自动化运维管理系统 |
-
2020
- 2020-12-22 CN CN202011528758.4A patent/CN112712332A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035892A (zh) * | 2010-12-23 | 2011-04-27 | 中科方德软件有限公司 | 操作系统版本自动发布和软件包自动更新的系统及方法 |
CN106708509A (zh) * | 2016-11-28 | 2017-05-24 | 上海宝尊电子商务有限公司 | 自动化软件项目开发全链路配置管理系统 |
CN111080257A (zh) * | 2019-12-17 | 2020-04-28 | 苏州博纳讯动软件有限公司 | 基于DevOps端到端在线研发管理的系统和方法 |
CN112036825A (zh) * | 2020-08-28 | 2020-12-04 | 航天科工网络信息发展有限公司 | 一种基于工单的自动化运维管理系统 |
Non-Patent Citations (1)
Title |
---|
朱荣鑫,黄迪璇,张天编者: "《Go语言高并发与微服务实战》", vol. 978113266622, 30 September 2020, 中国铁道出版社, pages: 14 - 16 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112991121A (zh) * | 2021-05-07 | 2021-06-18 | 南京苏迪科技有限公司 | 一种高校信息化建设管理系统和方法 |
CN114265618A (zh) * | 2021-11-30 | 2022-04-01 | 重庆富民银行股份有限公司 | 一种应用一键发布和回滚的方法 |
CN115357231A (zh) * | 2022-10-20 | 2022-11-18 | 东方合智数据科技(广东)有限责任公司 | 基于DevOps的应用发布系统、应用发布方法及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112712332A (zh) | DevOps项目发布管理系统 | |
US20210232498A1 (en) | Method for testing edge computing, device, and readable storage medium | |
EP2140370B1 (en) | Unified service management | |
US20120266023A1 (en) | Prioritization and assignment manager for an integrated testing platform | |
US8782662B2 (en) | Adaptive computer sequencing of actions | |
US20130104105A1 (en) | Test data supply chain manager for an integrated testing platform | |
US9448915B2 (en) | Modular script designer for next generation testing system | |
CA2665738A1 (en) | Closed loop self corrective maintenance within a document processing environment | |
US8214483B2 (en) | Method and system for continuous availability subscription service | |
US20080209409A1 (en) | Method and system for quality assurance subscription service | |
WO2009082590A1 (en) | System and method for tracking testing of software modification projects | |
US20170220324A1 (en) | Data communication accelerator system | |
CN107016480A (zh) | 任务调度方法、装置及系统 | |
CN110689223A (zh) | 一种基于rpa控制的机器人批量管理系统 | |
CN102880543A (zh) | 用于集成测试平台的测试数据供应链管理器 | |
CN116010066A (zh) | 一种rpa机器人及实现方法 | |
US20090100430A1 (en) | Method and system for a task automation tool | |
US11113105B1 (en) | Computer implemented system and method for generating platform agnostic digital worker | |
Xie et al. | Design and implementation of bank financial business automation testing framework based on QTP | |
EP4113403A1 (en) | Assistance information generation device, assistance information generation method, and program recording medium | |
Amland | Software quality and software testing in internet times | |
Tanaga et al. | Material Requirement Planning Information System: Prototype And Lead Time Analysis | |
CN115577912B (zh) | 一种试验变更控制方法、装置、设备及介质 | |
CN110610305A (zh) | 一种数据中心全生命周期综合服务派工总控系统 | |
US11733979B2 (en) | System for automatically generating customer specific data center application program interfaces |
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 |