一种应用编排方法、装置及电子设备与流程

文档序号:18899193发布日期:2019-10-18 21:42阅读:261来源:国知局
一种应用编排方法、装置及电子设备与流程

本申请涉及信息技术领域,具体而言,涉及一种应用编排方法、装置及电子设备。



背景技术:

随着云计算技术的普及和运用,计算机应用程序开始大量地部署于云计算技术的基础设施中。这些基础设施包含了虚拟化的云主机,也包含被纳管的传统物理主机,还包括容器平台。计算机应用是一个或者一组程序包,其部署过程可以只是一个简单的复制拷贝,也可能复杂到包含非常多的部署步骤,部署步骤之间有多样的关系,有些部署步骤相互依赖,必须串行执行,有些部署步骤没有直接的依赖,可以并行执行,有些部署步骤的执行与否取决于前面部署步骤的执行结果。

目前,对于复杂计算机应用的部署依赖于人工,或者脚本协同人工来实现,这就存在着,在应用部署过程中一旦出错,不容易找到原因、也不容易针对问题进行调试。



技术实现要素:

本申请实施例的目的在于提供一种应用编排方法、装置及电子设备,用以解决相关技术中,在应用部署过程中一旦出错,不容易找到原因、也不容易针对问题进行调试的问题。

本申请实施例提供了一种应用编排方法,包括:获取应用部署数据;所述应用部署数据中包括应用的各个部署步骤、各所述部署步骤之间的执行关系、以及各所述部署步骤对应的目标设备;按照各所述部署步骤之间的执行关系,确定当前待执行的部署步骤;向所述当前待执行的部署步骤所对应的目标设备下发第一步骤执行指令;接收所述当前待执行的部署步骤所对应的目标设备返回的所述第一步骤执行指令的执行结果;在所述执行结果满足预设的继续执行条件时,按照各所述部署步骤之间的执行关系,向所述当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令。

在上述实现过程中,通过预先将应用的部署拆解为多个部署步骤,进而依据各部署步骤之间的执行关系逐步将各部署步骤下发给各部署步骤对应的目标设备。具体而言,会根据各部署步骤之间的执行关系先下发当前需要执行的部署步骤(即当前待执行的部署步骤)给该部署步骤对应的目标设备,并接收该目标设备反馈的执行结果,进而在执行结果满足预设的继续执行条件时,再下发下一需要执行的部署步骤(即当前待执行的部署步骤的下一部署步骤)给该部署步骤对应的目标设备,并接收当前待执行的部署步骤的下一部署步骤对应的目标设备反馈的执行结果。这样将一个应用的部署拆分成了多个小部署步骤,每一个部署步骤执行无误后才能执行下一个部署步骤,这就使得整个应用的部署过程变得可控,应用部署过程中一旦出错,可以迅速定位到问题部署步骤,从而找出原因,针对问题进行调试。

进一步地,所述按照各所述部署步骤之间的执行关系,向所述当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令包括:依据所述当前待执行的部署步骤和各所述部署步骤之间的执行关系,确定所述当前待执行的部署步骤的下一部署步骤,并向所述当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令;

或,在所述按照各所述部署步骤之间的执行关系,确定当前待执行的部署步骤之后,还包括:依据所述当前待执行的部署步骤和各所述部署步骤之间的执行关系,确定所述当前待执行的部署步骤的下一部署步骤;所述按照各所述部署步骤之间的执行关系,向所述当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令包括:依据确定出的所述当前待执行的部署步骤的下一部署步骤,向向所述当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令。

在上述实现过程中,可以在第一步骤执行指令的执行结果满足预设的继续执行条件时,依据当前待执行的部署步骤和各部署步骤之间的执行关系,确定当前待执行的部署步骤的下一部署步骤;也可以在确定出当前待执行的部署步骤之后,即进一步地确定出当前待执行的部署步骤的下一部署步骤。两种实现方式都可以很容易的确定出当前待执行的部署步骤的下一部署步骤,从而保证本申请方案的可实现性,且两种方案均十分简单,具有很高的可实施性。

