掌桥专利:专业的专利平台
掌桥专利
首页

一种基于DevOps平台的运维控制系统

文献发布时间:2023-06-19 19:28:50


一种基于DevOps平台的运维控制系统

技术领域

本发明涉及研发控制技术领域,尤其涉及一种基于DevOps平台的运维控制系统。

背景技术

随着业务的不断发展,以互联网+为主要形式的业务对研发运维支撑的要求逐步提高,越来越多的业务需求需要做到持续性集成、持续性交付。

目前,通过引入部门级的工具支撑,只能在特定研发环节领域提升效率,无法做整体交付级别的提升,导致当前研发管理平台的研发运维的效率较低。

发明内容

本发明提供了一种基于DevOps平台的运维控制系统,以解决当前研发管理平台的研发运维效率低的问题。

根据本发明的一方面,提供了一种基于DevOps平台的运维控制系统,其特征在于,DevOps平台、一体化管理平台和业务服务平台;其中,

所述DevOps平台中包括多个软件组件,各所述软件组件在被调用的情况下执行调用任务;

所述一体化管理平台,包括与所述DevOps平台中各所述软件组件对应的封装模块,形成所述DevOps平台对应的一体化界面;以及,通过业务服务平台的访问请求,对DevOps平台中软件组件进行调用;

所述业务服务平台通过所述一体化界面,接收对DevOps平台中软件组件的访问请求。

可选的,所述一体化管理平台通过HTTPS Restful Call接口与所述DevOps平台的所述多个软件组件进行数据交互。

可选的,所述运维控制系统还包括资源平台,所述资源平台分别与所述DevOps平台和所述一体化管理平台连接;

所述资源平台包括微服务功能模块和云集群功能模块,其中,所述微服务功能模块对所述DevOps平台中的各软件组件进行封装,形成封装模块,并将封装模块发送至所述一体化管理平台;

所述云集群功能模块用于将所述一体化管理平台的开发成功数据发布至云集群,在云集群中运行。

可选的,所述一体化管理平台通过外部接口与所述资源平台连接。

可选的,所述一体化管理平台还包括管理控制模块,所述管理控制模块用于对目标项目进行生命周期管理。

可选的,所述管理控制模块包括:需求获取子模块、任务创建子模块、代码管理子模块、应用部署子模块;

所述需求获取子模块,用于获取目标项目的项目需求信息,将所述项目需求信息发送给所述任务创建子模块;

所述任务创建子模块,用于根据所述项目需求信息构建至少一个编译任务,将所述编译任务下发至对应的执行终端,并接收所述执行终端发回的编译代码;

所述代码管理子模块,用于对所述目标项目对应的编译代码进行管理;

所述应用部署子模块,用于生成所述目标项目的应用发布任务,将目标项目对应的编译代码,以应用的方式在对应的服务集群中发布。

可选的,所述一体化管理平台还包括测试功能模块,用于对目标代码数据执行测试任务,所述测试任务包括如下的一项或多项:自动化单元测试任务、自动化UI测试任务、API接口测试任务、性能测试任务。

可选的,所述一体化管理平台还包括流水线功能模块,用于创建任务流水线,并将与所述任务流水线调用对应的功能模块,执行所述任务流水线中的待执行任务

可选的,所述任务流水线中包括多个待执行任务;所述任务流水线中包括串行执行的待执行任务和/或并行执行任务,所述待执行任务包括如下的一项或多项:代码检测任务、编译任务、测试任务、部署任务。

可选的,所述流水线功能模块创建流水线节点,各所述流水线节点上挂载有对应的待执行任务,所述流水线节点与所述DevOps平台进行数据交互。

本发明实施例的技术方案,通过一体化管理平台封装对各独立的软件组件,并通过一体化界面提供服务,使得研发过程可以规范化管理,避免多个独立软件组件的不同功能和界面不一致增加的学习成本,以及避免执行项目时在各个软件组件之间跳转和数据传输带来的运维困难,解决了当前研发管理平台的研发运维效率低的问题,提高运维控制系统的研发运维效率。

