一种跨平台的DevOps引擎模板方法和系统

文档序号:7180 发布日期:2021-09-17 浏览:65次 英文

一种跨平台的DevOps引擎模板方法和系统

技术领域

本发明涉及自动化运维

技术领域

,特别是涉及一种跨平台的DevOps引擎模板方法和一种跨平台的DevOps引擎模板系统。

背景技术

自动化运维就是把周期性、重复性、规律性的工作都交给工具去做,将IT运维中日常的、大量的重复性工作自动化,将手动操作替换为自动化操作。自动化运维依赖于预先开发的智能管理平台,自动解决用户在IT管理中的日常运维问题,进而提升运维效率。

DevOps(开发Development和运维Operations的组合词)是一组过程、方法与系统的统称,用于促进应用程序/软件工程的开发、技术运营和质量保障部门之间的沟通、协作与整合,增进软件开发人员(Dev)和IT运维技术人员(Ops)之间的沟通合作,以智能管理平台的形式帮助各方人员自动化完成开发运维过程中软件开发、测试、部署、运维等一系列流程。

目前,各类DevOps工具内集成和封装的各模块组件可以通过数据的硬关联进行调用,技术人员通常会根据特定的技术框架集成第三方开源的工具组件进行调用,以达到近似自动化的效果,但是,这种调用仅仅是在程序上设定好的逻辑去触发生效,在集成和调试过程中还需要反复录入源信息和不断地人工试错,调试完成之后组件只能按固定的流程顺序进行调用,实现的功能非常局限,扩展性很差。

实际上的开发运维流程一般都会涉及多种环境,各方人员在各自的环境、平台内完成工作。考虑到环境、平台的差异,还需要针对当前环境、平台进行单独的配置和调试,如此,不仅增加耗费大量人力物力,还使得平台功能进一步受到局限,对软件的开发运维工作造成不良影响。

发明内容

鉴于上述问题,本发明实施例提出了一种克服上述问题或者至少部分地解决上述问题的一种跨平台的DevOps引擎模板方法和一种跨平台的DevOps引擎模板系统。

为了解决上述问题,本发明实施例提供了一种跨平台的DevOps引擎模板方法,所述方法应用于引擎模板系统,所述引擎模板系统包括多个平台,所述方法包括:

获得待完成的产品任务以及与所述产品任务对应的模板,其中,所述产品任务包括多个处理流程,所述模板用于指示完成所述多个处理流程;

对所述多个处理流程中需要第一平台执行的处理流程,所述第一平台的引擎根据所述模板调用所述第一平台上配置的DevOps组件;

在所述第一平台上所调用的DevOps组件根据所述模板,执行所述产品任务在所述第一平台中的处理流程;

在检测到在所述第一平台中的处理流程被执行完毕时,确定所述多个处理流程中剩余处理流程所位于的第二平台;

所述第一平台的引擎将所述模板发送给所述第二平台的引擎;

所述第二平台的引擎根据所述模板调用所述第二平台上配置的DevOps组件,以通过所调用的DevOps组件完成所述产品任务在所述第二平台中的处理流程。

可选地,所述第一平台的引擎将所述模板发送给所述第二平台的引擎,包括:

将所述第一平台上所调用的最后一个DevOps组件,作为流程启动点,创建模板入口;

所述第一平台的引擎通过所述模板入口获取所述模板对下一个处理流程的指示,根据所述指示将所述模板发送给所述第二平台的引擎。

可选地,在所述第一平台上所调用的DevOps组件根据所述模板,执行所述产品任务在所述第一平台中的流程,或所述通过所调用的DevOps组件完成所述产品任务在所述第二平台中的流程时,所述方法还包括:

当所述引擎确定所述模板指示调用的下一个DevOps组件为持续交付、持续部署、持续发布的其中一者时,根据模板命令中挂载的配置信息,配置所述产品任务所需要的产品环境;其中,所述引擎为第一平台的引擎或第二平台的引擎;

所述配置信息至少包括以下一者:所述产品环境需要的产品文件、所述当前产品环境需要的环境变量。

可选地,在所述第一平台上所调用的DevOps组件根据所述模板,执行所述产品任务在所述第一平台中的流程,或所述通过所调用的DevOps组件完成所述产品任务在所述第二平台中的流程时,所述方法还包括:

所述DevOps组件根据所述模板的指示,完成所述产品任务在该组件中的流程时,将该DevOps组件被调用完成的信息反馈给所在平台的引擎;其中,所述DevOps组件为第一平台的DevOps组件或第二平台的DevOps组件;

所述引擎将所述信息反馈给前端页面。