进一步地,所述应用部署数据中还包括:各所述部署步骤对应的消息域;所述消息域中包括所述部署步骤对应的目标设备;所述第一步骤执行指令中包括所述当前待执行的部署步骤所对应的目标设备的唯一标识;所述第二步骤执行指令中包括所述当前待执行的部署步骤的下一部署步骤所对应的目标设备的唯一标识;所述向所述当前待执行的部署步骤所对应的目标设备下发第一步骤执行指令包括:在所述当前待执行的部署步骤所对应的消息域中广播所述第一步骤执行指令,以使所述当前待执行的部署步骤所对应的目标设备基于所述第一步骤执行指令中的所述唯一标识接收并执行所述第一步骤执行指令;所述向当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令包括:在所述当前待执行的部署步骤的下一部署步骤所对应的消息域中广播所述第二步骤执行指令,以使所述当前待执行的部署步骤的下一部署步骤所对应的目标设备基于所述第二步骤执行指令中的所述唯一标识接收并执行所述第二步骤执行指令。

需要说明的是,在诸如集群等应用场景中,信息是在集群内进行广播实现通信的。在上述实现过程中,可以预先分配有多个消息域,在下发步骤执行指令时,会将步骤执行指令在部署步骤所对应的消息域中进行广播,进而由消息域中的设备自行根据指令中的唯一标识来确定是否接收并执行该步骤执行指令,从而实现对各个部署步骤所对应的步骤执行指令的隔离,减小其余设备的干扰,从而降低误处理概率,提升方案的可靠性。

进一步地,所述向所述当前待执行的部署步骤所对应的目标设备下发第一步骤执行指令包括:通过预先连接的消息总线向所述当前待执行的部署步骤所对应的目标设备下发第一步骤执行指令;所述接收所述当前待执行的部署步骤所对应的目标设备返回的执行结果包括:通过所述消息总线接收所述当前待执行的部署步骤所对应的目标设备返回的执行结果。

在上述实现过程中,通过消息总线来实现数据的交互,有效实现了步骤执行指令和执行结果的传输,避免消息丢失。

本申请实施例还提供了一种应用编排方法,包括:接收编排引擎发来的步骤执行指令;所述步骤执行指令中包括所需执行的部署步骤的内容;执行所述步骤执行指令中所需执行的部署步骤;向所述编排引擎反馈所述部署步骤的执行结果。

在上述实现过程中,通过对执行的部署步骤的执行结果进行反馈,从而使得应用的部署过程变得可控,应用部署过程中一旦出错,可以迅速定位到问题部署步骤,从而找出原因,针对问题进行调试。

进一步地,所述所需执行的部署步骤的内容包括:部署步骤文件的下载指令,或者部署步骤脚本的下载指令;所述执行所述步骤执行指令中所需执行的部署步骤包括:根据所述部署步骤文件的下载指令下载部署步骤文件,并执行所述部署步骤文件;或,根据所述部署步骤脚本的下载指令下载部署步骤脚本,并执行所述部署步骤脚本。

在上述实现过程中,编排引擎下发的步骤执行指令中可以不包含具体的部署步骤内容,而是包含部署步骤文件的下载指令或者部署步骤脚本的下载指令,从而使得编排引擎发来的指令的数据量得以减少,从而提高与编排引擎之间的数据交互效率。

进一步地,所述步骤执行指令中包括所述部署步骤所对应的目标设备的唯一标识;在所述接收编排引擎发来的步骤执行指令之后,所述执行所述步骤执行指令中所需执行的部署步骤之前,还包括:确定所述步骤执行指令中的唯一标识与本地预存的唯一标识一致。

在上述实现过程中,通过确定步骤执行指令中的唯一标识是否与本地预存的唯一标识一致,进而在一致时才根据步骤执行指令的指示执行部署步骤,这就降低误处理概率,提升方案的可靠性。

进一步地,所述接收编排引擎发来的步骤执行指令包括:通过预先连接的消息总线接收编排引擎发来的步骤执行指令;所述向所述编排引擎反馈所述部署步骤的执行结果包括:通过所述消息总线向所述编排引擎反馈所述部署步骤的执行结果。

