支持多引擎的研发运维平台和CICD流水线的管理方法及设备与流程

文档序号:32403730发布日期:2022-12-02 19:53阅读:143来源:国知局
支持多引擎的研发运维平台和CICD流水线的管理方法及设备与流程
支持多引擎的研发运维平台和cicd流水线的管理方法及设备
技术领域
1.本发明涉及流程处理技术领域,尤其涉及支持多引擎的研发运维平台和cicd流水线的管理方法及设备。


背景技术:

2.随着手机、计算机等电子设备的普及,与电子设备适配的软件的需求也在日益增加。为了更快、更频繁地交付更稳定的软件,通常会构建自定义的流水线,通过流水线来使软件的构建、测试、发布更加快捷和可靠。
3.然而,传统的流水线管理方法只能构建得到适于单一使用场景的流水线,无法得到适用于不同使用场景的流水线。


技术实现要素:

4.本技术提供了支持多引擎的研发运维平台和cicd流水线的管理方法及设备,可以解决传统的流水线管理方法只能构建得到适于单一使用场景的流水线,无法得到适用于不同使用场景的流水线的问题。本技术提供如下技术方案:第一方面,本技术提供了一种支持多引擎的研发运维平台和cicd流水线的管理方法,包括:显示流水线管理的主界面,所述主界面包括流水线管理控件;在接收到作用于所述流水线管理控件的操作后,显示引擎配置界面,所述引擎配置界面中显示有至少三个引擎和每个引擎对应的引擎节点;通过所述引擎配置界面配置得到运行引擎节点;在接收到所述运行引擎节点后,显示流水线创建界面;通过所述流水线创建界面得到目标流水线。
5.可选地,所述流水线创建界面中包括流水线选择控件;所述通过所述流水线创建界面得到目标流水线,包括:在接收到作用于所述流水线选择控件的操作后,显示流水线选择区域,所述流水线选择区域中包括至少一个可配置流水线;基于作用于所述流水线选择区域的选择操作,在所述至少一个可配置流水线中确定出待配置流水线;在确定出所述待配置流水线后,显示流水线配置界面;通过所述流水线配置界面对所述待配置流水线进行配置,得到所述目标流水线。
6.可选地,所述流水线配置界面包括编排控件和代码绑定控件;所述通过所述流水线配置界面对所述待配置流水线进行配置,得到所述目标流水线,包括:基于作用于所述编排控件的操作,确定所述待配置流水线中的各个步骤的执行顺序;基于作用于所述代码绑定控件的操作,确定所述待配置流水线中的各个步骤绑定的代码。
7.可选地,所述至少一个可配置流水线中包括历史流水线和预先设置的模板流水线。
8.可选地,所述主界面还包括模板流水线配置控件;所述在所述至少一个可配置流水线中确定出待配置流水线之前,还包括:在接收到作用于所述模板流水线配置控件的操作后,显示模板流水线配置界面,所述模板流水线配置界面包括模板配置区域和至少一个步骤模板控件;基于作用于所述步骤模板控件的配置操作,确定所述待配置流水线的目标
步骤模板;在所述模板配置区域中显示所述目标步骤模板;基于作用于所述模板配置区域的配置操作,将所述目标步骤模板组合得到所述模板流水线。
9.可选地,所述流水线创建界面中还包括新建流水线控件和/或流水线导入控件;所述通过所述流水线创建界面得到目标流水线,包括:基于作用于所述新建流水线控件的新建操作,得到所述目标流水线;或,基于作用于所述流水线导入控件的导入操作,得到所述目标流水线。
10.可选地,所述通过所述流水线配置界面对所述待配置流水线进行配置,得到所述目标流水线之后,还包括:显示辅助信息设置界面,所述辅助信息设置界面包括权限配置控件、执行配置控件和通知配置控件;基于作用于所述权限配置控件的设置操作,确定所述目标流水线的操作权限;基于作用于所述执行配置控件的设置操作,确定所述目标流水线的执行时间;基于作用于所述通知配置控件的设置操作,确定所述目标流水线的通知。
11.可选地,流水线创建界面包括参数接收区域;所述通过所述流水线创建界面得到目标流水线,还包括:通过所述参数接收区域接收所述目标流水线的动态参数;基于所述动态参数修改所述目标流水线的参数。
12.可选地,所述通过所述流水线创建界面得到目标流水线之后,还包括:运行所述目标流水线;采集所述目标流水线的运行数据,所述运行数据包括所述目标流水线运行过程中产生的运行日志和运行状态。
13.第二方面,提供一种电子设备,包括存储器、控制器以及存储在存储器上并可在控制器上运行的计算机程序,所述控制器执行所述计算机程序时实现上述支持多引擎的研发运维平台和cicd流水线的管理方法的步骤。
14.综上所述,本实施例提供的支持多引擎的研发运维平台和cicd流水线的管理方法,通过显示研发运维平台的主界面,主界面包括流水线管理控件;在接收到作用于流水线管理控件的操作后,显示流水线管理界面,流水线管理界面包括引擎配置界面,引擎配置界面中显示有至少三个引擎和每个引擎对应的引擎节点;通过引擎配置界面配置得到运行引擎节点;在接收到运行引擎节点后,显示流水线创建界面;通过流水线创建界面得到目标流水线。可以解决传统的流水线管理方法只能构建得到适于单一使用场景的流水线,无法得到适用于不同使用场景的流水线的问题。通过引擎配置界面配置目标流水线的运行引擎节点,不同的运行引擎节点对应的使用场景不同,这样,通过不同的运行引擎节点,可以构建得到适配各种不同场景的目标流水线。
15.另外,针对复杂且大批量的应用构建部署,提供了支持串并行自由组合的步骤模板和任务模板,避免了开发人员和运维人员重复性的打包部署操作,只需一次性创建模板流水线,可以提高流水线的构建效率。
附图说明
16.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1是本技术的一个实施例提供的支持多引擎的研发运维平台和cicd流水线的管
理系统的结构示意图;图2是本技术的一个实施例提供的流水线组件的示意图;图3是本技术的一个实施例提供的支持多引擎的研发运维平台和cicd流水线的管理方法的流程图;图4是本技术的一个实施例提供的模板流水线的组成示意图;图5是本技术的一个实施例提供的目标流水线的执行流程图;图6是本技术的一个实施例提供的另一个支持多引擎的研发运维平台和cicd流水线的管理方法的流程图;图7是本技术一个实施例提供的支持多引擎的研发运维平台和cicd流水线的管理装置的框图;图8是本技术一个实施例提供的电子设备的框图。
具体实施方式
18.下面将结合附图对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。下文中将参考附图并结合实施例来详细说明本技术。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
19.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
20.在申请中,在未作相反说明的情况下,使用的方位词如“上、下、顶、底”通常是针对附图所示的方向而言的,或者是针对部件本身在竖直、垂直或重力方向上而言的;同样地,为便于理解和描述,“内、外”是指相对于各部件本身的轮廓的内、外,但上述方位词并不用于限制本技术。
21.首先,对本技术涉及的若干名词进行介绍。
22.持续集成(continuous integration,简称ci):是一种软件开发实践,强调开发人员提交了新代码之后,立刻进行构建、测试。持续交付(continuous delivery,简称cd):是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境中。
23.引擎:作为cicd底层具体执行构建编排的执行器,是流水线的核心支撑,如jenkins、gitlab-runner、tekton。
24.引擎节点:引擎的一个运行态,它可能是多个正在运行的节点。
25.编排引擎(conductor):是基于java语言编写的流程引擎,用于架构基于微服务的流程。
26.devops(development-operations):是一种通过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
27.自动化运维工具(ansible):ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
28.基础架构管理工具(terraform):是一个it基础架构自动化编排引擎,可以用代码
来管理维护it资源。它编写了描述云资源拓扑的配置文件中的基础结构,例如虚拟机、存储账户和网络接口。terraform的命令行接口(command line interface,cli)提供一种简单机制,用于将配置文件部署到阿里云或其他任意支持的云上,并对其进行版本控制。同时,terraform是一个高度可扩展的工具,通过provider来支持新的基础架构。
29.容器调度服务(kubernetes,k8s):是一个开源的,用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是让部署容器化的应用简单并且高效,kubernetes提供了应用部署,规划,更新,维护的一种机制。
30.tekton:是一种适用于创建持续集成和持续交付(ci/cd)系统的谷歌开源的kubernetes原生框架,它支持多云/多集群下进行搭建、测试和部署,可实现滚动部署、蓝/绿部署、金丝雀部署或gitops工作流等高级部署。
31.jenkins:是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
32.drone:一个容器原生的持续交付平台。
33.gitlab-runner:是一个开源项目,可以作为单个二进制文件运行,不需要语言特定的要求。用于运行流水线并将运行结果返回给gitlab。它与gitlab随附的开源持续集成服务gitlab-ci。
34.流水线:基于cicd的持续集成,部署的统称。具体地,流水线概念包括:(1)阶段(phase):流水线的第一层结构,串行组成流水线;(2)任务(task):在阶段下添加的任务,可串、并行,是流水线执行的核心;(3)步骤(step):流水线组成的最小单元,多个步骤组成一个可执行的任务。
35.下面对本技术提供的支持多引擎的研发运维平台和cicd流水线的管理系统进行详细介绍。
36.本实施例提供了一种支持多引擎的研发运维平台和cicd流水线的管理系统,根据图1可知,该系统至少包括:控制器110、与控制器连接的显示设备120和流水线组件130。
37.控制器110用于控制显示设备120显示流水线管理的主界面,主界面包括流水线管理控件;在接收到作用于流水线管理控件的操作后,显示引擎配置界面,引擎配置界面中显示有至少三个引擎和每个引擎对应的引擎节点;通过引擎配置界面配置得到运行引擎节点;在接收到运行引擎节点后,显示流水线创建界面;通过流水线创建界面得到目标流水线。
38.为了实现上述功能,如图2所示,流水线组件130包括流水线控制组件210、编排引擎220、收集器230和引擎组件240。
39.其中,流水线控制组件210(pipeline controller)用于编排引擎220、收集器230、引擎组件240的管理、调用和通信等。
40.编排引擎220用于保存流水线的流程定义,具体包括将流水线的流程定义保存到编排引擎220。
41.为了实现上述功能,流水线控制组件210中包括流水线控制器、引擎中心和websocket。
42.其中,流水线控制器用于在执行流水线时,控制编排引擎220(conductor)按照之前保存的流水线的流程定义执行流水线中的任务。
43.本实施例中,流水线控制器还用于将流水线中的任务(job)构建到引擎节点上,例如将流水线中的任务构建到jenkins引擎的默认节点master节点上。
44.实际实现时,为例保证流水线的能够正常完成执行,还需要在流水线的执行过程中持续收集流水线中各个任务的执行状态和执行后产生的日志,以使在流水线的执行过程中,能实时更新流水线的状态。因此,流水线控制器还用于按照流水线的实际执行情况,收集流水线中各个任务的执行状态和日志,并将收集到的执行状态和日志推送到收集器230(collector)。
45.本实施例中,收集器230用于接收流水线控制器收集的流水线的执行状态和日志,并保存到预设的数据库中。
46.其中,预设的数据库可以是mysql数据库或者oracle数据库等,本实施例不对数据库的实现方式作限定。
47.另外,收集器230还用于采集引擎组件240中各个引擎执行产生的各种消息,日志,结果等,并保存到预设的数据库中。
48.基于此,流水线控制组件210中还包括websocket。
49.其中,websocket作为常链接,与采集器230预先建立有实时的通信连接,以保持与采集器230之间的实时通信,并实时接收采集230采集的引擎组件240中各个引擎执行产生的各种消息,日志,结果等。
50.本实施例中,引擎组件240是指流水线执行的引擎集合,包括但不限于以下几种引擎:第一种,ci引擎,其中,ci引擎包括但不限于tekton引擎、jenkins引擎、gitlab-runner引擎和drone引擎等。
51.第二种,cd引擎,其中,cd引擎包括但不限于ansible引擎、terraform引擎和k8s引擎等。
52.第三种,通用引擎。
53.可选地,通用引擎可以是devops引擎。
54.本实例中,不同的引擎,以插件注册的方式,在流水线控制组件210中的引擎中心中注册。
55.另外,在选择不同的引擎时,引擎组件240还用于执行流水线控制组件240中的引擎中心下发对应选择命令。
56.本实例中,引擎中心(provider center)是引擎组件240中的引擎的注册中心,用于管理引擎组件240中的引擎,接受引擎组件240中的引擎的注册和心跳汇报,向引擎发送执行命令,是连接引擎组件240和流水线控制组件210的纽带。
57.另外,流水线控制组件210中还包括元数据管理中心(metadata)、源代码管理工具和全局网络钩子(global webhook)。
58.其中,元数据管理中心用于管理流水线执行相关的所有元数据,包括引擎组件240中的引擎的注册信息和流水线的执行状态、日志和产物等。
59.本实施例中,源代码管理工具对接了gitlab、svn等多种源代码管理平台,用于获取需要构建的源代码,通过流水线将获取到的源代码进行编译和构建等。
60.全局网络钩子用于对外提供统一的网络钩子(webhook),支持gitlab,svn等源代
码管理平台,并统一分发外部网络钩子命令和操作流水线,例如执行流水线等。
61.本实施例提供的支持多引擎的研发运维平台和cicd流水线的管理系统,将引擎组件中的引擎注册到流水线控制组件中的引擎中心,以供编排流水线时在注册的引擎中选择流水线的执行引擎节点。控制器按照编排引擎中保存的流水线的流程定义执行流水线,同时收集流水线的执行状态和日志并推送到收集器,并根据任务执行的状态,更新流水线和阶段的状态,完成流水线的执行和管理。
62.下面对本技术提供的支持多引擎的研发运维平台和cicd流水线的管理方法进行详细介绍。
63.如图3所示,本技术的实施例提供的一个支持多引擎的研发运维平台和cicd流水线的管理方法,该方法用于支持多引擎的研发运维平台和cicd流水线的管理系统中,至少包括以下几个步骤:步骤301,显示流水线管理的主界面。
64.其中,主界面包括流水线管理控件,流水线管理控件用于控制显示或关闭引擎配置界面。
65.步骤302,在接收到作用于流水线管理控件的操作后,显示引擎配置界面。
66.本实施例中,引擎配置界面中显示有至少三个引擎和每个引擎对应的引擎节点。
67.可选地,至少三个引擎包括jenkins引擎、tekton引擎和gitlab-runner引擎。
68.其中,每个引擎包括至少一个引擎节点,例如jenkins引擎包括slave节点,windows节点和k8s节点等。
69.步骤303,通过引擎配置界面配置得到运行引擎节点。
70.具体地,通过引擎配置界面配置得到运行引擎节点,包括:接收作用于引擎配置界面的选择操作;将选择操作对应的引擎节点确定为运行引擎节点。
71.其中,选择操作可以是用户手指点击屏幕实现的选择操作,也可以是通过鼠标或者键盘等设备实现的选择操作,本实施例不对选择操作的实现方式作限定。
72.比如:以选择操作为鼠标点选为例,引擎配置界面中显示有三个引擎,分别为引擎a、引擎b和引擎c,在鼠标点击引擎a后显示引擎a的引擎节点,再通过鼠标点选的方式,在引擎a的引擎节点中选择确定出运行引擎节点。
73.实际实现时,用户还可以不通过引擎配置界面配置得到运行引擎节点,此时,会选择默认节点作为引擎节点,例如jenkins引擎中的master节点。
74.实际实现时,预设引擎列表中还可以包括其他引擎,本实施例不对预设引擎列表的实现方式作限定。
75.步骤304,在接收到运行引擎节点后,显示流水线创建界面。
76.步骤305,通过流水线创建界面得到目标流水线。
77.具体地,通过流水线创建界面得到目标流水线,包括但不限于以下几种情况:第一种,流水线创建界面中包括流水线选择控件。
78.相应地,通过所述流水线创建界面得到目标流水线,至少包括步骤s11至步骤s14:步骤s11,在接收到作用于流水线选择控件的操作后,显示流水线选择区域。
79.其中,流水线选择区域中包括至少一个可配置流水线。不同的运行引擎节点对应的可配置流水线相同或者不同。
80.步骤s12,基于作用于流水线选择区域的选择操作,在至少一个可配置流水线中确定出待配置流水线。
81.可选地,至少一个可配置流水线中包括历史流水线和预先设置的模板流水线。
82.其中,历史流水线是指保存在编排引擎中,且已经被成功执行过的流水线。
83.实际实施时,历史流水线也可以是保存在数据库中的流水线,其中,数据库可以为mysql数据库或者oracle数据库等,本实施例不对数据库的选取作限定。
84.模板流水线为预先设置的流水线的模板。相应地,在待配置流水线为模板流水线的情况下,在确定出待配置流水线之前,还需要先配置模板流水线,此时,主界面还包括模板流水线配置控件。
85.具体地,在至少一个可配置流水线中确定出待配置流水线之前,还包括:在接收到作用于模板流水线配置控件的操作后,显示模板流水线配置界面,模板流水线配置界面包括模板配置区域和至少一个步骤模板控件;基于作用于步骤模板控件的配置操作,确定待配置流水线的目标步骤模板;在模板配置区域中显示目标步骤模板;基于作用于模板配置区域的配置操作,将目标步骤模板组合得到模板流水线。
86.其中,步骤模板控件用于确定步骤模板,不同步骤模板控件对应的步骤模板不同或者部分相同。
87.比如:以步骤模板控件a和步骤模板控件b为例,步骤模板控件a对应步骤模板1和步骤模板2,步骤模板控件b对应步骤模板3;或者,步骤模板控件a对应步骤模板1和步骤模板2,步骤模板控件b对应步骤模板1和步骤模板3。
88.本实施例中,步骤模板是预先设置的最小单元的执行脚本,在步骤模板中确定出目标步骤模板,通过模板配置区域将目标步骤模板进行组合,得到模板流水线,以供在创建目标流水线时可直接使用该模板流水线。
89.其中,执行脚本包括代码拉取脚本,支持多语言的编译构建脚本(例如java,h5,c++等),多工具构建脚本(例如npm,gradle,maven,aat等),代码扫描脚本(例如sonar等),单元测试脚本(例如junit等),制品上传脚本(例如nexus、harbor等),cd部署脚本等。
90.比如:参考图4,以流水线需求为代码的编译构建以代码扫描为例,在步骤模板中选取拉取代码到workspace、sonar代码扫描和代码编译构建对应的需求步骤模板并进行组合,得到编译构建以及代码扫描的任务模板;在步骤模板中选取产物收集、制品推送对应的需求步骤模板并进行组合,得到制品打包、推送至仓库的任务模板;将得到的编译构建以及代码扫描的任务模板和制品打包、推送至仓库的任务模板组合,得到流水线需求对应的模板流水线。
91.本实施例中,通过对接jenkins、gitlab-runner和tekekton等构建引擎,基于构建引擎提供步骤模板,实现多语言,多工具,跨平台的编译构建,可以任意组合模板,适配各种不同场景下的流水线编译构建。
92.针对复杂且大批量的应用构建部署,提供了支持串并行自由组合的步骤模板,这样,可以避免开发人员和运维人员重复性的打包部署操作,只需一次性创建模板流水线即可。
93.步骤s13,在确定出待配置流水线后,显示流水线配置界面。
94.步骤s14,通过流水线配置界面对待配置流水线进行配置,得到目标流水线。
95.其中,流水线配置界面包括编排控件和代码绑定控件。
96.具体地,通过流水线配置界面对待配置流水线进行配置,得到目标流水线,包括:基于作用于编排控件的操作,确定待配置流水线中的各个步骤的执行顺序;基于作用于代码绑定控件的操作,确定待配置流水线中的各个步骤绑定的代码。
97.第二种,流水线创建界面中还包括新建流水线控件和/或流水线导入控件。
98.相应地,通过流水线创建界面得到目标流水线,包括:基于作用于新建流水线控件的新建操作,得到目标流水线;或,基于作用于流水线导入控件的导入操作,得到目标流水线。
99.由于存在当前用户选择不使用模板流水线或者历史流水线作为待配置流水线的可能,此时,当前用户可以通过新建流水线控件构建一个空白流水线,或者通过流水线导入控件导入本地存储的流水线。
100.另外,为了保证目标流水线的正常执行,还需要配置目标流水线的辅助信息。
101.具体地,通过流水线配置界面对待配置流水线进行配置,得到目标流水线之后,还包括:显示辅助信息设置界面,辅助信息设置界面包括权限配置控件、执行配置控件和通知配置控件;基于作用于权限配置控件的设置操作,确定目标流水线的操作权限;基于作用于执行配置控件的设置操作,确定目标流水线的执行时间;基于作用于通知配置控件的设置操作,确定目标流水线的通知。
102.其中,操作权限包括流水线的运行权限和管理权限等,通过权限配置控件指定目标流水线的运行人员和管理人员,指定用户才能够操作流水线,这样,可以提高目标流水线执行的安全性。
103.通过执行配置控件,可以设置目标流水线的开始执行时间和定时任务等,例如设置目标流水线在闲时执行。
104.目标流水线的通知包括目标流水线的执行过程和执行结果的通知,例如使用邮件或者短信通知运行人员和管理人员等,针对重要的目标流水线,及时通知流水线的执行情况到管理人员,可以及时发现问题,降低事故的发生率。
105.本实施例中,在运行目标流水线之前,还需要先确定目标流水线中的各个步骤中的动态参数。其中,动态参数包括与各个步骤绑定的源代码的参数。
106.在确定出动态参数后,根据动态参数修改目标流水线中对应步骤中已经存在的参数,修改完成后,在运行引擎节点上运行目标流水线。
107.可选地,流水线创建界面包括参数接收区域。相应地,通过流水线创建界面得到目标流水线,还包括:通过参数接收区域接收目标流水线的动态参数;基于动态参数修改所述目标流水线的参数。
108.在实际实现时,存在无法一次构建出能够满足需求的目标流水线的可能,此时,还需要根据目标流水线运行后产生的数据对目标流水线中的任务进行调整。
109.具体地,通过流水线创建界面得到目标流水线之后,还包括:运行目标流水线;采集目标流水线的运行数据。
110.其中,运行数据包括目标流水线运行过程中产生的运行日志和运行状态。
111.在目标流水线运行结束后,根据采集到的运行数据,调整和完善目标流水线。
112.如图5所示,目标流水线在执行时,会调用编排引擎,通过编排引擎运行目标流水
线,执行目标流水线中的任务,填写动态参数。可在执行目标流水线时修改需要更改的动态参数,通过动态参数的修改可以实现目标流水线的修改,无需修改目标流水线,可以减少配置步骤,只需要创建一条流水线,就可以实现代码拉取,代码扫描,编译构建,制品打包,部署等一系列操作,并且流水线可复用,每次执行只需修改可执行参数即可。在执行目标流水线的过程中,对运行目标流水线的运行引擎节点进行实时监听,获取目标流水线中任务的执行数据。
113.综上所述,本实施例提供的支持多引擎的研发运维平台和cicd流水线的管理方法,通过显示研发运维平台的主界面,主界面包括流水线管理控件;在接收到作用于流水线管理控件的操作后,显示流水线管理界面,流水线管理界面包括引擎配置界面,引擎配置界面中显示有至少三个引擎和每个引擎对应的引擎节点;通过引擎配置界面配置得到运行引擎节点;在接收到运行引擎节点后,显示流水线创建界面;通过流水线创建界面得到目标流水线;在运行引擎节点上运行目标流水线。可以解决传统的流水线管理方法只能构建得到适于单一使用场景的流水线,无法得到适用于不同使用场景的流水线的问题。通过引擎配置界面配置目标流水线的运行引擎节点,不同的运行引擎节点对应的使用场景不同,这样,通过不同的运行引擎节点,可以构建得到适配各种不同场景的目标流水线。
114.另外,针对复杂且大批量的应用构建部署,提供了支持串并行自由组合的步骤模板和任务模板,避免了开发人员和运维人员重复性的打包部署操作,只需一次性创建模板流水线,可以提高流水线的构建效率。
115.为了更清楚地理解本技术提供的支持多引擎的研发运维平台和cicd流水线的管理方法,本实施例对该方法举一个实例进行说明,参考图6,该方法至少包括以下步骤:步骤601,选择运行引擎节点;步骤602,确定运行引擎节点对应的至少一个可配置流水线,至少一个可配置流水线包括模板流水线和历史流水线;步骤603,是否选择模板流水线,在选择模板流水线的情况下,执行步骤606,否则执行步骤604;步骤604,确定是否选择历史流水线,在选择历史流水线的情况下,执行步骤609,否则执行步骤605;步骤605,是否选择新建流水线,在选择新建流水线的情况下,执行步骤608;步骤606,对模板流水线中的步骤进行编排;步骤607,将编排后的流水线进行源代码绑定,执行步骤509;步骤608,构建新的流水线;步骤609,配置辅助信息,得到目标流水线。
116.综上所述,通过选择运行引擎节点,确定运行硬气节点对应的至少一个可配置流水线;在选择模板流水线作为待配置流水线的情况下,对待配置流水线进行编排、源代码绑定和辅助信息的配置,得到目标流水线;在选择历史流水线作为待配置流水线的情况下,对待配置流水线进行辅助信息的配置,得到目标流水线;在不选择可配置流水线的情况下,新建流水线,得到目标流水线。可以解决传统的流水线管理方法只能构建得到适于单一使用场景的流水线,无法得到适用于不同使用场景的流水线的问题。通过选择运行引擎节点,不同的运行引擎节点对应的使用场景不同,这样,基于不同的运行引擎节点,可以构建得到适
配各种不同场景的目标流水线。
117.本实施例提供支持多引擎的研发运维平台和cicd流水线的管理装置,如图7所示,该装置包括至少以下几个模块:第一显示模块710、第二显示模块720、引擎配置模块730、第三显示模块740、流水线创建模块750和流水线执行模块760。
118.第一显示模块710,用于显示研发运维平台的主界面,主界面包括流水线管理控件;第二显示模块720,用于在接收到作用于流水线管理控件的操作后,显示流水线管理界面,流水线管理界面包括引擎配置界面,引擎配置界面中显示有至少三个引擎和每个引擎对应的引擎节点;引擎配置模块730,用于通过引擎配置界面配置得到运行引擎节点;第三显示模块740,用于在接收到运行引擎节点后,显示流水线创建界面;流水线创建模块750,用于通过流水线创建界面得到目标流水线;流水线执行模块760,用于在运行引擎节点上运行目标流水线。
119.相关细节参考上述方法和实施例。
120.需要说明的是:上述实施例中提供的支持多引擎的研发运维平台和cicd流水线的管理装置在进行基于支持多引擎的研发运维平台和cicd流水线的管理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将支持多引擎的研发运维平台和cicd流水线的管理装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的支持多引擎的研发运维平台和cicd流水线的管理装置与支持多引擎的研发运维平台和cicd流水线的管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
121.本实施例提供一种电子设备,如图8所示。该电子设备至少包括处理器801和存储器802。
122.处理器801可以包括一个或多个处理核心,比如:4核心处理器、8核心处理器等。处理器801可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有gpu(graphics processing unit,图像处理器), gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
123.存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本技术中方法实施例提供的支持多引擎的研发运维平台和cicd流水线的管理方法。
124.在一些实施例中,电子设备还可选包括有:外围设备接口和至少一个外围设备。处
理器801、存储器802和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。
125.当然,电子设备还可以包括更少或更多的组件,本实施例对此不作限定。
126.可选地,本技术还提供有一种计算机可读存储介质,计算机可读存储介质中存储有程序,程序由处理器加载并执行以实现上述方法实施例的支持多引擎的研发运维平台和cicd流水线的管理方法。
127.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
128.显然,上述所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,可以做出其它不同形式的变化或变动,都应当属于本技术保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1