可选地,在所述多个处理流程中需要第一平台执行的处理流程有多个的情况下,在所述第一平台上所调用的DevOps组件根据所述模板,执行所述产品任务在所述第一平台中的处理流程,包括:

根据所述第一平台上执行的多个处理流程的执行顺序,对所述多个处理流程进行分组,得到至少一个流程组,其中,每个流程组中包括多个处理流程;

在所述第一平台上所调用的DevOps组件根据所述模板,并行执行所述至少一个流程组中的处理流程。

可选地,所述第二平台有多个;确定所述多个处理流程中剩余处理流程所位于的第二平台,包括:

确定多个第二平台的执行序列,包括:确定与所述第一平台并行执行的第二平台,以及,与所述第一平台串行执行的第二平台;

所述第二平台的引擎根据所述模板调用所述第二平台上配置的DevOps组件,包括:

与所述第一平台并行执行的第二平台的引擎根据所述模板,调用与所述第一平台并行的第二平台上配置的DevOps组件,以并行执行第一平台和所述第二平台上的处理流程;

与所述第一平台串行执行的第二平台的引擎根据所述模板,调用与所述第一平台串行的第二平台上配置的DevOps组件,以在执行完所述第一平台上的处理流程,以及,执行完与所述第一平台并行执行的第二平台上的处理流程时,执行所述第二平台上的处理流程。

本发明实施例还提供了一种跨平台的DevOps引擎模板系统,所述引擎模板系统包括多个平台,其中,在第一平台上包括以下模块:

模板获取引擎第一模块,用于获得待完成的产品任务以及与所述产品任务对应的模板,其中,所述产品任务包括多个处理流程,所述模板用于指示完成所述多个处理流程;

组件调用引擎第一模块,用于对所述多个处理流程中需要第一平台执行的处理流程,控制所述第一平台的引擎根据所述模板调用所述第一平台上配置的DevOps组件;其中,所述第一平台为所述组件调用引擎第一模块所位于的平台;

组件执行第一模块,用于控制在所述第一平台上所调用的DevOps组件根据所述模板,执行所述产品任务在所述第一平台中的处理流程;

跨平台引擎预备第一模块,用于在检测到在所述第一平台中的处理流程被执行完毕时,确定所述多个处理流程中剩余处理流程所位于的第二平台;

跨平台引擎执行第一模块,用于控制所述第一平台的引擎将所述模板发送给所述第二平台的引擎;

在第二平台上包括以下模块:

组件调用引擎第二模块,用于控制所述第二平台的引擎根据所述模板调用所述第二平台上配置的DevOps组件,以通过所调用的DevOps组件完成所述产品任务在所述第二平台中的处理流程;其中,所述第二平台为所述组件调用引擎第二模块所位于的平台。

可选地,所述第一平台还包括以下模块:

组件启动第一模块,用于将所述第一平台上所调用的最后一个DevOps组件,作为流程启动点,创建模板入口;

所述跨平台引擎执行第一模块,包括:跨平台引擎执行第一子模块,用于所述第一平台的引擎通过所述模板入口获取所述模板对下一个处理流程的指示,根据所述指示将所述模板发送给所述第二平台的引擎。

可选地,在所述多个处理流程中需要第一平台执行的处理流程有多个的情况下,所述组件执行第一模块,包括:

流程分组第一模块,用于根据所述第一平台上执行的多个处理流程的执行顺序,对所述多个处理流程进行分组,得到至少一个流程组,其中,每个流程组中包括多个处理流程;

组件并行执行第一模块,用于控制在所述第一平台上所调用的DevOps组件根据所述模板,并行执行所述至少一个流程组中的处理流程。

可选地,所述第二平台有多个;所述跨平台引擎预备第一模块,包括:

跨平台引擎预备第一子模块,用于确定多个第二平台的执行序列,包括:确定与所述第一平台并行执行的第二平台,以及,与所述第一平台串行执行的第二平台;

所述组件调用引擎第二模块,包括:

并行平台组件调用引擎模块,用于控制与所述第一平台并行执行的第二平台的引擎根据所述模板,调用与所述第一平台并行的第二平台上配置的DevOps组件,以并行执行第一平台和所述第二平台上的处理流程;

串行平台组件调用引擎模块,用于控制与所述第一平台串行执行的第二平台的引擎根据所述模板,调用与所述第一平台串行的第二平台上配置的DevOps组件,以在执行完所述第一平台上的处理流程,以及,执行完与所述第一平台并行执行的第二平台上的处理流程时,执行所述第二平台上的处理流程。