应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种基于DevOps平台的运维控制系统的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

图1是本发明实施例提供的一种基于DevOps平台的运维控制系统的结构示意图,本实施例可适用于通过统一用户界面对DevOps平台的多个封装后的软件组件进行调用的情况,该系统可以建立在基于DevOps平台或与DevOps平台关联的系统;其中,DevOps平台是各种软件产品组合而成的一套解决方案,各个软件独立运行。如图1所示,该系统包括:DevOps平台110、一体化管理平台120和业务服务平台130;其中,

DevOps平台110中包括多个软件组件,各所述软件组件在被调用的情况下执行调用任务。

其中,软件组件是指组成DevOps平台110的软件组件,具体的,DevOps平台110的软件组件包括但不限于GitLab(代码仓库)、SonarQube(代码质量分析)、NexusOSS(工件仓库)、Maven(编译构建)、Harbor(Docker镜像仓库)、Selenium(自动化测试)、Jenkins(DevOps流水线)、JMeter(性能测试)、Redmine(研发协同)等,这里不做限定。本实施例中,在项目开发过程中,通过调用DevOps平台110中的各软件组件执行对应的调用任务,实现项目需求,从而得到对应的开发成果。

可以理解的是,DevOps平台中各个软件组件存在软件界面不统一、用户界面设计不一致、各个产品操作方法也不一致的问题,要掌握DevOps平台的使用方法,需要分别学习平台上的各个软件组件。复杂的方案设计和高成本的学习门槛在一定程度上阻碍了DevOps推广应用以及研发团队在DevOps上的深度应用。为了实现研发运维管理,可以将各个不同软件的复杂功能封装为简单易用的用户界面,用户无需学习DevOps平台的各项专业即可掌握平台用法。

一体化管理平台120,包括与DevOps平台110中各所述软件组件对应的封装模块,形成DevOps平台110对应的一体化界面;以及,通过业务服务平台130的访问请求,对DevOps平台110中软件组件进行调用。

其中,封装模块是指对DevOps平台110中的各软件组件进行封装后得到的封装模块。本实施例中,一体化管理平台120通过微服务资源治理功能对DevOps平台110中各软件组件进行封装,将各软件组件微服务化,形成DevOps平台110对应的一体化界面;其中,一体化界面为DevOps平台110中各软件组件的统一用户界面,一体化界面包括但不限于一体化的界面UI、一体化的访问逻辑、规范化的数据接口等,这里不做限定。通过对DevOps平台110中各软件组件进行封装形成一体化界面,来屏蔽各个不同软件的使用方法差异和复杂度,从而提高研发运维的效率。

本实施例中,一体化管理平台120还可以通过业务服务平台130的访问请求调用DevOps平台110中的软件组件,从而执行对应的调用任务,实现项目需求,得到对应的开发成果。

在一些实施例中,一体化管理平台120还用于实现对各封装模块的数据进行全生命周期管理。

业务服务平台130通过所述一体化界面,接收对DevOps平台110中软件组件的访问请求。

本实施例中,在进行开发时,业务服务平台130可以通过一体化用户界面接收对DevOps平台110中软件组件的访问请求,基于访问请求调用对应的软件组件,完成软件开发项目。其中,业务服务平台130是面向用户提供访问服务的多个开发平台,面向的用户可以是程序开发人员,研发人员无需获取各个软件的操作方法,可直接通过一体化界面进行功能调用,避免执行项目时在各个软件组件之间跳转和数据传输带来的运维困难,提高研发运维效率。

本实施例的技术方案,通过一体化管理平台封装对各独立的软件组件,并通过一体化界面提供服务,使得研发过程可以规范化管理,避免多个独立软件组件的不同功能和界面不一致增加的学习成本,以及避免执行项目时在各个软件组件之间跳转和数据传输带来的运维困难,解决了当前研发管理平台的研发运维效率低的问题,提高运维控制系统的研发运维效率。