在上述实现过程中,通过消息总线来实现数据的交互,有效实现了步骤执行指令和执行结果的传输,避免消息丢失。

本申请实施例还提供了一种应用编排装置,包括:获取模块、处理模块、第一发送模块和第一接收模块;所述获取模块用于获取应用部署数据;所述应用部署数据中包括应用的各个部署步骤、各所述部署步骤之间的执行关系、以及各所述部署步骤对应的目标设备;所述处理模块用于按照各所述部署步骤之间的执行关系,确定当前待执行的部署步骤;所述第一发送模块用于向所述当前待执行的部署步骤所对应的目标设备下发第一步骤执行指令;所述第一接收模块用于接收所述当前待执行的部署步骤所对应的目标设备返回的执行结果;所述第一发送模块还用于在所述执行结果满足预设的继续执行条件时,按照各所述部署步骤之间的执行关系,向当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令。

在上述实现结构中,通过预先将应用的部署拆解为多个部署步骤,进而依据各部署步骤之间的执行关系逐步将各部署步骤下发给各部署步骤对应的目标设备。具体而言,会根据各部署步骤之间的执行关系先下发当前需要执行的部署步骤(即当前待执行的部署步骤)给该部署步骤对应的目标设备,并接收该目标设备反馈的执行结果,进而在执行结果满足预设的继续执行条件时,再下发下一需要执行的部署步骤(即当前待执行的部署步骤的下一部署步骤)给该部署步骤对应的目标设备,并接收当前待执行的部署步骤的下一部署步骤对应的目标设备反馈的执行结果。这样将一个应用的部署拆分成了多个小部署步骤,每一个部署步骤执行无误后才能执行下一个部署步骤,这就使得整个应用的部署过程变得可控,应用部署过程中一旦出错,可以迅速定位到问题部署步骤,从而找出原因,针对问题进行调试。

本申请实施例还提供了一种应用编排装置,包括:第二接收模块、执行模块和第二发送模块;所述第二接收模块用于接收编排引擎发来的步骤执行指令;所述步骤执行指令中包括所需执行的部署步骤的内容;所述执行模块用于执行所述步骤执行指令中所需执行的部署步骤;所述第二发送模块用于向所述编排引擎反馈所述部署步骤的执行结果。

在上述实现结构中,通过对执行的部署步骤的执行结果进行反馈,从而使得应用的部署过程变得可控,应用部署过程中一旦出错,可以迅速定位到问题部署步骤,从而找出原因,针对问题进行调试。

本申请实施例还提供了一种电子设备,包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个第一程序,以实现上述第一种的应用编排方法的部署步骤;或,所述处理器用于执行存储器中存储的一个或者多个第二程序,以实现上述第二种的应用编排方法的部署步骤。

本申请实施例中还提供了一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任意一种应用编排方法的部署步骤。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种应用于编排引擎上的应用编排方法的流程示意图;

图2为本申请实施例提供的一种执行关系示例图;

图3为本申请实施例提供的另一种执行关系示例图;

图4为本申请实施例提供的一种应用于目标设备上的应用编排方法的流程示意图;

图5为本申请实施例提供的一种示例的应用编排流程的交互示意图;

图6为本申请实施例提供的一种实现图5中的应用编排流程的系统图;

图7为本申请实施例提供的一种实例的示意图;

图8为本申请实施例提供的另一种实例的示意图;

图9为本申请实施例提供的一种应用于编排引擎上的应用编排装置的结构示意图;

图10为本申请实施例提供的一种应用于目标设备上的应用编排装置的结构示意图;

图11为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

实施例一

请参看图1,图1为本申请实施例提供的一种应用于编排引擎上的应用编排方法的流程示意图,包括:

s101:获取应用部署数据。

在本申请实施例中,应用部署数据中包括应用的各个部署步骤、各部署步骤之间的执行关系、以及各部署步骤对应的目标设备。