从上述技术方案可以看出,本发明实施例提供了一种跨平台的DevOps引擎模板方法和一种跨平台的DevOps引擎模板系统,考虑到现有的DevOps工具组件数据硬关联自由度低、调试难度高、自动化运维效率低下的情况,由可外接式的引擎,根据命令模板的指示调用DevOps平台内的DevOps组件,利用平台间引擎的互通,实现模板流程的传递和DevOps组件调用的接力,实现模板自由配置的、跨平台的DevOps自动化运维,满足跨环境、跨平台开发运维的需求,提高DevOps工具的功能灵活性和自动化程度。

附图说明

图1是本发明实施例提供的一种跨平台的DevOps引擎模板方法的步骤流程图;

图2是本发明实施例提供的一种跨平台的DevOps引擎模板系统的结构示例图;

图3是本发明实施例提供的一种平台内并行执行处理流程方法的步骤流程图;

图4是本发明实施例提供的一种平台内并行执行处理流程的跨平台环境示例图;

图5是本发明实施例提供的一种多平台并行执行处理流程方法的步骤流程图;

图6是本发明实施例提供的一种多平台并行执行处理流程的跨平台环境示例图;

图7是本发明实施例提供的一种跨平台的DevOps引擎模板系统的结构框图。

具体实施方式

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

相关技术中已经出现了一系列的DevOps工具,均旨在为软件开发、测试、部署、运维提供全自动运行支持。目前的DevOps工具将项目管理、代码管理、CI(持续集成Continuous Integration)、CD(持续部署Continuous Deployment)、测试管理、制品管理这些模块进行了集成和封装,在一个平台上形成能够单独使用的DevOps组件,通过特定的配置和调试,这些DevOps组件可以基于数据的硬关联进行特定顺序的调用。

针对各类日益丰富DevOps工具,技术人员根据特定的技术框架,集成第三方开源的工具组件进行特定顺序的调用,最终也只能相应地使用调试、配置定型的一种功能,并不能适用于不同的使用场景和运维要求。再考虑到开发运维通常都会涉及到多种环境、平台。其中,环境包括开发环境、测试环境、回归环境、预发布环境、生产环境等等,平台有比如:Saas、codo、bigops等等。示例性地,同一个软件,可能是在企业内网环境的DevOps平台完成开发、测试,再打包进入到公网环境的DevOps平台完成交付、部署,两侧环境的DevOps平台的种类还可能存在差异,各DevOps平台的版本还可能存在差异,进一步阻碍了跨平台软件自动化运维的实现,增加了难度。

为此,本发明实施例考虑到相关技术中DevOps平台内组件调用的僵化,难以实现跨平台的自动化运维,提出一种跨平台的DevOps引擎模板方法和系统,可以通过API接口外接引擎,引擎对模板进行调用,并根据模板的指示调用DevOps平台内的DevOps组件,利用平台间引擎的互通,实现模板流程的传递和DevOps组件调用的接力,实现模板自由配置的、跨平台的DevOps自动化运维,满足跨环境、跨平台开发运维的需求,提高DevOps工具的功能灵活性和自动化程度。

下面结合附图对本发明实施例进行说明。

参照图1,图1是本发明实施例提供的一种跨平台的DevOps引擎模板方法的步骤流程图。如图1所示,本发明实施例提供了一种跨平台的DevOps引擎模板方法,所述方法应用于引擎模板系统。

参照图2,图2是本发明实施例提供的一种跨平台的DevOps引擎模板系统的结构示例图。如图2所示,所述引擎模板系统包括多个平台,所述多个平台至少包括:第一平台和第二平台。

如图2所示,在本发明提供的一种示例中,所述引擎模板系统的各平台都各自包括项目管理、代码托管、CI、测试、CD、制品管理等组件,各组件能够主动通过引擎Engine创建模板入口,接收模板命令,执行步骤模板设定的执行顺序。其中,第一平台和第二平台等多个平台均可以在平台并行执行多条步骤流水;第一平台和第二平台等多个平台可以实现产品任务处理流程的延伸,实现跨平台的自动化运维。

如图2所示,第一平台在第一产品任务流水线中按顺序依次执行如下步骤模板:Step1→Step2→Step3;与第一产品任务流水线并行执行地,第一平台在第二产品任务流水线中按顺序依次执行如下步骤模板:Step1→Step2→Step3。第一产品任务流水线在第二平台中的延伸为:Step4→Step5,则第二平台在第一产品任务流水线中按顺序依次执行如下步骤模板:Step4→Step5,第一平台和第二平台共同完成产品任务的处理流程:Step1→Step2→Step3→Step4→Step5。此外,与第一产品任务流水线并行执行地,第二平台在第三产品任务流水线中按顺序依次执行如下步骤模板:Step1→Step2→Step3。