在上述实施例的基础上,可选的,一体化管理平台120通过HTTPS Restful Call接口与DevOps平台110的所述多个软件组件进行数据交互。

本实施例中,一体化管理平台120可以通过HTTPS Restful Call接口与DevOps平台110的各软件组件进行数据交互,以实现各软件组件的集成和对各软件组件的调用。

在上述实施例的基础上,可选的,所述运维控制系统还包括资源平台,所述资源平台分别与DevOps平台110和一体化管理平台120连接;所述资源平台包括微服务功能模块和云集群功能模块,其中,所述微服务功能模块对DevOps平台110中的各软件组件进行封装,形成封装模块,并将封装模块发送至一体化管理平台120;所述云集群功能模块用于将一体化管理平台120的开发成功数据发布至云集群,在云集群中运行。

本实施例中,微服务功能模块用于支持一体化管理平台120封装DevOps平台110中各软件组件,形成对应的封装模块,并将封装模块发送至一体化管理平台120;具体的,微服务功能模块可以将一体化管理平台120与DevOps平台110深度对接,完成对DevOps平台110中Gitlab、SonarQube、Jenkins等软件的对接,DevOps平台110以“对接+增强”的方式完成对开发项目的DevOps全流程的支撑。

需要说明的是,微服务化就是以一系列小的服务来开发支撑一个应用的方法论,服务独立在自己的进程中,通过轻量级通信机制交互。

本实施例中,云集群功能模块可以用于将一体化管理平台120接入云集群,将一体化管理平台120的开发成功数据发布至云集群,并在云集群中运行。其中,开发成功数据是指与开发项目的开发成果相关的数据,具体的,开发成功数据可以是应用、程序或者其他可以在云集群中发布的信息。本实施例通过将一体化管理平台接入云集群,可以提高开发成功数据发布的效率,实现对开发成功数据的全生命周期管理。

在上述实施例的基础上,可选的,一体化管理平台120通过外部接口与所述资源平台连接。

本实施例中,一体化管理平台120还包括对接管理模块,对接管理模块包括外部接口,一体化管理平台可以通过外部接口与资源平台对接。

在上述实施例的基础上,可选的,一体化管理平台120还包括管理控制模块,所述管理控制模块用于对目标项目进行生命周期管理。

其中,目标项目是指系统中正在开发的项目。本实施例中,管理控制模块用于对系统中的目标项目进行从需求到应用发布的生命周期管理。

在上述实施例的基础上,可选的,所述管理控制模块包括:需求获取子模块、任务创建子模块、代码管理子模块、应用部署子模块;所述需求获取子模块,用于获取目标项目的项目需求信息,将所述项目需求信息发送给所述任务创建子模块;所述任务创建子模块,用于根据所述项目需求信息构建至少一个编译任务,将所述编译任务下发至对应的执行终端,并接收所述执行终端发回的编译代码;所述代码管理子模块,用于对所述目标项目对应的编译代码进行管理;所述应用部署子模块,用于生成所述目标项目的应用发布任务,将目标项目对应的编译代码,以应用的方式在对应的服务集群中发布。

本实施例中,在目标项目的开发过程中,需求获取子模块接收任务触发指令,并对任务触发指令进行解析,得到任务触发指令中的项目需求信息,并将项目需求信息发送至任务创建子模块;在接收项目需求之后,任务创建子模块对接收的项目需求信息进行信息拆分,得到多个任务信息,并基于各任务信息分别构建对应的编译任务,将编译任务下发至对应的执行终端,并接收执行终端发回的任务结果;代码管理子模块用于创建目标项目的代码仓库,基于代码仓库对目标项目的编译代码进行管理;应用部署子模块通过模板文件创建目标项目的应用发布任务,并将目标项目对应的编译代码以应用的形式在服务集群中进行发布。