需要说明的是,在本申请实施例中,应用部署数据可以由工程师预先设定好后输入到编辑引擎中。例如,工程师可以预先将待部署的应用的一个大脚本或者一组脚本按照串行、并行、分支选择等执行关系将一个大脚本或者一组脚本解耦成为多个小的部署步骤。解耦后,工程师即得到了应用的各个部署步骤、各部署步骤之间的执行关系,并可以基于原有的应用部署计划或要求,确定出各个部署步骤所对应的目标设备。

还需要说明的是,在本申请实施例中,在解耦时,一个部署步骤对应一个目标设备,而一个目标设备则可以对应一个或多个部署步骤。

应当理解的是,所谓串行是指上一部署步骤执行成功后即执行下一部署步骤的关系,例如参见图2所示,部署步骤1、部署步骤2、部署步骤3、部署步骤5之间,或部署步骤1、部署步骤2、部署步骤4、部署步骤5之间即为串行关系。而所谓并行则是指两个部署步骤可以同时执行的关系,例如参见图2所示,部署步骤3和部署步骤4即为并行关系。而所谓分支选择是指几个并行的部署步骤中只能选择一个部署步骤来执行的关系,例如参见图3所示,部署步骤12、部署步骤13之间即为分支选择关系。需要说明的是,通常而言,在存在分支选择关系时,编排引擎在确定下一要执行的部署步骤前,会执行判断步骤(如图2中的判断11)。

s102:按照各部署步骤之间的执行关系,确定当前待执行的部署步骤。

在本申请实施例中,编排引擎基于各部署步骤之间的执行关系,以及上一执行部署步骤,即可确定出当前待执行的部署步骤。特别的,没有上一执行部署步骤时,当前待执行的部署步骤即为执行关系中的第一个部署步骤。

s103:向当前待执行的部署步骤所对应的目标设备下发第一步骤执行指令。

在本申请实施例中,第一步骤执行指令中可以包含当前待执行的部署步骤的内容,从而便于当前待执行的部署步骤所对应的目标设备执行该部署步骤。

s104:接收当前待执行的部署步骤所对应的目标设备返回的第一步骤执行指令的执行结果。

在本申请实施例中,目标设备在执行了相应的步骤执行指令后,会返回相应的执行结果给编排引擎,以供编排引擎确认是否执行下一部署步骤。

在本申请实施例中,编排引擎和各部署步骤所对应的目标设备之间可以通过消息总线来实现信息交互,如步骤执行指令的下发以及执行结果的返回,从而保证编排引擎和各部署步骤所对应的目标设备之间的信息交互有效性和可靠性。

s105:在执行结果满足预设的继续执行条件时,按照各部署步骤之间的执行关系,向当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令。

在本申请实施例中,对于下一部署步骤和当前待执行的部署步骤为串行的执行关系时,预设的继续执行条件可以是:执行结果为执行成功。对于下一部署步骤为选择性部署步骤时,例如可以选择执行a部署步骤,也可以选择执行b部署步骤时,可以基于预设的选择条件,结合编排引擎接收到的执行结果来确定。例如,设a部署步骤对应的条件为m大于1,b部署步骤对应的条件为m小于等于1,那么在接收到的执行结果为m大于1时执行a部署步骤,在接收到的执行结果为m小于等于1时执行b部署步骤,在接收到的执行结果为执行失败时结束应用部署。

需要说明的是,对于下一次需执行的部署步骤有两个或两个以上时,即下一次需执行的部署步骤为并行执行关系时,步骤s105需执行两次或两次以上,从而实现这两个或两个以上的部署步骤的并行执行。例如,下一次需要执行的部署步骤为b和c,则会执行两次步骤s105,分别为:向部署步骤b所对应的目标设备发送一个第二步骤执行指令,该第二步骤执行指令种包含部署步骤b的内容;向部署步骤c所对应的目标设备发送一个第二步骤执行指令,该第二步骤执行指令种包含部署步骤c的内容。

s106:接收当前待执行的部署步骤的下一部署步骤所对应的目标设备返回的第二步骤执行指令的执行结果。

需要说明的是,本申请实施例中会不断重复执行上述步骤s102至s106,直至各部署步骤全部执行完毕为止。