所述跨平台的DevOps引擎模板方法,具体包括如下步骤:

S31,获得待完成的产品任务以及与所述产品任务对应的模板,其中,所述产品任务包括多个处理流程,所述模板用于指示完成所述多个处理流程。

具体地,可以将执行产品任务的第一项处理流程的平台设定为第一平台,由第一平台的引擎获得待完成的产品任务以及与所述产品任务对应的模板。示例性地,当产品任务的第一项处理流程为“项目管理”时,可以将执行“项目管理”的平台作为第一平台。

其中,平台的引擎可以通过串口通信的方式与平台内的DevOps组件实现通信、调用,比如:API应用程序编程接口。

其中,产品任务可以是软件开发运维流程中的任务,产品任务可以包括:项目管理、代码托管、持续集成、测试、持续交付、持续部署、持续发布等等。产品任务对应的模板,是命令式的模板,对产品任务包括的多个处理流程的执行顺序、各处理流程对应的平台、各处理流程对应的组件作出指示,即,各处理流程由哪个平台的哪个组件执行完成,哪个处理流程先完成,哪个处理流程后完成。

在本实施例中,所述模板可以完全根据用户的需求进行自定义的配置,模板指示完成的多个处理流程顺序、平台没有特别的限制,可以实现任意搭配。示例性地,第一平台的处理流程的执行顺序可以是:步骤1--项目管理、步骤2--代码托管、步骤3--持续集成,第二平台的处理流程的执行顺序可以是:步骤4--测试、步骤5--持续部署。第一平台的处理流程的执行顺序还可以是:步骤1--项目管理、步骤2--持续集成、步骤3--测试,第二平台的处理流程的执行顺序还可以是:步骤4--测试。

通过本实施例,把所有命令通过模板交给引擎去执行,即,所有的流程化事项均交由平台各自部署的引擎完成,无需强调组件之前的关联配置,能够有效减少运维人员的工作量,提高平台功能的可扩展性和灵活性。同时,各组件不再受固定的关联配置的局限,也有更多深化自身功能方向的价值空间。

S32,对所述多个处理流程中需要第一平台执行的处理流程,所述第一平台的引擎根据所述模板调用所述第一平台上配置的DevOps组件。

在本实施例中,第一平台需要执行的处理流程是根据模板确定的,是跨平台执行的产品任务的多个处理流程中执行的需要先在第一平台完成的流程。

具体地,第一平台的引擎对命令式的模板进行解析,获取模板中多个处理流程的执行顺序、各处理流程对应的平台、各处理流程对应的组件等命令信息。而这些命令信息又包括第一命令信息,第一命令信息至少包括:需要第一平台执行的处理流程的执行顺序、需要第一平台执行的各处理流程对应的组件,以使第一平台的引擎根据第一命令信息,相对应地调用所第一平台上配置的DevOps组件。

示例性地,当第一平台的引擎解析到当前模板指示的第一平台的处理流程的执行顺序是:步骤1--项目管理、步骤2--代码托管、步骤3--持续集成;则相应地,第一平台的引擎依次对第一平台的项目管理组件、第一平台的代码托管组件、第一平台的持续集成组件进行调用。

S33,在所述第一平台上所调用的DevOps组件根据所述模板,执行所述产品任务在所述第一平台中的处理流程。

考虑到运维软件包的流动性,产品任务的处理流程需要分先后完成,在本实施例中,第一平台的引擎可以在模板指示的前一处理流程完成后,再调用下一组件执行后一处理流程,依次完成产品任务在第一平台中的处理流程。

示例性地,模板指示的第一平台的处理流程的执行顺序可以是:步骤1--项目管理,步骤2--代码托管,步骤3--持续集成;则相应地,第一平台的引擎在根据模板的命令信息,调用第一平台的项目管理组件完成步骤1--项目管理的执行之后,再调用第一平台的代码托管组件完成步骤2--代码托管的执行,最后调用第一平台的持续集成组件完成步骤3--持续集成的执行。

S34,在检测到在所述第一平台中的处理流程被执行完毕时,确定所述多个处理流程中剩余处理流程所位于的第二平台。

具体地,在检测到所述第一平台中需要最后一个执行的处理流程被执行完毕时,第一平台的引擎需要根据模板的命令信息确定多个处理流程中剩余处理流程所位于的第二平台。

示例性地,当第一平台的持续集成组件完成步骤3--持续集成的执行,则可以进一步由第二平台的组件执行下一步骤:步骤4。