在上述实施例的基础上,可选的,一体化管理平台120还包括测试功能模块,用于对目标代码数据执行测试任务,所述测试任务包括如下的一项或多项:自动化单元测试任务、自动化UI测试任务、API接口测试任务、性能测试任务。

其中,目标代码数据是指目标项目的编译代码。本实施例中,测试功能模块可以对目标项目的编译代码执行单元测试任务,并跟踪目标项目的编译代码的执行状态,并显示各测试用例对目标项目的编译代码的测试结果。在测试脚本执行完成后,一体化管理平台120自动更新测试用例列表,并展示最终的测试执行结果(未执行、执行成功、执行失败)。需要说明的是,在测试用例执行的过程中,运维控制系统会同步显示测试用例执行的详细日志。

本实施例中,测试功能模块还可以用于对目标项目的编译代码执行自动化UI测试任务,并跟踪自动化UI测试任务的执行状态,对于已经执行完毕的任务,一体化管理平台120通过一体化界面显示各UI测试用例的测试结果。需要说明的是,自动化UI测试是基于主流UI测试框架的一体化界面进行。

本实施例中,测试功能模块还可以用于对目标项目的编译代码执行API接口测试任务,并跟踪API接口测试任务的执行状态,对于已经执行完毕的任务,一体化管理平台120通过一体化界面显示各API接口测试测试用例的测试结果。需要说明的是,API接口测试任务是基于主流API接口测试框架的一体化界面进行。

本实施例中,测试功能模块还用于对目标项目的编译代码执行性能测试任务,并跟踪性能测试任务的执行状态,对于已经执行完毕的任务,一体化管理平台120通过一体化界面显示各性能测试用例的测试结果。需要说明的是,性能测试是基于主流性能测试框架的一体化界面进行。

在上述实施例的基础上,可选的,一体化管理平台120还包括流水线功能模块,用于创建任务流水线,并将与所述任务流水线调用对应的功能模块,执行所述任务流水线中的待执行任务。

其中,任务流水线是指在项目开发和应用发布过程中待执行任务执行的流水线。本实施例中,流水线功能模块创建任务流水线,根据任务流水线分别调用任务流水线中各待执行任务对应的功能模块,并基于功能模块执行流水线中的待执行任务。

可以理解的是,流水线功能模块的流水线功能是在Jenkins软件的基础上通过一体化界面实现的。

在上述实施例的基础上,可选的,所述任务流水线中包括多个待执行任务;所述任务流水线中包括串行执行的待执行任务和/或并行执行任务,所述待执行任务包括如下的一项或多项:代码检测任务、编译任务、测试任务、部署任务。

本实施例中,在项目开发过程中,可以根据创建任务流水线并行的执行任务流水线中的多个待执行任务,也可以串行的执行任务流水线中的多个待执行任务,对多个待执行任务按照需求进行关联管理,从而提高交付的效率。

在上述实施例的基础上,可选的,所述流水线功能模块创建流水线节点,各所述流水线节点上挂载有对应的待执行任务,所述流水线节点与DevOps平台110进行数据交互。

其中,流水线节点是指各待执行任务的任务节点,任务流水线中各流水线节点分别对应一个待执行任务。本实施例中,流水线功能模块创建流水线节点,各流水线节点上挂载有对应的待执行任务;流水线功能模块通过调用流水线节点对应的功能模块,基于调用的功能模块串行或并行的执行对应的待执行任务,实现流水线节点与DevOps平台110之间的数据交互。

示例性的,以流水线节点对应的功能模块为测试功能模块为例,测试功能模块中各个软件组件通过Plug-in接口与流水线功能模块进行集成,流水线功能模块以DevOps流水线节点的方式进行调用测试功能模块,并执行对应的测试任务。测试类组件包括:Selenium(自动化测试)、JMeter(性能测试)、API Test(接口测试),Unit Test(单元测试)。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

技术分类

06120115926991