在本申请实施例中,可以在步骤s102之后,即在按照各部署步骤之间的执行关系,确定出当前待执行的部署步骤之后,依据当前待执行的部署步骤和各部署步骤之间的执行关系,确定当前待执行的部署步骤的下一部署步骤。需要说明的是,若在各部署步骤之间的执行关系中存在分支选择关系,由于被选择结果依赖于上一部署步骤的执行结果,因此在步骤s102之后步骤s105之前则无法确定出分支选择关系中,当前待执行的部署步骤的下一部署步骤。因此,为了解决该问题,在本申请实施例中,也可以在步骤s105中,在向当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令之前,依据当前待执行的部署步骤和各部署步骤之间的执行关系,确定当前待执行的部署步骤的下一部署步骤。

本申请实施例还提供了一种应用于目标设备上的应用编排方法,参见图4所示,包括:

s401:接收编排引擎发来的步骤执行指令;

在本申请实施例中,步骤执行指令中包括所需执行的部署步骤的内容。在本申请实施例的一种可行示例中,所需执行的部署步骤的内容可以包括部署步骤文件的下载指令或者部署步骤脚本的下载指令。这样,目标设备在接收到了步骤执行指令后,即可根据部署步骤文件的下载指令下载部署步骤文件,并执行部署步骤文件,或根据部署步骤脚本的下载指令下载部署步骤脚本,并执行部署步骤脚本。当然,在本申请实施例的另一种可行示例中,所需执行的部署步骤的内容也可以直接包含所需执行的部署步骤的文件或脚本,由目标设备直接进行执行。

需要说明的是,下载指令中可以包含下载链接,从而使得目标设备可以根据该下载链接下载到部署步骤文件或部署步骤脚本。

s402:执行步骤执行指令中所需执行的部署步骤。

s403:向编排引擎反馈部署步骤的执行结果。

需要说明的是,在本申请实施例中,对于最终的执行结果会反馈给编排引擎。示例性的,可以通过消息总线发送给编排引擎。

还需要说明的是,在本申请实施例中,在执行步骤执行指令中所需执行的部署步骤的过程中所产生的数据也可以发送给编排引擎,以展示给客户或后期用于确定这一部署步骤在执行过程中的问题。

需要说明的是,本申请实施例所提供的应用编排方法可以应用于集群中,各目标设备可以为集群内的基础设备,如虚拟化的云主机、物理主机、容器平台等。

还需要说明的是,在本申请实施例所提供的应用编排方法应用于集群中时,由于信息在集群内是通过广播的方式实现传输的,那么若将集群内的所有设备均作为一个消息域,则容易产生信息干扰,指令被误处理的概率较大。因此,在本申请实施例中,可以预先划分出各个部署步骤对应的消息域,消息域中包括部署步骤对应的目标设备,从而实现对各个部署步骤所对应的步骤执行指令的隔离,减小其余设备的干扰,从而降低误处理概率,提升方案的可靠性。在本申请的一种示例中,各部署步骤对应的消息域可以仅包含该部署步骤对应的目标设备。

在本申请实施例中,编排引擎可以在各部署步骤对应的步骤执行指令中加入各部署步骤所对应的目标设备的唯一标识(例如设备mac(mediaaccesscontrol,媒体访问控制)地址、设备编号等)。示例性的,可以在第一步骤执行指令中加入当前待执行的部署步骤所对应的目标设备的唯一标识,在第二步骤执行指令中加入当前待执行的部署步骤的下一部署步骤所对应的目标设备的唯一标识。这样,在向当前待执行的部署步骤所对应的目标设备下发第一步骤执行指令时,即是在当前待执行的部署步骤所对应的消息域中广播第一步骤执行指令,当前待执行的部署步骤所对应的目标设备基于第一步骤执行指令中的唯一标识即可准确接收并执行第一步骤执行指令;同理,在向当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令时,即是在当前待执行的部署步骤的下一部署步骤所对应的消息域中广播第二步骤执行指令,当前待执行的部署步骤的下一部署步骤所对应的目标设备基于第二步骤执行指令中的唯一标识即可准确接收并执行第二步骤执行指令。