其中,所述剩余处理流程是需要在第二平台中完成的处理流程。

S35,所述第一平台的引擎将所述模板发送给所述第二平台的引擎。

具体地,本实施例可以预先对硬件网络进行配置,实现跨平台引擎之间的物理网络连接;所述第一平台的引擎可以在对模板解析完成之后,获取模板的命令信息中剩余处理流程与第二平台中的组件的对应关系,建立与第二平台的引擎之间的通信连接。

为方便引擎之间的互通,本实施例中各平台的引擎可以是同类型的引擎。可选的引擎类型包括:Jenkins-pipeline、Azure-yaml、xml、json。

在本实施例中,第一平台还需要建立与第二平台之间的通信连接,在步骤S34确定所述多个处理流程中剩余处理流程所位于的第二平台之后,第一平台将第一平台中执行最后一个步骤的DevOps组件已执行完成的产品任务的相关文件打包成文件包,发送给第二平台;第二平台接收文件包,并对文件包进行安全测试;第二平台的引擎完成模板的解析之后,第二平台中将执行文件包发送给第二平台中执行第一个步骤的DevOps组件。其中,第一平台中执行最后一个步骤的DevOps组件,即,第一平台上所调用的最后一个DevOps组件;第二平台中执行第一个步骤的DevOps组件,即,第二平台上所调用的第一个DevOps组件。

本实施例第一平台的引擎在第一平台中的处理流程被执行完毕时,确定第二平台,将模板发送给第二平台的引擎,可以不必考虑第一平台执行处理流程的快慢情况,自然而然地完成引擎接力,实现平台组件之间调用的无缝衔接。

S36,所述第二平台的引擎根据所述模板调用所述第二平台上配置的DevOps组件,以通过所调用的DevOps组件完成所述产品任务在所述第二平台中的处理流程。

在本实施例中,第二平台的引擎获取模板后,同样会对模板进行解析,获取模板中多个处理流程的执行顺序、各处理流程对应的平台、各处理流程对应的组件等命令信息。这些命令信息包括第二命令信息,第二命令信息至少包括:需要第二平台执行的处理流程的执行顺序、需要第二平台执行的各处理流程对应的组件,以使第二平台的引擎根据第二命令信息,相对应地调用所第二平台上配置的DevOps组件。

示例性地,第二平台的引擎解析到模板指示第二平台需要完成的处理流程的执行顺序是:步骤4--测试、步骤5--持续部署;则相应地,第二平台的引擎依次对第二平台的测试组件、第二平台的持续部署组件进行调用。

通过本实施例,可以由所处环境不同的、不同类型、不同版本的多个平台,配置引擎根据模板的指示调用DevOps平台内的DevOps组件,利用平台间引擎的互通、平台间的互通,实现模板流程的传递和DevOps组件调用的接力,并且,产品任务的处理流程也可根据模板跨网络环境去执行,模板又实现了跨网络环境的调用,从而达到模板传递的效果,实现模板自由配置的、跨平台的DevOps自动化运维。

在可选的一种实施方式中,所述DevOps组件可以预先基于docker容器化部署,即,将每个平台内的各个DevOps组件单独部署在一个docker容器内,以便于组件间的调用和管理。示例性地,可以基于K8S微服务架构的docker容器进行部署。

考虑到相关技术中DevOps组件之间基于数据硬关联启动,加深了跨环境、跨平台间组件调用的壁垒,若单纯以引擎作为跨平台操作的启动点,则跨平台的调用可能因为引擎的一点小故障就难以中继,为进一步提高组件根据引擎模板相互调用的灵活度,以及,提高跨平台的成功率,本发明还提供了一种组件主动调用的方法,所述方法具体包括:

将所述第一平台上所调用的最后一个DevOps组件,作为流程启动点,创建模板入口;

所述第一平台的引擎通过所述模板入口获取所述模板对下一个处理流程的指示,根据所述指示将所述模板发送给所述第二平台的引擎。

其中,流程启动点是流程处理的中心起点,第一平台上所调用的最后一个DevOps组件以自己为中心进行流程操作,即,在整个流程调用中重新设定一次流程的起点,对前置流程中可能存在的软件漏洞进行重置,以此减少产品任务整个处理流程中出现的运行错误。

其中,模板入口是当前DevOps组件通过引擎调用模板的入口,当以DevOps组件为流程启动点时,DevOps组件通过引擎调用模板,引擎再根据模板的指示调用下一组件,实现的效果相当于DevOps组件直接对模板进行调用,再根据模板的指示调用下一组件。

