一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用于异构系统的任务执行方法、装置、设备、介质和程序产品与流程

2022-03-26 13:56:54 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,具体地涉及一种应用于异构系统的任务执行方法、装置、设备、介质和程序产品。


背景技术:

2.目前,很多企业分别采用云管理系统和运维自动化系统实现云资源管理和脚本自动化,云管理系统实现云资源(如云主机、云存储、云网络和云安全等)的创建、供给和回收,运维自动化系统(如ansible、saltstack等)实现shell、kornshell、python、powershell等脚本下发和执行。其中,云管理平台和运维自动化系统主要管理各自领域的自动化编排操作执行。


技术实现要素:

3.鉴于上述通过云管理系统和运维自动化系统等异构系统实现云资源管理和脚本自动化过程中所存在的技术问题至少之一,本公开提供了提高运维工作效率的应用于异构系统的任务执行方法、装置、设备、介质和程序产品。
4.根据本公开的第一个方面提供了一种应用于异构系统的任务执行方法,包括:确定业务作业任务对应的任务执行脚本;根据脚本任务标识编排任务执行脚本,生成任务工作流;根据任务工作流对应的任务执行逻辑调取至少一个任务执行插件;以及在与至少一个任务执行插件中的一个任务执行插件对应的任务执行系统中执行任务工作流中的至少一个工作子任务。
5.根据本公开的实施例,在确定业务作业任务对应的任务执行脚本之前,还包括:响应于业务作业任务,确定与业务作业任务对应的作业任务集合。
6.根据本公开的实施例,在确定业务作业任务对应的任务执行脚本中,包括:根据任务执行系统解析业务任务集合中的至少一个系统子任务;对至少一个系统子任务进行转换,确定与至少一个系统子任务相对应的至少一个任务执行脚本。
7.根据本公开的实施例,在根据脚本任务标识编排任务执行脚本,生成任务工作流之前,还包括:定义至少一个任务执行脚本中每个任务执行脚本的脚本任务标识。
8.根据本公开的实施例,在根据脚本任务标识编排任务执行脚本,生成任务工作流中,包括:确定脚本任务标识的编排执行逻辑;根据编排执行逻辑编排任务执行脚本生成对应的任务工作流。
9.根据本公开的实施例,在根据任务工作流对应的任务执行逻辑调取至少一个任务执行插件中,包括:解析接收的任务工作流生成至少一个工作子任务;以及根据至少一个工作子任务的任务执行逻辑调取至少一个任务执行插件。
10.根据本公开的实施例,在在与至少一个任务执行插件中的一个任务执行插件对应的任务执行系统中执行任务工作流中的至少一个工作子任务中,包括:通过第一任务执行
接口,在与第一任务执行插件对应的第一任务执行系统中执行任务工作流中的第一工作子任务;响应于第一工作子任务的执行完成,通过第二任务执行接口,在与第二任务执行插件对应的第二任务执行系统中执行任务工作流中的第二工作子任务。
11.根据本公开的实施例,在在与至少一个任务执行插件中的一个任务执行插件对应的任务执行系统中执行任务工作流中的至少一个工作子任务中,还包括:通过第一任务执行接口,在与第一任务执行插件对应的第一任务执行系统中执行任务工作流中的第一工作子任务;和通过第二任务执行接口,在与第二任务执行插件对应的第二任务执行系统中执行任务工作流中的第二工作子任务。
12.本公开的第二方面提供了一种应用于异构系统的任务执行装置,包括:脚本确定模块、脚本编排模块、插件调取模块以及任务执行模块。脚本确定模块用于确定业务作业任务对应的任务执行脚本;脚本编排模块用于根据脚本任务标识编排任务执行脚本,生成任务工作流;插件调取模块用于根据任务工作流对应的任务执行逻辑调取至少一个任务执行插件;以及任务执行模块用于在与至少一个任务执行插件中的一个任务执行插件对应的任务执行系统中执行任务工作流中的至少一个工作子任务。
13.本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述应用于异构系统的任务执行方法。
14.本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述应用于异构系统的任务执行方法。
15.本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述应用于异构系统的任务执行方法。
附图说明
16.通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
17.图1示意性示出了根据本公开实施例的应用于异构系统的任务执行方法、装置、设备、介质和程序产品的应用场景图;
18.图2示意性示出了根据本公开实施例的应用于异构系统的任务执行方法的一流程图;
19.图3示意性示出了根据本公开实施例的应用于异构系统的任务执行方法的另一流程图;
20.图4示意性示出了根据本公开实施例的应用于异构系统的任务执行方法的一应用场景图;
21.图5示意性示出了根据本公开实施例的应用于异构系统的任务执行方法的另一应用场景图;
22.图6示意性示出了根据本公开实施例的应用于异构系统的任务执行装置的结构框图;以及
23.图7示意性示出了根据本公开实施例的适于实现应用于异构系统的任务执行方法的电子设备的方框图。
具体实施方式
24.以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
25.在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
26.在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
27.在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。
28.云管理系统为进行云管理控制和编排且在云中运行的所有产品与服务(云主机、云存储、云网络和云安全等云资源)的处理系统,提供用户访问控制、数据、应用及服务等。这涉及到赋予管理员访问所需资源、自动化所需流程并根据需要进行调整的能力,同时还要监控使用情况与成本,主流很多云管理系统可以基于openstack等开源技术。其中,openstack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合,一般为以apache自由软件许可证授权的开源代码项目。其中,openstack可以为私有云和公有云提供可扩展的弹性的云计算服务。
29.其中,对于云管理系统而言,主要存在如下劣势:首先,大部分云管理系统偏重于云资源的生命周期管理,缺乏对操作系统、中间件、数据库的类型脚本执行的能力。此外,部分云管理系统只具备初始安装操作系统、中间件、数据库脚本的能力,但是缺乏日常应用发布、变更的脚本执行能力。而且,云管理系统不具备应用系统的部署、配置、变更、扩容、下线的支持能力。最后,云管理系统的接口标准,与运维自动化系统如ansible、saltstack的接口标准,互不兼容无法互相调用。其中,ansible为一款开源运维自动化工具,基于python开发,用于实现批量系统配置、批量程序部署、批量运行命令等功能。saltstack是一个开源项目,可以作为配置管理系统,能够维护预定义状态的远程节点,比如确保指定的报备安装、指定的服务运行等,具体可以属于一个分布式远程执行系统,用来在单个或者任意规则所挑选的远程节点上执行命令和查询数据。
30.运维自动化系统(如ansible、saltstack等)为向操作系统、中间件、数据库和应用程序等提供脚本命令批量执行、预设脚本库、文件,以及自动分发/收集、任务编排等自动化运维特性的应用系统,可以实现shell、kornshell、python、powershell等脚本下发和执行。其中,shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口,shell可以接收用户输入的命令并把它送入内核去执行,是在linux内核与用户之间的解释器程序,现在linux通常指/bin/bash解释器来负责向内核翻译以及传达用户/程序指令,shell相当于该
操作系统的“外壳”。korn shell是一个unix上的shell程序,主要用在各种unix系统上,比如sun/oracle unix、aix等。其中,ksh结合了c shell的交互式特性,并且也融入了bourne shell的语法。python可以作为一种计算机编程语言,提供高效的高级数据结构,还能简单有效地面向对象编程。其中,python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。powershell(即windows power shell)是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用net framework的强大功能。
31.其中,对于运维自动化系统而言,主要存在如下劣势:首先,大部分运维自动化系统偏重于对操作系统、中间件、数据库和应用程序的类型脚本执行的能力,缺乏对云资源的生命周期管理能力。其次,部分运维自动化系统只具备简单的云资源创建和删除能力,但是缺乏复杂、专业云服务场景的管理能力。进一步地,运维自动化系统如ansible、saltstack的接口标准,与云管理系统如openstack的接口标准,互不兼容无法互相调用。
32.因此,上述两类任务执行系统实际上属于完全不同的架构系统,无法自动化统一进行协同工作,在完成同一任务满足相应业务服务的过程中,只能进行任务的割裂操作,易于造成运维工作的割裂和效率低下。具体地,在现有技术的云资源管理和脚本自动化过程中的任务执行过程,一般是将任务进行拆分,并在云资源管理系统和运维自动化系统分别通过技术人员手动选择执行,最后将两个系统的各自的任务执行结果进行导入处理,最终满足该任务对应的业务需求。为解决该技术问题,现有技术中所提供的其他自动化任务执行方案,目前都尚不能够有效地达到很好的任务执行精准度,任务执行处理速度过慢,造成人力运维成本加大。因此,如何精细化地实现高速运行的异构系统的任务处理过程,将为本公开实施例的应用于异构系统的任务执行方法所重点解决的技术方向。
33.鉴于上述通过云管理系统和运维自动化系统等异构系统实现云资源管理和脚本自动化过程中所存在的技术问题至少之一,本公开提供了提高运维工作效率的应用于异构系统的任务执行方法、装置、设备、介质和程序产品。
34.需要说明的是,本公开的上述应用于异构系统的任务执行方法和装置可用于大数据技术领域和人工智能技术领域,也可用于金融领域以及金融领域之外的任意领域,本公开的应用于异构系统的任务执行方法和装置的应用领域不做限定。
35.在本公开的技术方案中,所涉及的包括用户个人信息等数据的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。其中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
36.本公开的实施例提供了一种应用于异构系统的任务执行方法,包括:确定业务作业任务对应的任务执行脚本;根据脚本任务标识编排任务执行脚本,生成任务工作流;根据任务工作流对应的任务执行逻辑调取至少一个任务执行插件;以及在与至少一个任务执行插件中的一个任务执行插件对应的任务执行系统中执行任务工作流中的至少一个工作子任务。
37.图1示意性示出了根据本公开实施例的应用于异构系统的任务执行方法、装置、设备、介质和程序产品的应用场景图。
38.如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103、网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的
介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
39.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
40.终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
41.服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
42.需要说明的是,本公开实施例所提供的应用于异构系统的任务执行方法一般可以由服务器105执行。相应地,本公开实施例所提供的应用于异构系统的任务执行装置一般可以设置于服务器105中。本公开实施例所提供的应用于异构系统的任务执行方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的应用于异构系统的任务执行装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
43.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
44.以下将基于图1描述的场景,通过图2~图6对公开实施例的应用于异构系统的任务执行方法进行详细描述。
45.图2示意性示出了根据本公开实施例的应用于异构系统的任务执行方法的流程图。
46.如图2所示,该实施例的应用于异构系统的任务执行方法包括操作s201~操作s204。
47.在操作s201,确定业务作业任务对应的任务执行脚本;
48.在操作s202,根据脚本任务标识编排任务执行脚本,生成任务工作流;
49.在操作s203,根据任务工作流对应的任务执行逻辑调取至少一个任务执行插件;
50.在操作s204,在与至少一个任务执行插件中的一个任务执行插件对应的任务执行系统中执行任务工作流中的至少一个工作子任务。
51.业务作业任务为与用户的业务服务请求对应的运维自动化应用的作业任务,可以适用于多系统运维自动化的管理场景。其中,用户可以为运维人员、技术人员甚至是普通的消费者。其中,业务服务请求可以是根据用户对终端设备的输入操作所形成的与实现相应业务服务相关的请求信息。
52.任务执行脚本为与业务作业任务的执行实施相关的执行参数脚本,为一执行参数文件,用于在被执行实施时,可以对业务作业任务对应的业务服务请求进行实现。通过业务作业任务可以确定相应的任务执行脚本,从而完成对业务作业任务的转换,以利于后续的执行实施更为顺利。
53.脚本任务标识为对应任务执行脚本的身份标识,用于标识对应的任务执行脚本,
从而使得任务执行脚本被唯一执行,确保数据执行精准度。进一步地,编排为根据任务执行脚本所定义的描述语言的执行逻辑对任务执行脚本所能够确定的工作子任务进行自动化配置、管理和协调的操作,从而能够有利于管理复杂任务。编排的对象为任务执行脚本所对应的至少一个工作子任务。至少一个工作子任务为对应上述业务作业任务的部分或全部的工作执行子流程或子步骤。其中,任务工作流为对应的至少一个工作子任务按照任务执行脚本的编排操作依序所形成的任务流程集。
54.其中,每个任务工作流可以对应用户的一个业务作业任务,并且可以包括至少一个工作子任务。这些工作子任务在任务工作流中所形成的流程执行逻辑可以作为上述任务执行逻辑。通过对这些任务执行脚本依照脚本任务标识进行编排,可以对工作子任务进行逻辑编排处理,并形成任务工作流。
55.进一步地,每个任务工作流的任务执行逻辑的不同执行流程可以分别对应不同的任务执行插件。该任务执行插件可以是对应任务执行系统中的对接的任务调取适配驱动程序。因此,通过该任务工作流所对应的任务执行逻辑可以调取至少一个任务执行插件。
56.此外,至少一个任务执行插件中的每个任务执行插件可以对应不同的任务执行系统区设置。任务执行系统可以有两个或两个以上,其中,至少两个任务执行系统之间互为异构系统,即相互之间不能够很好的实现兼容。通过该任务执行插件可以在对应的任务执行系统中实现对相应任务工作流中的一个或多个工作子任务进行并行或者依序执行实施。
57.可见,通过上述本公开实施例的应用于异构系统的任务执行方法,可以通过相应的任务执行插件调取编排形成的任务工作流中的对应工作子任务,并将其在对应的任务执行系统中完成执行或实施。因此,对于异构系统而言,也能够精准地实现工作子任务的执行,确保了至少两个异构系统针对同一业务作业任务的全自动化执行。换言之,这极大地提升了异构系统在同一业务作业任务执行上的兼容性,且无需对任务执行系统作任何实质性的更改操作,极大地提升了业务作业任务的执行效率,同时确保了执行精准度,从而可以很好地实现云资源、操作系统、中间件、数据库和应用程序等统一运维自动化的操作以及混合运维场景的综合运维管理,自动化程度和智能化程度较高,具有很好的实际商业应用价值。
58.其中,上述的任务执行系统可以包括上述的云管理系统和/或运维自动化系统,云管理系统与运维自动化系统互为异构系统,二者的兼容性较差,通常需要在运维工作中对任务进行割裂执行,执行效率低下。与云管理系统对应的任务执行插件可以是云管理插件,用于作为对接云管理系统(如openstack)的适配驱动程序,可以按照编排执行所下发的描述语言脚本执行云资源管理。与运维自动化系统过对应的任务执行插件可以是自动化执行插件,用于作为对接ansible、saltstack等运维自动化系统的适配驱动程序,也可以按照编排执行所下发的描述语言脚本执行自动化执行脚本命令。
59.需要说明的是,上述的应用于异构系统的任务执行方法可以通过负责对全部流程进行配置操作并审计监控的管理控制台控制实现。其中,管理控制台可以提供云适配能力以对接各类云平台(如公有云和私有云)和运维自动化脚本(如shell、kornshell、python、powershell等)或工具通道(如ansible、saltstack等)执行,并提供云基础设施通道执行服务,向上支撑运维应用的云服务相关功能,向上支撑运维应用层的运维自动化相关功能。
60.图3示意性示出了根据本公开实施例的应用于异构系统的任务执行方法的另一流程图;图4示意性示出了根据本公开实施例的应用于异构系统的任务执行方法的一应用场
景图;图5示意性示出了根据本公开实施例的应用于异构系统的任务执行方法的另一应用场景图。
61.如图2-图5所示,根据本公开的实施例,在操作s201确定业务作业任务对应的任务执行脚本之前,还包括操作s301。
62.在操作s301,响应于业务作业任务,确定与业务作业任务对应的作业任务集合。
63.通过对用户的业务服务请求的分析,可以相应地获取与之对应的业务作业任务。如图4和图5所示,该业务作业任务为服务网关410获取的上游如运维自动化应用或者云资源管理类运维应用的作业任务,主要可以应用于如云资源管理和运维自动化管理的管理场景中。业务作业任务可以是发现全部云主机作业任务、对发现的全部云主机进行纳管作业任务以及采集这些云主机上的配置数据作业任务等执行任务中至少之一。服务网关410可以将这些执行任务通过日志方式进行记录并存储该记录的内容到数据库中,同时生成这些作业任务的集合,即作业任务集合。其中作业任务集合为多个业务作业任务的集合,其中该业务作业任务可以对应于一个任务执行流程,则该作业任务集合可以对应于多个任务执行流程。因此,可以确定相应的业务作业任务,提高后续任务执行的精准度。
64.如图2-图5所示,根据本公开的实施例,在操作s201确定业务作业任务对应的任务执行脚本中,包括操作s302~操作s303。
65.在操作s302,根据任务执行系统解析业务任务集合中的至少一个系统子任务;
66.在操作s303,对至少一个系统子任务进行转换,确定与至少一个系统子任务相对应的至少一个任务执行脚本。
67.作业任务集合中的每个业务作业任务实际上可以对应不同的任务执行系统进行执行。例如,发现全部云主机作业任务可以为云资源子任务,对应于通过云管理系统实现执行;对发现的全部云主机进行纳管作业任务则可以是自动化执行子任务,对应于通过运维自动化系统实现执行;采集这些云主机上的配置数据作业任务可以是普通操作系统或者数据库、中间件的子任务,对应于通过其他异构系统实现执行。
68.因此,根据这些业务作业任务可适用的任务执行系统,可以对业务任务集合中的这些业务作业任务进行解析分类,从而确定与任务执行系统相互对应的系统子任务,例如对应于云管理系统执行的系统子任务可以是发现全部云主机的作业任务。
69.如图4-图5所示,接口解析420负责从服务网关410获取上游如运维自动化应用的系统子任务,对这些系统子任务进行解析翻译,将其翻译转换成对应的云管理系统或者运维自动化系统等任务执行系统的api和执行流程的语义,将这些执行流程的语义可以作为对应系统子任务的描述语言脚本,即任务执行脚本。其中,与相应任务执行系统对应的一个系统子任务中可以相应地包括一个或多个业务作业任务,这些业务作业任务都可以通过相应任务执行系统进行执行实施。其中该任务执行脚本为与上述系统子任务对应的标准格式脚本。
70.借此,可以实现对与任务执行系统相对应的系统子任务的脚本化,从而利于在后期通过该任务执行脚本对系统子任务进行编排处理。
71.如图2-图5所示,根据本公开的实施例,在操作s202根据脚本任务标识编排任务执行脚本,生成任务工作流之前,还包括操作s304。
72.在操作s304,定义至少一个任务执行脚本中每个任务执行脚本的脚本任务标识。
73.脚本任务标识为每个任务执行脚本的唯一身份标识,用于精确地标识该任务执行脚本及其相应的执行逻辑信息等。通过对该任务执行脚本进行脚本任务标识,能够对该任务执行脚本对应的系统子任务进行逻辑定义,确定系统子任务的后续编排逻辑规则。
74.其中,该脚本任务标识可以相当于该任务执行脚本的编号或代码,通过该编号或代码可以确定该任务执行脚本,并调取该任务执行脚本所定义的系统子任务等任务信息或执行信息。
75.因此,脚本任务标识通过对任务执行脚本的定义可以唯一确定该任务执行脚本,避免了对任务执行脚本的执行混乱,增强任务执行脚本的执行精准度,利于后期对该系统子任务进行逻辑编排。
76.如图2-图5所示,根据本公开的实施例,在操作s202根据脚本任务标识编排任务执行脚本,生成任务工作流中,包括操作s305~操作s306。
77.在操作s305,确定脚本任务标识的编排执行逻辑;
78.在操作s306,根据编排执行逻辑编排任务执行脚本生成对应的任务工作流。
79.如图4和图5所示,编排执行430负责将接口解析420的描述语言脚本按照描述语言的执行逻辑进行编排。其中,该描述语言脚本可以理解具有上述编排执行逻辑的任务执行脚本。通过该任务执行脚本的脚本任务标识,将该脚本任务标识作为解析入口,对该任务执行脚本进行解析,从而确定相应地编排执行逻辑。其中,该编排执行逻辑为编排执行430对系统子任务进行逻辑编排的逻辑规则。
80.通过该编排执行逻辑可以逐个系统子任务进行脚本任务标识的读取,按照该脚本任务标识所定义的逻辑顺序,借助于该逻辑编排的逻辑规则,可以实现对系统子任务的逻辑编排,从而使得系统子任务能够根据设定的逻辑规则实现有序排列,在当这些排列的系统子任务被依序执行时,可以对应地实现异构系统的业务任务兼容性、智能化处理。其中,任务工作流为符合该编排执行逻辑的编排步骤和逻辑关系的工作子任务的流程集合。
81.因此,编排执行430在接收到接口解析420所形成的任务执行脚本,对该任务执行脚本通过编排执行逻辑进行编排,实现对该任务执行脚本所定义的发现全部云主机的云管理子任务、对这些主机纳管的自动化执行子任务以及采集这些主机上配置数据的自动化执行子任务等工作子任务进行编排,形成这些工作子任务的任务工作流。
82.通过任务工作流可以更好地实现对工作子任务的执行流程进行编排定义,从而在后续的执行过程中能够依照业务作业任务的流程需要逐个依序对其进行执行实施。
83.如图2-图5所示,根据本公开的实施例,在操作s203根据任务工作流对应的任务执行逻辑调取至少一个任务执行插件中,包括操作s307~操作s308。
84.在操作s307,解析接收的任务工作流生成至少一个工作子任务;以及
85.在操作s308,根据至少一个工作子任务的任务执行逻辑调取至少一个任务执行插件。
86.如图4和图5所示,编排执行430还可以对接收的任务工作流进行解析,将该任务工作流中的工作子任务完全解析,生成工作流任务文件470中的各个工作子任务,如第一工作子任务471和第二工作子任务472等。如图4所示,在该工作流任务文件470中,该第一工作子任务471的应当位于任务执行逻辑的优先执行次序上,该第二工作子任务472相应位于次级执行次序上,换言之,对于本公开实施例的任务工作流而言,需要依序执行第一工作子任务
471和第二工作子任务472。当然,如图5所示,该工作流任务文件470中,该第一工作子任务471和第二工作子任务472可以位于同一优先级执行次序上,即可以并行执行第一工作子任务471和第二工作子任务472。
87.如图4和图5所示,对于不同的工作子任务其相应的执行实施的任务执行系统有所差异。如第一工作子任务471可以对应于第一任务执行系统461执行,第二工作子任务472可以对应于第二任务执行系统462执行。因此,当对这些工作子任务进行执行实施过程时,需要调取与这些任务执行系统相互对应的任务执行插件。其中,第一任务执行插件441可以对应于第一任务执行系统461,第二任务执行插件442可以对应于第二任务执行系统462。相应的对应关系可以通过对应的工作子任务的任务执行逻辑进行区分。
88.因此,根据相应的工作子任务的任务执行逻辑可以调取对应的任务执行插件,任务执行插件对该工作子任务进行调取,并通过相应的任务执行系统进行执行实施,完成任务执行过程。因此,可以实现对同一业务作业任务的针对性拆分,并通过相应的任务执行系统进行分别执行,在确保任务执行精准度的情况下,提高了任务执行速度,保证了任务执行效率。
89.如图2-图5所示,根据本公开的实施例,在操作s204在与至少一个任务执行插件中的一个任务执行插件对应的任务执行系统中执行任务工作流中的至少一个工作子任务中,包括:
90.通过第一任务执行接口,在与第一任务执行插件对应的第一任务执行系统中执行任务工作流中的第一工作子任务;
91.响应于第一工作子任务的执行完成,通过第二任务执行接口,在与第二任务执行插件对应的第二任务执行系统中执行任务工作流中的第二工作子任务。
92.每个任务执行插件与相应的任务执行系统通过任务执行接口对接。任务执行接口是具有统一接口语言并实现对异构系统进行异构接口抽象解析的执行接口,可以作为任务传输的连接通道,将任务执行插件调取的工作子任务传输至对应的异构系统中进行执行实施。
93.如图4和图5所示,其中,第一任务执行接口451作为第一任务执行插件441与第一任务执行系统461之间的统一接口,可以实现将第一任务执行插件441所调取的第一工作子任务471发送至第一任务执行系统461中进行执行。相应地,第二任务执行接口452作为第二任务执行插件442与第二任务执行系统462之间的统一接口,可以实现将第二任务执行插件442所调取的第二工作子任务472发送至第二任务执行系统462中进行执行。
94.其中,如图4所示,在本公开实施例中,可以实现对工作子任务的依序处理。
95.具体地,在操作s401,通过第一任务执行插件441在工作流任务文件470中调取第一工作子任务471;之后,在操作s402,通过第一任务执行接口451接收第一任务执行插件441所调取的第一工作子任务471;最后,在操作s403,通过第一任务执行系统461对第一任务执行接口451发送的第一工作子任务471进行调取并执行实施,完成对该第一工作子任务471在该第一任务执行系统461中的执行。
96.之后,响应于上述第一工作子任务471在第一任务执行系统461中的执行完成,在操作s404,通过第二任务执行插件442在工作流任务文件470中调取第二工作子任务472;之后,在操作s405,通过第二任务执行接口452接收第二任务执行插件442所调取的第二工作
子任务472;最后,在操作s406,通过第二任务执行系统462对第二任务执行接口452发送的第二工作子任务472进行调取并执行实施,完成对该第二工作子任务472在该第二任务执行系统462中的执行。
97.进一步地,对于工作流任务文件470中的其他工作子任务可以如上述第一工作子任务471和第二工作子任务472的依序调取执行过程,进行依序重复执行上述调取执行步骤,直至对所有工作子任务完成执行。
98.其中,可见,基于上述任务工作流所定义的任务执行逻辑,可以实现对相应的任务执行插件的调取,并通过任务执行插件实现相应工作子任务的调取,最后通过对应工作子任务的任务执行系统进行执行。
99.可见,即便是对于同一业务作业任务,也可以同时利用至少两个异构系统进行依序执行实施,这极大地提升了异构系统的任务执行兼容性,完全实现了业务作业任务的自动化实施,同时也能够确保相应的任务执行的精细化,显著提升了异构系统的任务执行效率。
100.如图2-图5所示,根据本公开的实施例,在操作s204在与至少一个任务执行插件中的一个任务执行插件对应的任务执行系统中执行任务工作流中的至少一个工作子任务中,还包括:
101.通过第一任务执行接口,在与第一任务执行插件对应的第一任务执行系统中执行任务工作流中的第一工作子任务;和
102.通过第二任务执行接口,在与第二任务执行插件对应的第二任务执行系统中执行任务工作流中的第二工作子任务。
103.如图4和图5所示,其中,第一任务执行接口451作为第一任务执行插件441与第一任务执行系统461之间的统一接口,可以实现将第一任务执行插件441所调取的第一工作子任务471发送至第一任务执行系统461中进行执行。相应地,第二任务执行接口452作为第二任务执行插件442与第二任务执行系统462之间的统一接口,可以实现将第二任务执行插件442所调取的第二工作子任务472发送至第二任务执行系统462中进行执行。
104.其中,如图5所示,在本公开实施例中,可以实现对工作子任务的并行处理。
105.具体地,在操作s501,通过第一任务执行插件441在工作流任务文件470中调取第一工作子任务471;同时,并行通过第二任务执行插件442在工作流任务文件470中调取第二工作子任务472;
106.之后,在操作s502,通过第一任务执行接口451接收第一任务执行插件441所调取的第一工作子任务471,同时,并行通过第二任务执行接口452接收第二任务执行插件442所调取的第二工作子任务472;
107.最后,在操作s503,通过第一任务执行系统461对第一任务执行接口451发送的第一工作子任务471进行调取并执行实施;同时,并行通过第二任务执行系统462对第二任务执行接口452发送的第二工作子任务472进行调取并执行实施。
108.因此,可以并行完成对该第一工作子任务471在该第一任务执行系统461中的执行,以及对该第二工作子任务472在该第二任务执行系统462中的执行。
109.进一步地,对于工作流任务文件470中的其他工作子任务可以如上述第一工作子任务471和第二工作子任务472的并行调取执行过程,重复并行执行上述调取执行步骤,直
至对所有工作子任务完成执行。
110.其中,可见,基于上述任务工作流所定义的任务执行逻辑,可以实现对相应的不同任务执行插件的并行调取,并通过不同任务执行插件实现相应工作子任务的调取,最后通过对应工作子任务的任务执行系统进行并行执行。
111.可见,即便是对于同一业务作业任务,也可以同时利用至少两个异构系统进行并行执行实施,这极大地提升了异构系统的任务执行兼容性,完全实现了业务作业任务的自动化实施,同时也能够确保相应的任务执行的精细化,显著提升了异构系统的任务执行效率。
112.因此,基于本公开实施例的上述方法可以通过混合编排、统一接口以及任务调取插件等对接和集成多样化的云管理系统和运维自动化系统等异构系统。其中,采用统一接口语言对业务服务组合进行描述,其中业务服务组合可以包括云资源、操作系统、中间件、数据库和应用程序等运维自动化操作。执行统一接口语言脚本,通过任务执行插件对接云管理系统和运维自动化系统等异构执行系统,并下发脚本执行操作,从而实现云资源、操作系统、中间件、数据库和应用程序的自动化。
113.这极大地提升了异构系统在同一业务作业任务执行上的兼容性,且无需对任务执行系统作任何实质性的更改操作,进一步提升了业务作业任务的执行效率,同时确保了执行精细化,从而可以很好地实现云资源、操作系统、中间件、数据库和应用程序等统一运维自动化的操作以及混合运维场景的综合运维管理,自动化程度和智能化程度较高,具有很好的实际商业应用价值。
114.其中,通过第一任务执行插件(如云管理插件)驱动对接第一任务执行系统(如openstack的云管理系统),以执行发现的全部对应的工作子任务(如适用云管理系统执行的云主机的子任务),相应地,通过第二任务执行插件(如自动化执行插件)驱动第二任务执行系统(如ansible或saltstack的运维自动化系统),以执行对与上述对应的工作子任务的云主机对应的其他工作子任务(如适用运维自动化系统的对这些主机纳管的子任务(即自动化执行子任务),该子任务会通过预先配置好的密钥接口侵入式纳管主机,这就与现有的没有密钥接口,只能做出发现云主机操作的传统技术方案构成实质性区别,现有这种传统技术方案通常采用端口扫描方式,识别误差非常大,非常容易混淆主机、网络、存储等系统,而且容易被网络安全设备屏蔽,无法实现全部主机的安装代理纳管操作。
115.而且,在纳管主机之后,通过在编排中配置采集脚本,采集全部云主机的配置数据(如操作系统、数据库和中间件等)。相对于现有的编排过程需在数据库预先配置好采集配置数据(如操作系统、数据库和中间件等)的属性字段的传统方式,本公开的上述方法能够在脚本中将这些配置数据属性按照标准格式定义好,在执行过程中自动在数据库创建属性字段,执行过程完成配置数据表更新和数据采集,因而无需提前手工操作,基本实现自动化运维,从而大幅简化运维工作量。
116.进一步地,通过基于混合编排实现云管理和运维自动化执行系统的方法,结合管理控制平台内部的混合编排引擎,通过统一接口语言对云管理系统和运维自动化系统的异构接口抽象解析,通过预先配置好的密钥接口侵入式纳管主机,按照标准格式定义好配置数据属性在执行时候自动在数据库创建属性字段,可以实现云资源、操作系统、中间件、数据库和应用程序的统一运维自动化操作,以及混合运维场景的综合运维管理,例如在基于
如openstack、saltstack、ansible等为基础的云管理系统或运维自动化系统上,更能够体现本公开的上述方法的优越性。
117.因此,本公开的上述方法可以方便云资源和操作系统、数据库、中间件及应用程序混合编排运维场景管理维护,增加了统一接口语言对云管理系统和运维自动化系统的异构接口抽象解析、多样化插件、混合编排的功能。而且,该统一接口语言可以屏蔽待对接系统间的差异,为快速适配其他云管理或是自动化工具打下了基础。上述方法能够构建一种基于混合编排引擎、统一接口语言解析和集成插件的方式,实现对云管理系统和运维自动化系统的统一、混合和集成管理,解决云资源和运维自动化系统之间无法集成管理的问题。
118.基于上述应用于异构系统的任务执行方法,本公开还提供了一种应用于异构系统的任务执行装置。以下将结合图6对该装置进行详细描述。
119.图6示意性示出了根据本公开实施例的应用于异构系统的任务执行装置的结构框图。
120.如图6所示,该实施例的应用于异构系统的任务执行装置600包括脚本确定模块610、脚本编排模块620、插件调取模块630以及任务执行模块640。
121.脚本确定模块610用于确定业务作业任务对应的任务执行脚本。在一实施例中,脚本确定模块610可以用于执行前文描述的操作s201,在此不再赘述。
122.脚本编排模块620用于根据脚本任务标识编排任务执行脚本,生成任务工作流。在一实施例中,脚本编排模块620可以用于执行前文描述的操作s202,在此不再赘述。
123.插件调取模块630用于根据任务工作流对应的任务执行逻辑调取至少一个任务执行插件。在一实施例中,插件调取模块630可以用于执行前文描述的操作s203,在此不再赘述。
124.任务执行模块640用于在与至少一个任务执行插件中的一个任务执行插件对应的任务执行系统中执行任务工作流中的至少一个工作子任务。在一实施例中,任务执行模块640可以用于执行前文描述的操作s204,在此不再赘述。
125.根据本公开的实施例,脚本确定模块610、脚本编排模块620、插件调取模块630以及任务执行模块640中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,脚本确定模块610、脚本编排模块620、插件调取模块630以及任务执行模块640中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,脚本确定模块610、脚本编排模块620、插件调取模块630以及任务执行模块640中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
126.图7示意性示出了根据本公开实施例的适于实现应用于异构系统的任务执行方法的电子设备的方框图。
127.如图7所示,根据本公开实施例的电子设备700包括处理器701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机防问存储器(ram)703中的程
序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
128.在ram 703中,存储有电子设备700操作所需的各种程序和数据。处理器701、rom 702以及ram 703通过总线704彼此相连。处理器701通过执行rom 702和/或ram 703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom 702和ram703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
129.根据本公开的实施例,电子设备700还可以包括输入/输出(i/o)接口705,输入/输出(i/o)接口705也连接至总线704。电子设备700还可以包括连接至i/o接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
130.本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
131.根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 702和/或ram 703和/或rom 702和ram 703以外的一个或多个存储器。
132.本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。
133.在该计算机程序被处理器701执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
134.在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分709被下载和安装,和/或从可拆卸介质711被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
135.在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
136.根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c ,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
137.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
138.本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
139.以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献