应当理解的是,上述目标设备基于步骤执行指令中的唯一标识来实现对步骤执行指令接收及执行的具体方式可以是:消息域中的各个设备均会将自身本地预存的唯一标识与步骤执行指令中的唯一标识进行比对,在某一设备的比对结果为本地预存的唯一标识与步骤执行指令中的唯一标识一致时,即表明自身为目标设备,接收并执行第二步骤执行指令。

综上所述,本申请实施例提供一种应用编排方法,通过预先将应用的部署拆解为多个部署步骤,进而依据各部署步骤之间的执行关系逐步将各部署步骤下发给各部署步骤对应的目标设备。具体而言,会根据各部署步骤之间的执行关系先下发当前需要执行的部署步骤(即当前待执行的部署步骤)给该部署步骤对应的目标设备,并接收该目标设备反馈的执行结果,进而在执行结果满足预设的继续执行条件时,再下发下一需要执行的部署步骤(即当前待执行的部署步骤的下一部署步骤)给该部署步骤对应的目标设备,并接收当前待执行的部署步骤的下一部署步骤对应的目标设备反馈的执行结果。这样将一个应用的部署拆分成了多个小部署步骤,每一个部署步骤执行无误后才能执行下一个部署步骤,这就使得整个应用的部署过程变得可控,应用部署过程中一旦出错,可以迅速定位到问题部署步骤,从而找出原因,针对问题进行调试。

实施例二:

本实施例在实施例一的基础上,以一种具有两个部署步骤的应用编排过程为例,为本申请做进一步示例说明。

参见图5所示,在图5中,整个实现流程涉及三个执行主体以及一个中转设备,分别为编辑引擎、第一目标设备、第二目标设备和消息总线。

设两个部署步骤分别为部署步骤a和部署步骤b;部署步骤a和部署步骤b之间的执行关系为串行关系,即执行了部署步骤a后执行部署步骤b,部署步骤a对应的目标设备为第一目标设备,部署步骤b对应的目标设备为第二目标设备。

参见图5所示,应用编排方法包括:

s501:编排引擎获取应用部署数据。

应用部署数据中包括应用的部署步骤a和部署步骤b、部署步骤a和部署步骤b之间的执行关系、以及部署步骤a和部署步骤b对应的目标设备。

s502:依据部署步骤a和部署步骤b之间的执行关系,确定当前待执行的部署步骤为部署步骤a。

s503:通过消息总线向第一目标设备下发第一步骤执行指令。

第一步骤执行指令中包括所需执行的部署步骤a的脚本下载指令;在脚本下载中包含部署步骤a的脚本下载链接。

s504:第一目标设备按照第一步骤执行指令中的脚本下载指令的要求,下载部署步骤a的脚本。

s505:执行部署步骤a的脚本。

s506:通过消息总线向编排引擎反馈部署步骤a的执行结果。

s507:判断第一目标设备反馈的执行结果是否为执行成功。

s508:在执行结果为执行成功时,依据部署步骤a和部署步骤b之间的执行关系,确定当前待执行的部署步骤为部署步骤b;在执行结果为执行失败时,转至步骤s515。

s509:通过消息总线向第二目标设备下发第二步骤执行指令。

第二步骤执行指令中包括所需执行的部署步骤b的脚本下载指令;在脚本下载中包含部署步骤b的脚本下载链接。

s510:第二目标设备按照第二步骤执行指令中的脚本下载指令的要求,下载部署步骤b的脚本。

s511:执行部署步骤b的脚本。

s512:通过消息总线向编排引擎反馈部署步骤b的执行结果。

s513:判断第二目标设备反馈的执行结果是否为执行成功。

s514:在执行结果为执行成功时,显示应用部署成功。

s515:在执行结果为执行失败时,结束应用部署,并显示失败的部署步骤。

应当理解的是,上述执行过程仅是为了便于理解本申请实施例所提供的方案的一种可行示例。对于执行部署步骤为三个或三个以上的情况与上述执行过程类似,故不再示例说明。