示例性地,若第一平台上所调用的最后一个DevOps组件是持续集成组件,执行步骤3--持续集成,在该持续集成组件完成步骤3的执行后,创建模板入口,使得持续集成组件通过第一平台的引擎调用模板,进而通过第一平台的引擎根据模板的指示执行跨平台操作,将所述模板发送给所述第二平台的引擎。

通过本实施例,以第一平台调用的最后一个组件作为中心起点,完成跨平台操作,增加了组件之间跨平台调用的灵活度,还能够有效降低跨平台操作的失败率。

在一种可选的实施方式中,可以预先为多个平台中的每个组件配置接口,使每个组件都拥有创建模板入口的能力,每个组件都可以是中心起点,组件之间可以以自身为中心,通过引擎调用模板,实现起点重置的流程处理,增加组件之间调用的灵活度,还能够有效降低调用操作的失败率。

通过上述实施例,平台中的组件可以进行串联和/或并联操作,平台组件之间没有壁垒,所有的操作方式都是基于模板命令进行操作和启动,任何的步骤和流程均可自定义,模板的实例化与编码语言没有强关联,可以自由的运行在各语言环境中,实现所用即所想的操作。

相关技术在自动化运维的过程中,产品的交付、部署、发布等任务都需要针对产品进行操作,本发明考虑利用模板挂载配置信息,提供相关的产品文件和环境配置变量,为此,本发明实施例还提供了一种挂载配置信息的方法,所述方法包括:

当所述引擎确定所述模板指示调用的下一个DevOps组件为持续交付、持续部署、持续发布的其中一者时,根据模板命令中挂载的配置信息,配置所述产品任务所需要的产品环境;其中,所述引擎为第一平台的引擎或第二平台的引擎;

所述配置信息至少包括以下一者:所述产品环境需要的产品文件、所述当前产品环境需要的环境变量。

其中,无论是在第一平台还是在第二平台,根据模板的具体配置,在调用相应的组件执行持续交付、持续部署、持续发布其中一项处理流程之前,均可以由所在平台的引擎解析出模板命令中挂载的配置信息,根据配置信息中当前产品环境需要的环境变量进行环境的配置,将产品环境需要的产品文件发送相应的组件。其中,所述相应的组件是与处理流程相对应的持续交付组件、持续部署组件、持续发布组件的其中一者。

同样地,上述方案也可以应用于跨平台调用的过程中,以简化平台之间的通信传输操作。

考虑到用户需要对产品任务的处理流程的执行进度有直观认知,本发明还提供了一种反馈流程执行信息的方法,所述方法包括:

所述DevOps组件根据所述模板的指示,完成所述产品任务在该组件中的流程时,将该DevOps组件被调用完成的信息反馈给所在平台的引擎;其中,所述DevOps组件为第一平台的DevOps组件或第二平台的DevOps组件;

所述引擎将所述信息反馈给前端页面。

具体地,本实施例可以通过预先设置回调函数的方式,无论是在哪个平台中,在当前DevOps组件执行完成所述产品任务在该组件中的处理流程后,调用回调函数,将该DevOps组件被调用完成的信息反馈给所在平台的引擎,以使引擎将所述信息反馈给前端页面,则用户可以通过前端页面查看产品任务具体执行到哪一步。

可选地,所述引擎还可以在产品任务的执行出现错误时,将执行错误信息反馈至前段页面,向用户报警,使用户执行针对性的纠错操作。

参照图3,图3是本发明实施例提供的一种平台内并行执行处理流程方法的步骤流程图。通过上述实施例,提供了实现模板自由配置的技术方案,能够基于命令式的模板灵活地自动实现平台的功能组合,基于此,如图3所示,本发明还提供了一种平台内并行执行处理流程的方法,在所述多个处理流程中需要第一平台执行的处理流程有多个的情况下,所述方法具体包括:

S41,根据所述第一平台上执行的多个处理流程的执行顺序,对所述多个处理流程进行分组,得到至少一个流程组,其中,每个流程组中包括多个处理流程;

S42,在所述第一平台上所调用的DevOps组件根据所述模板,并行执行所述至少一个流程组中的处理流程。

参照图4,图4是本发明实施例提供的一种平台内并行执行处理流程的跨平台环境示例图。如图4所示,用户可以预先对模板命令进行定义,第一平台引擎根据模板,将产品任务需要第一平台执行的处理流程分为多个流程组,并行执行这些流程组,在第一平台内所有流程组的处理流程执行完成之后,再进行跨平台操作,执行第二平台内的处理流程。其中,所述并行执行,不强调时间顺序的并行,而是指各自产品任务处理流程的并行,以实现产品任务处理流程的汇总。