此外,参见图6所示,图6为本申请提供的一种实现图5中的应用编排流程的系统图,包括编排引擎61、消息总线62、第一目标设备63、第二目标设备64和文件服务器65。本申请实施例中,目标设备在接收到包含部署步骤脚本的下载指令或部署步骤文件的下载指令的步骤执行指令时,即可从文件服务器65中下载相应的部署步骤脚本或部署步骤文件。需要说明的是,本申请实施例中,目标设备可以通过其对应的代理服务器或代理程序来实现对步骤执行指令的接收与执行。

本申请通过解耦得到应用的各个部署步骤,并通过消息总线实现对应用部署过程的支撑,使得应用的部署过程更加可控,节约了人工,减少出错的机会,同时,提高了调试和纠错的能力。

实施例三

本实施例在实施例一和二的基础上,以两种具体的部署实例来为本申请做进一步示例说明。

设集群内的主机为主机a和主机b。

参见图7所示,图7为数据同步实例。在集群系统初始化后,编排引擎可以向主机a下发主节点设置指令以使主机a配置为主节点,向主机b下发从节点设置指令以使主机b配置为从节点。在主机a和主机b配置完成后,编排引擎向从节点(主机b)下发数据同步指令,以使从节点从主节点获取数据实现同步。

参见图8所示,图8为系统连通性测试实例。在集群系统初始化后,编排引擎可以向管理平台下发tls(transportlayersecurity,安全传输层协议)支持性判断指令,管理平台接收到该指令后判断集群是否支持tls,反馈判断结果给编排引擎。

在判断结果为不支持时,编排引擎下发的禁用指令给管理平台,以使管理平台禁用tls;编排引擎在接到管理平台反馈的已禁用tls的消息后,向管理平台下发测试指令,管理平台执行测试指令进行系统连通性测试。

在判断结果为支持时,编排引擎下发的准备指令给管理平台,以使管理平台准备tls证书;编排引擎在接到管理平台反馈的tls证书已准备完毕的消息后,向主机a和主机b下发tls配置指令;编排引擎在接到主机a和主机b反馈的tls配置完毕的消息后,向管理平台下发测试指令,管理平台执行测试指令进行系统连通性测试。

实施例四

请参阅图9和图10,图9示出了采用图1所示的应用编排方法一一对应的应用于编排引擎上的应用编排装置,图10示出了采用图4所示的应用编排方法一一对应的应用于目标设备上的应用编排装置。应理解,图9和图10的装置分别与上述图1和图4的方法实施例对应,能够执行上述方法实施例涉及的各个部署步骤。图9和图10的装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。图9和图10的装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块。具体地,图9的应用编排装置100应用于编排引擎上,包括:获取模块101、处理模块102、第一发送模块103和第一接收模块104。其中:

获取模块101用于获取应用部署数据;应用部署数据中包括应用的各个部署步骤、各部署步骤之间的执行关系、以及各部署步骤对应的目标设备;

处理模块102用于按照各部署步骤之间的执行关系,确定当前待执行的部署步骤;

第一发送模块103用于向当前待执行的部署步骤所对应的目标设备下发第一步骤执行指令;

第一接收模块104用于接收当前待执行的部署步骤所对应的目标设备返回的执行结果;

第一发送模块103还用于在执行结果满足预设的继续执行条件时,按照各部署步骤之间的执行关系,向当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令;

第一接收模块104还用于接收当前待执行的部署步骤的下一部署步骤所对应的目标设备返回的执行结果。

在本申请实施例中,处理模块102可以在第一发送模块103向当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令之前,依据所述当前待执行的部署步骤和各所述部署步骤之间的执行关系,确定所述当前待执行的部署步骤的下一部署步骤,并向所述当前待执行的部署步骤的下一部署步骤所对应的目标设备下发第二步骤执行指令。处理模块102也可以在按照各所述部署步骤之间的执行关系,确定当前待执行的部署步骤之后,依据当前待执行的部署步骤和各部署步骤之间的执行关系,确定当前待执行的部署步骤的下一部署步骤。