参照图4进行地示例性地说明:用户可以预先对模板命令进行定义,使引擎在解析模板命令后,将产品任务需要第一平台执行的处理流程分为流程组1、流程组2,其中流程组1包括:步骤1→步骤2→步骤3,流程组2包括:步骤2→步骤3。第一平台并行执行流程组1和流程组2,在第一平台内所有流程组的处理流程执行完成之后,将两个流程组执行的任务结果,比如代码文件包进行汇总,发送给第二平台,并由第一平台的引擎将模板发送给第二平台的引擎,完成跨平台操作,执行第二平台内的剩余处理流程:步骤4→步骤5→步骤6。

通过本实施例,可以针对特殊场景和产品任务的特定需求,比如要求多部门在同一平台内各自完成产品任务的相同处理流程的部分任务的情况下,可以按阶梯化的思路去配置模板的流程,在平台内部并行执行产品任务的处理流程,最终汇总到下一处理流程继续执行,进而提高产品自动化开发运维的效率。

参照图5,图5是本发明实施例提供的一种多平台并行执行处理流程方法的步骤流程图。通过上述实施例,提供了实现模板自由配置的技术方案,能够基于命令式的模板灵活地自动实现平台的功能组合,基于此,进一步考虑到其他特殊场景和产品任务的特定需求,如图5所示,本发明还提供了一种多平台并行执行处理流程的方法,所述第二平台有多个,所述方法具体包括如下步骤:

确定多个第二平台的执行序列,包括:确定与所述第一平台并行执行的第二平台,以及,与所述第一平台串行执行的第二平台。

在本实施例中,在检测到在所述第一平台中的处理流程被执行完毕时,确定所述多个处理流程中剩余处理流程所位于的第二平台,以及,确定多个第二平台的执行序列;在此之后,所述第一平台的引擎将所述模板发送给与所述第一平台并行执行的第二平台的引擎。

其中,引擎可以通过解析模板中产品任务的平台序列标记,确定与所述第一平台并行执行的第二平台,以及,与所述第一平台串行执行的第二平台。

所述第二平台的引擎根据所述模板调用所述第二平台上配置的DevOps组件,包括:

S51,与所述第一平台并行执行的第二平台的引擎根据所述模板,调用与所述第一平台并行的第二平台上配置的DevOps组件,以并行执行第一平台和所述第二平台上的处理流程。

在本实施例中,所述第一平台的引擎将所述模板发送给与所述第一平台并行执行的第二平台的引擎之后,与所述第一平台并行执行的第二平台与所述第一平台并行执行产品任务的处理流程。其中,所述并行执行,不完全强调时间顺序的并行,而是指各自产品任务处理流程的并行,以实现产品任务处理流程的汇总。

S52,与所述第一平台串行执行的第二平台的引擎根据所述模板,调用与所述第一平台串行的第二平台上配置的DevOps组件,以在执行完所述第一平台上的处理流程,以及,执行完与所述第一平台并行执行的第二平台上的处理流程时,执行所述第二平台上的处理流程。

具体地,由于产品任务处理流程的并行执行,与所述第一平台串行执行的第二平台,即,同样与与所述第一平台并行执行的第二平台串行执行。

参照图6,图6是本发明实施例提供的一种多平台并行执行处理流程的跨平台环境示例图。如图6所示,用户可以预先对模板命令进行定义,第一平台引擎根据模板,由第一平台、与所述第一平台并行执行的第二平台两个平台并行处理流程,再由与所述第一平台串行执行的第二平台执行剩余流程。其中,所述并行执行,不强调时间顺序的并行,而是指各自产品任务处理流程的并行,以实现产品任务处理流程的汇总。

参照图6进行地示例性地说明:用户可以预先对模板命令进行定义,使第一平台的引擎在解析模板命令后,获得产品任务需要第一平台执行的处理流程为:步骤1→步骤2→步骤3,获得产品任务需要与所述第一平台并行执行的第二平台执行的处理流程为:步骤1→步骤2→步骤3,即可以将模板发送给与所述第一平台并行执行的第二平台,由与所述第一平台并行执行的第二平台的引擎根据所述模板调用平台内的组件,与第一平台并行执行,在第一平台、与所述第一平台并行执行的第二平台的处理流程执行完成之后,将两个平台执行的任务结果,比如代码文件包发送第与所述第一平台串行执行的第二平台,由第一平台将模板发送给与所述第一平台串行执行的第二平台,完成跨平台操作,执行与所述第一平台串行执行的第二平台内的剩余处理流程:步骤4→步骤5→步骤6。

通过本实施例,基于上述实施例跨平台自动化运维的可灵活配置性,即,模板的流程按照用户的想法和思路直接去配置即可,达到所用即所想的状态,能够进一步实现特殊场景和产品任务的特定需求,比如要求不同网络环境下多个企业在不同平台内各自完成产品任务的相同处理流程的部分任务的情况下,可以多平台并行执行产品任务的处理流程,最终汇总到下一平台内的处理流程继续执行,易于满足各方需求,进一步提高自动化运维的效率。

参照图7,图7是本发明实施例提供的一种跨平台的DevOps引擎模板系统的结构框图。如图7所示,基于同一发明构思,本发明实施例还提供一种跨平台的DevOps引擎模板系统,所述引擎模板系统包括多个平台,其中,在第一平台上包括以下模块:

模板获取引擎第一模块61,用于获得待完成的产品任务以及与所述产品任务对应的模板,其中,所述产品任务包括多个处理流程,所述模板用于指示完成所述多个处理流程;

组件调用引擎第一模块62,用于对所述多个处理流程中需要第一平台执行的处理流程,控制所述第一平台的引擎根据所述模板调用所述第一平台上配置的DevOps组件;其中,所述第一平台为所述组件调用引擎第一模块所位于的平台;

组件执行第一模块63,用于控制在所述第一平台上所调用的DevOps组件根据所述模板,执行所述产品任务在所述第一平台中的处理流程;

跨平台引擎预备第一模块64,用于在检测到在所述第一平台中的处理流程被执行完毕时,确定所述多个处理流程中剩余处理流程所位于的第二平台;

跨平台引擎执行第一模块65,用于控制所述第一平台的引擎将所述模板发送给所述第二平台的引擎;

在第二平台上包括以下模块:

组件调用引擎第二模块66,用于控制所述第二平台的引擎根据所述模板调用所述第二平台上配置的DevOps组件,以通过所调用的DevOps组件完成所述产品任务在所述第二平台中的处理流程;其中,所述第二平台为所述组件调用引擎第二模块所位于的平台。

可选的,第二平台同样具备与第一平台相同的功能,为此,第二平台还可以包括以下模块:模板获取引擎第二模块、组件调用引擎第二模块、组件执行第二模块、跨平台引擎预备第二模块、跨平台引擎执行第二模块。以上模块与第一平台中对应的模块功能相同或相似,使第二平台通过该平台的引擎根据模板调用组件,延伸执行第一平台内执行的产品任务处理流程的后续流程,以及,将第一平台和第二平台未处理完成的剩余处理流程交由第三平台处理。

以此类推,所述引擎模板系统还可以包括第三平台、第四平台、第五平台等等。

可选地,所述第一平台还包括以下模块:

组件启动第一模块,用于将所述第一平台上所调用的最后一个DevOps组件,作为流程启动点,创建模板入口;

所述跨平台引擎执行第一模块,包括:跨平台引擎执行第一子模块,用于所述第一平台的引擎通过所述模板入口获取所述模板对下一个处理流程的指示,根据所述指示将所述模板发送给所述第二平台的引擎。

可选地,在所述多个处理流程中需要第一平台执行的处理流程有多个的情况下,所述组件执行第一模块,包括:

流程分组第一模块,用于根据所述第一平台上执行的多个处理流程的执行顺序,对所述多个处理流程进行分组,得到至少一个流程组,其中,每个流程组中包括多个处理流程;

组件并行执行第一模块,用于控制在所述第一平台上所调用的DevOps组件根据所述模板,并行执行所述至少一个流程组中的处理流程。

可选地,所述第二平台有多个;所述跨平台引擎预备第一模块,包括:

跨平台引擎预备第一子模块,用于确定多个第二平台的执行序列,包括:确定与所述第一平台并行执行的第二平台,以及,与所述第一平台串行执行的第二平台;

所述组件调用引擎第二模块,包括:

并行平台组件调用引擎模块,用于控制与所述第一平台并行执行的第二平台的引擎根据所述模板,调用与所述第一平台并行的第二平台上配置的DevOps组件,以并行执行第一平台和所述第二平台上的处理流程;

串行平台组件调用引擎模块,用于控制与所述第一平台串行执行的第二平台的引擎根据所述模板,调用与所述第一平台串行的第二平台上配置的DevOps组件,以在执行完所述第一平台上的处理流程,以及,执行完与所述第一平台并行执行的第二平台上的处理流程时,执行所述第二平台上的处理流程。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种跨平台的DevOps引擎模板方法和一种跨平台的DevOps引擎模板系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:信息处理装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!