在本申请实施例中,应用部署数据中还包括:各部署步骤对应的消息域;消息域中包括部署步骤对应的目标设备。第一步骤执行指令中包括当前待执行的部署步骤所对应的目标设备的唯一标识;第二步骤执行指令中包括当前待执行的部署步骤的下一部署步骤所对应的目标设备的唯一标识。

第一发送模块103用于在当前待执行的部署步骤所对应的消息域中广播所述第一步骤执行指令,以使当前待执行的部署步骤所对应的目标设备基于第一步骤执行指令中的唯一标识接收并执行第一步骤执行指令;以及,在当前待执行的部署步骤的下一部署步骤所对应的消息域中广播所述第二步骤执行指令,以使当前待执行的部署步骤的下一部署步骤所对应的目标设备基于第二步骤执行指令中的唯一标识接收并执行第二步骤执行指令。

在本申请实施例中,第一发送模块103可以通过预先连接的消息总线下发步骤执行指令;第一接收模块104也可以通过预先连接的消息总线接收目标设备返回的执行结果。

图10的应用编排装置200应用于目标设备上,包括:第二接收模块201、执行模块202和第二发送模块203。其中:

第二接收模块201用于接收编排引擎发来的步骤执行指令;步骤执行指令中包括所需执行的部署步骤的内容;

执行模块202用于执行步骤执行指令中所需执行的部署步骤;

第二发送模块203用于向编排引擎反馈部署步骤的执行结果。

在本申请实施例中,所需执行的部署步骤的内容包括:部署步骤文件的下载指令,或者部署步骤脚本的下载指令;执行模块202具体用于根据部署步骤文件的下载指令下载部署步骤文件,并执行部署步骤文件;或,根据部署步骤脚本的下载指令下载部署步骤脚本,并执行部署步骤脚本。

在本申请实施例中,步骤执行指令中包括部署步骤所对应的目标设备的唯一标识;在第二接收模块201接收编排引擎发来的步骤执行指令之后,执行模块202在执行步骤执行指令中所需执行的部署步骤之前,还用于确定步骤执行指令中的唯一标识与本地预存的唯一标识一致。

在本申请实施例中,第二接收模块201可以通过预先连接的消息总线接收编排引擎发来的步骤执行指令;第二发送模块203也可以通过消息总线向编排引擎反馈部署步骤的执行结果。

本申请实施例提供的应用编排装置,通过预先将应用的部署拆解为多个部署步骤,进而依据各部署步骤之间的执行关系逐步将各部署步骤下发给各部署步骤对应的目标设备。具体而言,会根据各部署步骤之间的执行关系先下发当前需要执行的部署步骤给该部署步骤对应的目标设备,并接收该目标设备反馈的执行结果,进而在执行结果满足预设的继续执行条件时,再下发下一需要执行的部署步骤给该部署步骤对应的目标设备,并接收当前待执行的部署步骤的下一部署步骤对应的目标设备反馈的执行结果。这样将一个应用的部署拆分成了多个小部署步骤,每一个部署步骤执行无误后才能执行下一个部署步骤,这就使得整个应用的部署过程变得可控,应用部署过程中一旦出错,可以迅速定位到问题部署步骤,从而找出原因,针对问题进行调试。

实施例四

本实施例提供了一种电子设备,参见图11所示,其包括处理器1101、存储器1102以及通信总线1103。其中:

通信总线1103用于实现处理器1101和存储器1102之间的连接通信。

处理器1101用于执行存储器1102中存储的一个或多个第一程序,以实现上述实施例一至实施例三中编辑引擎所执行的应用编排方法的各部署步骤;或,处理器1101用于执行存储器1102中存储的一个或多个第一程序,以实现上述实施例一至实施例三中目标设备所执行的应用编排方法的各部署步骤。

可以理解,图11所示的结构仅为示意,电子设备还可包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。

本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、u盘、cf卡、sd卡、mmc卡等,在该计算机可读存储介质中存储有实现上述各个部署步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一至实施例三中应用编排方法的各部署步骤。在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分部署步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1