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

自动化部署方法、装置、系统及存储介质与流程

2022-02-22 17:58:58 来源:中国专利 TAG:


1.本技术涉及计算机技术,区块链技术领域,尤其涉及一种自动化部署方法、装置、系统及存储介质。


背景技术:

2.自动化部署是指将软件的源代码生成可运行的软件包,并由自动化部署服务器(例如,城市代码部署(urban code deploy,ucd)服务器)向远程代理程序(即agent)发送该可运行的软件包,使得该可运行的软件包可以在待部署的agent中正常运行。ucd服务器一般通过访问控制端口的方式向agent发送可运行的软件包。但是在某些情况下该访问控制端口的是被禁止使用的。
3.目前,在自动化部署的过程中,可以通过中继节点来联通ucd服务器和agent,使得可运行的软件包可以由ucd服务器传输至agent中。但是在需要部署的agent数量较多的情况下,现有技术只能确定一个中继节点来完成上述多个agent的部署,这样会导致了自动化部署的效率较低。


技术实现要素:

4.本技术提供一种自动化部署方法、装置、系统及存储介质,能够提高自动化部署的效率。
5.为达到上述目的,本技术采用如下技术方案:
6.第一方面,本技术提供一种自动化部署方法,该方法包括:第一中继节点接收来自于ucd服务器的第一信息;第一信息中包括:软件包、以及多个agent的标识;第一中继节点确定第一agent;第一agent为多个agent中的任一个agent;第一中继节点查询第一中继节点的区块链节点中是否存在第一agent的部署记录;区块链节点中存储有多个中继节点中每个中继节点部署的agent的部署记录;若否,则第一中继节点为第一agent部署软件包。
7.上述技术方案至少带来以下有益效果:本技术提供的自动化部署方法,第一中继节点在接收到来自于ucd服务器的第一信息之后,第一中继节点从多个agent中确定任一个agent为第一agent,并在区块链节点中查询是否存在上述第一agent的部署记录,若不存在,则表明第一agent并未被多个中继节点中的任一个中继节点部署,第一中继节点可以为第一agent部署软件包。若第一agent已经被第一中继节点或者其他中继节点部署,则区块链节点中会存在第一agent的部署记录,这样第一中继节点就不会再为第一agent部署软件包。这样避免了agent被重复部署或者被遗漏部署,可以使得多个中继节点可以共同部署多个agent,进而提高了自动化部署的效率。
8.在一种可能的实现方式中,在第一信息还包括:多个部署命令,且多个部署命令与多个agent对应的情况下,第一中继节点为第一agent部署软件包,包括:第一中继节点向第一agent发送第二信息;第二信息中包括:软件包、以及第一agent对应的部署命令;第一中继节点接收来自于第一agent发送的第三信息;第三信息用于指示第一agent为正在部署状
态;第一中继节点接收来自于第一agent发送的第四信息;第四信息用于指示第一agent为已部署状态。
9.在一种可能的实现方式中,在第一中继节点向第一agent发送第二信息之前,第一中继节点生成准备部署记录;第一中继节点向多个第二中继节点发送准备部署记录;第二中继节点为多个中继节点中除第一中继节点以外的中继节点;在第一中继节点接收来自于第一agent发送的第三信息之后,第一中继节点生成正在部署记录;第一中继节点向多个第二中继节点发送正在部署记录;在第一中继节点接收来自于第一agent发送的第四信息之后,第一中继节点生成完成部署记录;第一中继节点向多个第二中继节点发送完成部署记录。
10.在一种可能的实现方式中,第一中继节点接收来自于第二中继节点的agent部署记录,agent部署记录包括准备部署记录、正在部署记录、完成部署记录中的至少一项;第二中继节点为多个中继节点中除第一中继节点以外的中继节点;第一中继节点将agent部署记录存储在区块链节点中。
11.在一种可能的实现方式中,第一中继节点判断第一中继节点的部署agent的数量是否达到上限;若否,则第一中继节点确定第一agent。
12.在一种可能的实现方式中,软件包采用超文本传输协议(hyper text transfer protocol,http)或超文本传输协议的安全接字层(hyper text transfer protocol over secure socket layer,https)的方式进行传输;多个部署命令以及多个agent的标识采用java消息服务(java message service,jms)应用程序接口的方式进行传输。
13.第二方面,本技术提供一种自动化部署装置,应用于第一中继节点中,第一中继节点为自动化部署系统的多个中继节点中的任一个中继节点,该装置包括:通信单元和处理单元;通信单元,用于接收来自于ucd服务器的第一信息;第一信息中包括:软件包、以及多个agent的标识;处理单元,用于确定第一agent;第一agent为多个agent中的任一个agent;处理单元,还用于查询第一中继节点的区块链节点中是否存在第一agent的部署记录;区块链节点中存储有多个中继节点中每个中继节点部署的agent的部署记录;若否,则处理单元,还用于为第一agent部署软件包。
14.在一种可能的实现方式中,多个部署命令,且多个部署命令与多个agent对应的情况下,通信单元,具体用于:向第一agent发送第二信息;第二信息中包括:软件包、以及第一agent对应的部署命令;接收来自于第一agent发送的第三信息;第三信息用于指示第一agent为正在部署状态;接收来自于第一agent发送的第四信息;第四信息用于指示第一agent为已部署状态。
15.在一种可能的实现方式中,在第一中继节点向第一agent发送第二信息之前,处理单元,还用于生成准备部署记录;通信单元,还用于向多个第二中继节点发送准备部署记录;第二中继节点为多个中继节点中除第一中继节点以外的中继节点;在第一中继节点接收来自于第一agent发送的第三信息之后,处理单元,还用于生成正在部署记录;通信单元,还用于向多个第二中继节点发送正在部署记录;在第一中继节点接收来自于第一agent发送的第四信息之后,处理单元,还用于生成完成部署记录;通信单元,还用于向多个第二中继节点发送完成部署记录。
16.在一种可能的实现方式中,通信单元,还用于接收来自于第二中继节点的agent部
署记录,agent部署记录包括准备部署记录、正在部署记录、完成部署记录中的至少一项;第二中继节点为多个中继节点中除第一中继节点以外的中继节点;处理单元,还用于将agent部署记录存储在区块链节点中。
17.在一种可能的实现方式中,处理单元,具体用于:判断第一中继节点的部署agent的数量是否达到上限;若否,则确定第一agent。
18.在一种可能的实现方式中,软件包采用http或https的方式进行传输;多个部署命令以及多个agent的标识采用jms应用程序接口的方式进行传输。
19.第三方面,本技术提供一种自动化部署系统,该自动化部署系统包括:ucd服务器,多个中继节点,以及多个agent;其中,多个中继节点中的每个中继节点中具有一个区块链节点;区块链节点中存储有每个中继节点部署的agent的部署记录;ucd服务器,用于发送第一信息;第一信息中包括:软件包、以及多个agent的标识;第一中继节点,用于获取第一信息,根据第一信息确定第一agent;查询第一中继节点的区块链节点中是否存在第一agent的部署记录,在第一中继节点的区块链节点中不存在第一agent的部署记录的情况下,为第一agent部署软件包;将第一agent的部署记录同步到第一中继节点的区块链节点、以及第二中继节点的区块链节点中;第一中继节点为多个中继节点中的任一个中继节点,第二中继节点多个中继节点中除第一中继节点以外的中继节点;第一agent为多个agent中的任一个agent;第二中继节点用于,获取第一信息,根据第一信息确定第二agent;查询第二中继节点的区块链节点中是否存在第二agent的部署记录,在第二中继节点的区块链节点中不存在第二agent的部署记录的情况下,为第二agent部署软件包;其中,第二agent为多个agent中的任一个agent。
20.第四方面,本技术提供了一种自动化部署装置,该装置包括:处理器和通信接口;通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现如第一方面和第一方面的任一种可能的实现方式中所描述的自动化部署方法。
21.第五方面,本技术提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在终端上运行时,使得终端执行如第一方面和第一方面的任一种可能的实现方式中描述的自动化部署方法。
22.第六方面,本技术提供一种包含指令的计算机程序产品,当计算机程序产品在自动化部署装置上运行时,使得自动化部署装置执行如第一方面和第一方面的任一种可能的实现方式中所描述的自动化部署方法。
23.第七方面,本技术提供一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现如第一方面和第一方面的任一种可能的实现方式中所描述的自动化部署方法。
24.具体的,本技术中提供的芯片还包括存储器,用于存储计算机程序或指令。
附图说明
25.图1为本技术实施例提供的一种通信系统的结构图;
26.图2为本技术实施例提供的一种自动化部署方法的流程图;
27.图3为本技术实施例提供的另一种自动化部署方法的流程图;
28.图4为本技术实施例提供的另一种自动化部署方法的流程图;
29.图5为本技术实施例提供的另一种自动化部署方法的流程图;
30.图6为本技术实施例提供的另一种自动化部署方法的流程图;
31.图7为本技术实施例提供的一种自动化部署装置的结构示意图;
32.图8为本技术实施例提供的另一种自动化部署装置的结构示意图;
33.图9为本技术实施例提供的另一种自动化部署装置的结构示意图;
34.图10为本技术实施例提供的另一种自动化部署装置的结构示意图。
具体实施方式
35.下面结合附图对本技术实施例提供的自动化部署方法及装置进行详细地描述。
36.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
37.本技术的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
38.此外,本技术的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
39.需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
40.在本技术的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
41.以下,对本技术实施例涉及的名词进行解释,以方便读者理解。
42.一、区块链
43.区块链是集合分布式数据存储、点对点传输、共识机制、以及加密算法等计算机技术的新型应用模式,具有不可伪造、全程留痕、可以追溯、公开透明、集体维护等特征。
44.二、ucd服务器
45.ucd服务器是指用于自动化部署的服务器。
46.其中,ucd服务器可以存储软件包、部署命令、以及agent的标识。
47.三、jms应用程序编程接口
48.jms应用程序编程接口是指在java平台中关于面向消息的中间件(message oriented middleware,mom)的应用程序编程接口(application programming interface,api)。
49.其中,jms应用程序编程接口可以用于连接两个应用程序,使得该两个应用程序可以通过jms应用程序编程接口进行通信。
50.jms应用程序编程接口可以用于连接分布式系统中的两个节点,使得该两个节点可以通过jms应用程序编程接口进行通信。
51.需要说明的是,采用jms应用程序编程接口进行信息传输可以传输批量信息,并且jms应用程序编程接口的安全性更高。
52.四、http
53.http是一种请求-响应协议,可以作为服务器之间的数据传输的一种方式。
54.需要说明的是,当采用http的方式进行数据传输时,不需要经过高危的访问控制端口,这样可以提高数据传输的安全性。
55.以上是对本技术实施例中涉及到的部分概念所做的简单介绍。
56.如图1所示,图1示出了本技术实施例提供的一种自动化部署系统的结构示意图。该自动化部署系统10包括:ucd服务器,多个中继节点,以及多个agent。其中,多个中继节点中的每个中继节点中具有一个区块链节点。区块链节点中存储有每个中继节点部署的agent的部署记录。
57.ucd服务器,用于发送第一信息。
58.其中,第一信息中包括:软件包、以及多个agent的标识。
59.一种可能的实现方式中,ucd服务器可以向第一中继节点发送第一信息。在第一中继节点接收到来自于ucd服务器的第一信息之后,第一中继节点再向其他中继节点发送第一信息,使得上述多个中继节点中的每个中继节点都可以获取第一信息。
60.另一种可能的实现方式中,ucd服务器可以向多个中继节点中的每个中继节点发送第一信息。相应的,上述每个中继节点接收来自于ucd服务器的第一信息。这样也可以使得上述多个中继节点中的每个中继节点都可以获取第一信息。
61.另一种可能的实现方式中,ucd服务器向共享存储空间发送第一信息,相应的,上述共享存储空间接收到来自于ucd服务器的第一信息。这样上述多个中继节点中的每个中继节点都可以从上述共享存储空间中获取第一信息。
62.第一中继节点,用于获取第一信息,根据第一信息确定第一agent;查询第一中继节点的区块链节点中是否存在第一agent的部署记录,在第一中继节点的区块链节点中不存在第一agent的部署记录的情况下,为第一agent部署软件包;将第一agent的部署记录同步到第一中继节点的区块链节点、以及第二中继节点的区块链节点中。
63.其中,第一中继节点为多个中继节点中的任一个中继节点。第二中继节点多个中继节点中除第一中继节点以外的中继节点。第一agent为多个agent中的任一个agent。
64.需要指出的是,若第一中继节点的区块链节点中存在第一agent的部署记录,则第一中继节点从除第一agent之外的多个agent中,确定任一个agent,再查询第一中继节点的区块链节点中是否存在该agent的部署记录。
65.需要说明的是,上述部署记录可以包括:准备部署记录、正在部署记录、以及完成部署记录。
66.第二中继节点,用于获取第一信息,根据第一信息确定第二agent;查询第二中继节点的区块链节点中是否存在第二agent的部署记录,在第二中继节点的区块链节点中不存在第二agent的部署记录的情况下,为第二agent部署软件包。
67.其中,第二agent为多个agent中的任一个agent。
68.可选的,上述多个中继节点中还可以包括第三中继节点。
69.第三中继节点,用于获取第一信息,根据第一信息确定第三agent;查询第三中继节点的区块链节点中是否存在第三agent的部署记录,在第三中继节点的区块链节点中不存在第三agent的部署记录的情况下,为第三agent部署软件包。
70.多个agent为需要被部署软件包的服务器。
71.此外,本技术实施例描述的通信系统是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新通信系统的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
72.自动化部署是指将软件的源代码生成可运行的软件包,并由ucd服务器向agent发送该可运行的软件包,使得该可运行的软件包可以在待部署的agent中正常运行。ucd服务器一般通过访问控制端口的方式向agent发送可运行的软件包。但是在某些情况下该访问控制端口的是被禁止使用的,这样使得ucd服务器无法向agent发送该可运行的软件包,进而导致无法完成自动化部署。
73.为了能够正常进行自动化部署,本领域技术人员在目前的自动化部署流程中加入了中继节点,由中继节点联通ucd服务器和agent,这样使得该可运行的软件包可以由ucd服务器传输至agent。现有技术的自动化部署的具体方案包括以下步骤1-步骤4。
74.步骤1、自动化部署服务器通过http协议接收自动化部署请求。
75.其中,该自动化部署请求信息中包括:应用程序、部署流程、以及在隔离区(demilitarized zone,dmz)的agent列表。该部署流程中包括多个部署命令。该agent列表中包括多个agent的标识。
76.需要说明的是,自动化部署服务器会集中存储各种自动化部署的部署流程、以及应用程序。
77.步骤2、自动化部署服务器从自身的数据库中确定与上述多个agent对应的中继节点列表,并从上述中继节点列表中确定一个可以正常工作的中继节点(记为中继节点#1)。
78.需要说明的是,上述中继节点列表中包括的任一个中继节点均可以与上述多个agent连接。
79.步骤3、自动化部署节点向中继节点#1发送应用程序以及多个部署命令。相应的,中继节点#1接收来自于自动化部署节点的应用程序以及多个部署命令。
80.步骤4、中继节点#1根据多个agent的标识以及多个部署命令,为多个agent中的每个agent部署应用程序。
81.现有技术存在的问题为:当本次需要部署的agent的数量较多时,现有技术中只能从中继节点列表中选择一个中继节点进行本次所有agent的部署,这样会导致自动化部署的效率较低。
82.为了解决上述现有技术中进行自动化部署时存在的问题,本技术实施例提出了一种自动化部署方法,能够提高自动化部署的效率。如图2所示,该方法包括:
83.s201、ucd服务器向第一中继节点发送第一信息。相应的,第一中继节点接收来自于ucd服务器的第一信息。
84.其中,第一信息中包括:软件包、以及多个agent的标识。
85.一种可能的实现方式中,第一信息中的软件包和多个agent的标识可以采用不同方式进行传输。软件包采用http或https的方式进行传输。多个agent的标识采用jms应用程序接口的方式进行传输。
86.需要说明的是,采用http或者https传输软件包可以避免使用高危的访问控制端
口,进而可以提高数据传输的安全性。
87.需要说明的是,上述s201的具体实现过程为:ucd服务器可以向第一中继节点发送询问请求,该询问请求用于询问第一中继节点中是否存储有软件包。相应的,第一中继节点接受来自于ucd服务器的询问请求信息。第一中继节点向ucd服务器发送询问回应信息;若该询问回应信息用于指示第一中继节点中未存储软件包,则ucd服务器向第一中继节点发送第一信息;若该询问回应信息用于指示第一中继节点中存储有软件包,则ucd服务器向第一中继节点发送多个agent的标识,无需再次发送软件包。
88.一种可能的实现方式中,在第一中继节点接收来自于ucd服务器的第一信息之后,第一中继节点分别向多个中继节点中的其他中继节点发送第一信息,使得其他中继节点也可以接收到第一信息,这样其他中继节点可以根据第一信息进行自动化部署。
89.一种可能的实现方式中,在自动化系统中增加多个中继节点可以共同访问的存储空间,该共同访问的存储空间中可以包括软件包、以及多个agent的标识,这样使得多个中继节点中的每个中继节点中只需要包括访问该共同访问的存储空间的共享连接,通过该共享连接就从共同访问的存储空间中获取软件包、以及多个agent的标识,进行避免了上述软件包、以及多个agent的标识存储在每个中继节点上造成的存储空间浪费的问题,也减少了多个中继节点从ucd服务器中拷贝软件包、以及多个agent的标识的时间。
90.s202、第一中继节点确定第一agent。
91.其中,第一agent为多个agent中的任一个agent。
92.示例性的,若多个agent中包括三个agent(例如,agent#2、agent#3、以及agent#4),则第一中继节点可以确定agent#2为第一agent。
93.s203、第一中继节点查询第一中继节点的区块链节点中是否存在第一agent的部署记录。
94.其中,区块链节点中存储有多个中继节点中每个中继节点部署的agent的部署记录。
95.需要说明的是,部署记录中可以包括:中继节点标识、agent标识、部署状态、以及时间信息。其中,部署状态可以包括:准备部署、正在部署、部署完成。示例性的,部署记录可以为:“中继1,agent1,“准备部署”,202105182041011212”。上述部署记录需要依据创建该部署记录的数据签名进行加密,以防止部署记录被篡改。并且区块链节点具有不可伪造、全程留痕、可以追溯、公开透明、集体维护等特征,可以进一步防止区块链节点中的部署记录被篡改,提高了数据的安全性。
96.需要指出的是,区块链节点中存储的多条部署记录是基于时间信息进行排序的。在多个中继节点均未开始部署agent的情况下,区块链节点中部署记录的数量为0。
97.需要说明的是,上述多个中继节点之间会互相发送自身所创建的部署记录。例如,第一中继节点创建了第一agent的一条部署记录之后,会向多个节点中的其他节点发送该部署记录。这样可以使得多个中继节点中的每个中继节点中的区块链节点中存储的部署记录都是相同的。
98.若存在,则返回上述s202,第一中继节点重新从上述多个agent中确定第一agent。
99.需要说明的是,若区块链节点中存在上述第一agent的部署记录,则可以表明上述第一agent已经被上述多个中继节点中的某一个中继节点部署,第一中继节点无需再对该
第一agent进行部署。
100.一种可能的实现方式中,若第一中继节点确定区块链节点中存在多个agent中所有agent的部署记录,则第一中继节点可以确定上述多个agent均已正在部署或者完成部署。在该情况下,第一中继节点不需要再重新确定第一agent。
101.若不存在,则第一中继节点执行以下s204。
102.需要说明的是,若区块链节点中不存在上述第一agent的部署记录,则可以表明上述第一agent没有被上述多个中继节点中的任一个中继节点部署。
103.s204、第一中继节点为第一agent部署软件包。
104.需要说明的是,上述s204的具体实现过程为:第一中继节点为第一agent发送软件包、以及第一agent对应的部署命令。相应的,第一agent接收来自于第一中继节点的软件包、以及第一agent对应的部署命令。第一agent根据上述软件包、以及第一agent对应的部署命令在第一agent上述部署软件包。
105.需要指出的是,本技术实施例应用于第一中继节点中。第一中继节点为自动化部署系统的多个中继节点中的任一个中继节点。
106.上述技术方案至少带来以下有益效果:本技术提供的自动化部署方法,第一中继节点在接收到来自于ucd服务器的第一信息之后,第一中继节点从多个agent中确定任一个agent为第一agent,并在区块链节点中查询是否存在上述第一agent的部署记录,若不存在,则表明第一agent并未被多个中继节点中的任一个中继节点部署,第一中继节点可以为第一agent部署软件包。若第一agent已经被第一中继节点或者其他中继节点部署,则区块链节点中会存在第一agent的部署记录,这样第一中继节点就不会再为第一agent部署软件包,这样避免了agent被重复部署或者被遗漏部署。在此同时,其他中继节点也可以同时执行上述第一中继节点所执行的动作,即其他中继节点可以与第一中继节点同时进行agent的部署,这样可以使得多个中继节点可以共同部署多个agent,进而提高了自动化部署的效率。
107.此外,在现有技术中,若动化部署的过程中,该中继节点发生故障,则会导致剩余的agent无法继续被部署。若想完成剩余的agent的部署,则需要重新执行上述步骤1-步骤4。这将导致中继节点故障时重新为部署剩余agent的过程较为繁琐。
108.现技术中只能从中继节点列表中选择一个中继节点进行本次所有agent的部署。在该情况下,自动化部署过程中的所有信息会保存在该中继节点中。若该中继节点中信息(例如,应用程序或者部署流程)被篡改或者丢失,则会导致中继节点中存储的部署进程出错,难以继续进行自动化部署。
109.根据本技术提供的技术方案,在第一中继节点为第一agent部署软件包的同时,其他中继节点也可以为至少一个agent中的其他agent部署软件包。在上述多个中继节点可以并行工作的情况下,如果上述多个中继节点中的一个中继节点发生故障,其他中继节点还可以继续部署剩余的agent,这样避免了因一个中继节点出现故障,导致整个自动化部署无法继续进行的问题。
110.示例性的,本次自动化部署需要部署100个agent。自动化部署系统中包括5个中继节点。上述5个中继节点可以并行部署上述100个agent。在上述100个agent已经部署了90个的情况下,第一中继节点发生故障。剩余的10个agent可以由其他4个中继节点进行部署,以
保证本次自动化部署需要部署100个agent可以全部部署完毕。若在现有技术的场景下(即只存在一个中继节点),则上述剩余的10个agent无法被部署,导致整个自动化部署无法继续进行。
111.本技术使用区块链节点存储上述每个中继节点部署的agent的部署记录,这样保证区块链节点中的部署记录不会被篡改或者丢失,提高了自动化部署的正确率。
112.一种可能的实现方式中,在第一信息还包括:多个部署命令,且多个部署命令与多个agent对应的情况下,结合图2,如图6所示,上述s204具体可以通过以下s301至s303确定。
113.s301、第一中继节点向第一agent发送第二信息。相应的,第一agent接收来自于第一中继节点的第二信息。
114.其中,第二信息中包括:软件包、以及第一agent对应的部署命令。
115.需要说明的是,部署命令与agent之间具有对应关系。例如,第一agent对应的是上传的部署命令;第二agent对应的是解压缩的部署命令。
116.一种可能的实现方式中,多个部署命令也可以采用jms应用程序接口的方式进行传输。
117.s302、第一agent向第一中继节点发送第三信息。相应的,第一中继节点接收第一agent发送的第三信息。
118.其中,第三信息用于指示第一agent为正在部署状态。一种可能的实现方式中,第三信息也可以采用jms应用程序接口的方式进行传输。
119.s303、第一agent向第一中继节点发送第四信息。相应的,第一中继节点接收第一agent发送的第四信息。
120.其中,第四信息用于指示第一agent为已部署状态。
121.需要说明的是,上述s303的具体实现过程为:第一agent根据第一agent对应的部署命令对软件包进行部署。在上述软件包部署完成后,第一agent生成第四信息。该第四信息用于指示第一agent为已部署状态。第一agent向第一中继节点发送第四信息。相应的,第一中继节点接收第一agent发送的第四信息。
122.一种可能的实现方式中,第四信息也可以采用jms应用程序接口的方式进行传输。
123.需要说明的是,在第一中继节点接收到来自于第一agent的第四信息之后,第一中继节点可以继续为多个agent中未部署的agent部署软件包。
124.上述技术方案至少带来以下有益效果:本技术提供的自动化部署方法,第一中继节点向第一agent发送软件包、以及第一agent对应的部署命令。在第一agent接收到来自于第一中继节点的软件包、以及第一agent对应的部署命令之后,第一agent可以根据第一agent对应的部署命令部署软件包。当第一agent开始部署软件包时,第一agent生成第三信息,并向第一中继节点发送第三信息。当第一agent完成部署软件包时,第一agent生成第四信息,并向第一中继节点发送第四信息。这样在第一中继节点接收到来自于第一agent的第四信息之后,第一中继节点可以继续为多个agent中未部署的agent部署软件包,进而提高了自动化部署的效率。
125.需要说明的是,为了第一中继节点的区块链节点中能够存储有多个中继节点中每个中继节点部署的agent的部署记录,第一中继节点与其他中继节点之间需要互通部署记录,即第一中继节点向其他中继节点发送自身生成的部署记录,并接收来自于其他中继节
点的部署记录。这样第一中继节点可以将上述所有部署记录存储在区块链节点中,实现第一中继节点的区块链节点中能够存储有多个中继节点中每个中继节点部署的agent的部署记录。如图4所示,第一中继节点生成部署记录,并向其他中继节点发送部署记录的具体实现过程可以包括以下s401-s406。
126.s401、在第一中继节点向第一agent发送第二信息之前,第一中继节点生成准备部署记录。
127.示例性的,第三信息可以为:“第一中继,第一agent,“准备部署”,202105182041011212”。
128.s402、第一中继节点向多个第二中继节点发送准备部署记录。相应的,多个第二中继节点接收来自于第一中继节点的准备部署记录。
129.其中,第二中继节点为多个中继节点中除第一中继节点以外的中继节点。
130.需要说明的是,在多个第二中继节点接收到来自于第一中继节点的准备部署记录之后,多个第二中继节点中的每个中继节点都将上述准备部署记录存储在各自的区块链节点中。
131.s403、在第一中继节点接收第一agent发送的第三信息之后,第一中继节点生成正在部署记录。
132.示例性的,第三信息可以为:“第一中继,第一agent,“正在部署”,202105182041011212”。
133.s404、第一中继节点向多个第二中继节点发送正在部署记录。相应的,多个第二中继节点接收来自于第一中继节点的正在部署记录。
134.需要说明的是,在多个第二中继节点接收到来自于第一中继节点的正在部署记录之后,多个第二中继节点中的每个中继节点都将上述正在部署记录存储在各自的区块链节点中。
135.s405、在第一中继节点接收第一agent发送的第四信息之后,第一中继节点生成完成部署记录。
136.示例性的,第四信息可以为:“第一中继,第一agent,“完成部署”,202105182041011212”。
137.s406、第一中继节点向多个第二中继节点发送完成部署记录。相应的,多个第二中继节点接收来自于第一中继节点的完成部署记录。
138.需要说明的是,在多个第二中继节点接收到来自于第一中继节点的完成部署记录之后,多个第二中继节点中的每个中继节点都将上述完成部署记录存储在各自的区块链节点中。
139.需要说明的是,若第一中继节点确定区块链节点中存在多个agent中的所有agent的完成部署记录,则第一中继节点向ucd服务器发送第五信息。该第五信息用于指示上述多个agent均已完成部署。
140.如图5所示,第一中继节点接收其他中继节点的部署记录的具体实现过程可以包括以下s501-s502。
141.s501、第二中继节点向第一中继节点发送agent部署记录。相应的,第一中继节点接收来自第二中继节点的agent部署记录。
142.其中,agent部署记录包括准备部署记录、正在部署记录、完成部署记录中的至少一项。
143.s502、第一中继节点将agent部署记录存储在区块链节点中。
144.需要说明的是,在区块链节点中,对于一个agent一般情况下会存在三个部署记录(即准备部署记录、正在部署记录、完成部署记录)。
145.上述技术方案至少带来以下有益效果:本技术提供的自动化部署方法,第一中继节点分别创建三种agent的部署记录(即准备部署记录、正在部署记录、完成部署记录),并将上述三种agent的部署记录存储至区块链节点中。第一中继节点还接收来自于其他中继节点的部署记录,并将上述其他中继节点的部署记录存储至区块链节点中。这样可以使得第一中继节点的区块链节点中存储有多个中继节点中每个中继节点部署的agent的部署记录。并且通过这种互通,可以使得多个中继节点中的每个中继节点都可以存储有每个中继节点部署的agent的部署记录。
146.一种可能的实现方式中,结合图2,如图3所示,上述s202具体可以通过以下s601至s602确定。
147.s601、第一中继节点判断第一中继节点的部署agent的数量是否达到上限。
148.需要说明的是,一般情况下,每个中继节点存在agent部署数量的限制。例如,中继节点#2可以部署5个agent,即中继节点#2的agent部署数量为5。
149.若是,则第一中继节点停止为agent部署软件包。
150.若否,则第一中继节点执行s602。
151.示例性的,第一中继节点的agent部署数量为5。若此时第一中继节点只处理了3个agent,则第一中继节点可以确定第一中继节点的部署agent的数量未达到上限。
152.s602、第一中继节点确定第一agent。
153.需要说明的是,上述s602可参考上述s202进行理解,此处不再赘述。
154.上述技术方案至少带来以下有益效果:本技术提供的自动化部署方法,在第一中继节点确定第一agent之前,第一中继节点需要先判断自身的部署agent的数量是否达到上限。若未达到上限,则第一中继节点确定第一agent。若已达到上限,则表明第一中继节点不能再继续为agent部署软件包。这样可以避免了第一中继节点忽略根据自身实际情况,盲目确定第一agent的问题。
155.可以理解的是,上述自动化部署方法可以由自动化部署装置实现。自动化部署装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本技术公开实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术公开实施例的范围。
156.本技术公开实施例可以根据上述方法示例生成的自动化部署装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术公开实施例中对模块的划分是示意性的,仅仅为一种
逻辑功能划分,实际实现时可以有另外的划分方式。
157.图7为本发明实施例提供的一种自动化部署装置的结构示意图。如图7所示,自动化部署装置70可以用于执行图2-图6所示的自动化部署方法。该自动化部署装置70包括通信单元701、处理单元702;
158.通信单元701,用于接收来自于城市代码部署ucd服务器的第一信息;第一信息中包括:软件包、以及多个远程代理程序agent的标识。
159.处理单元702,用于确定第一agent;第一agent为多个agent中的任一个agent。
160.处理单元702,还用于查询第一中继节点的区块链节点中是否存在第一agent的部署记录;区块链节点中存储有多个中继节点中每个中继节点部署的agent的部署记录.
161.若否,则处理单元702,还用于为第一agent部署软件包。
162.在一种可能的实现方式中,多个部署命令,且多个部署命令与多个agent对应的情况下,通信单元701,具体用于:向第一agent发送第二信息;第二信息中包括:软件包、以及第一agent对应的部署命令;接收来自于第一agent发送的第三信息;第三信息用于指示第一agent为正在部署状态;接收来自于第一agent发送的第四信息;第四信息用于指示第一agent为已部署状态。
163.在一种可能的实现方式中,在第一中继节点向第一agent发送第二信息之前,处理单元702,还用于生成准备部署记录;通信单元701,还用于向多个第二中继节点发送准备部署记录;第二中继节点为多个中继节点中除第一中继节点以外的中继节点;在第一中继节点接收来自于第一agent发送的第三信息之后,处理单元702,还用于生成正在部署记录;通信单元702,还用于向多个第二中继节点发送正在部署记录;在第一中继节点接收来自于第一agent发送的第四信息之后,处理单元702,还用于生成完成部署记录;通信单元701,还用于向多个第二中继节点发送完成部署记录。
164.在一种可能的实现方式中,通信单元701,还用于接收来自于第二中继节点的agent部署记录,agent部署记录包括准备部署记录、正在部署记录、完成部署记录中的至少一项;第二中继节点为多个中继节点中除第一中继节点以外的中继节点;处理单元702,还用于将agent部署记录存储在区块链节点中。
165.在一种可能的实现方式中,处理单元702,具体用于:判断第一中继节点的部署agent的数量是否达到上限;若否,则确定第一agent。
166.在一种可能的实现方式中,软件包采用超文本传输协议http或超文本传输协议的安全接字层https的方式进行传输;多个部署命令以及多个agent的标识采用java消息服务jms应用程序接口的方式进行传输。
167.在采用硬件的形式实现上述集成的模块的功能的情况下,本发明实施例提供了上述实施例中所涉及的自动化部署装置的另外一种可能的结构示意图。如图8所示,一种自动化部署装置80,例如用于执行图2-图6所示的自动化部署方法。该自动化部署装置80包括处理器801,存储器802、总线803、以及通信接口804。处理器801与存储器802之间可以通过总线803连接。
168.处理器801是通信装置的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器801可以是一个通用中央处理单元(central processing unit,cpu),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
169.作为一种实施例,处理器801可以包括一个或多个cpu,例如图8中所示的cpu 0和cpu 1。
170.存储器802可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
171.作为一种可能的实现方式,存储器802可以独立于处理器801存在,存储器802可以通过总线803与处理器801相连接,用于存储指令或者程序代码。处理器801调用并执行存储器802中存储的指令或程序代码时,能够实现本发明实施例提供的富媒体的确定方法。
172.另一种可能的实现方式中,存储器802也可以和处理器801集成在一起。
173.总线803,可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component interconnect,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
174.通信接口804,用于与其他设备通过通信网络连接。该通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,wlan)等。通信接口804可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
175.在一种设计中,本发明实施例提供的自动化部署装置中,通信接口还可以集成在处理器中。
176.需要指出的是,图8示出的结构并不构成对该自动化部署装置80的限定。除图8所示部件之外,该自动化部署装置80可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
177.图9示出了本发明实施例中自动化部署装置的另一种硬件结构。如图9所示,自动化部署装置90可以包括处理器901以及通信接口902。处理器901与通信接口902耦合。
178.处理器901的功能可以参考上述处理器901的描述。此外,处理器901还具备存储功能,可以参考上述存储器902的功能。
179.通信接口902用于为处理器901提供数据。该通信接口902可以是通信装置的内部接口,也可以是通信装置对外的接口。
180.需要指出的是,图9中示出的结构并不构成对自动化部署装置90的限定,除图9所示部件之外,该自动化部署装置90可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
181.图10示出了本发明实施例中自动化部署装置的另一种硬件结构。如图10所示,自动化部署装置100可以包括:选择agent模块1001、部署agent模块1002、区块链节点1003、消息模块1004、以及传输模块1005。
182.选择agent模块1001,用于确定第一agent。
183.选择agent模块1001,还用于查询第一中继节点的区块链节点中是否存在第一
agent的部署记录。
184.部署agent模块1002,用于为第一agent部署软件包。
185.区块链节点1003,用于存储第一中继节点的区块链节点中是否存在第一agent的部署记录。
186.消息模块1004,用于接收来自于ucd服务器的多个agent的标识。
187.传输模块1005,用于接收来自于ucd服务器的软件包。
188.可选的,消息模块1004,还用于:向第一agent发送第二信息;第二信息中包括:软件包、以及第一agent对应的部署命令;第一中继节点接收来自于第一agent发送的第三信息;第三信息用于指示第一agent为正在部署状态;第一中继节点接收来自于第一agent发送的第四信息;第四信息用于指示第一agent为已部署状态。
189.可选的,区块链节点1003,还用于生成准备部署记录、准备部署记录、以及正在部署记录。消息模块1004,还用于向多个第二中继节点发送准备部署记录、准备部署记录、以及正在部署记录;第二中继节点为多个中继节点中除第一中继节点以外的中继节点。
190.可选的,消息模块1004,还用于接收来自于多个第二中继节点的准备部署记录、准备部署记录、以及正在部署记录中的至少一项。
191.可选的,选择agent模块1001,还用于:判断第一中继节点的部署agent的数量是否达到上限;若否,则确定第一agent。
192.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元的划分进行举例说明。在实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
193.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行该指令时,该计算机执行上述方法实施例所示的方法流程中的各个步骤。
194.本发明的实施例提供一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行上述方法实施例中的富媒体的确定方法。
195.其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘。随机存取存储器(random access memory,ram)、只读存储器(read-only memory,rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的人以合适的组合、或者本领域数值的任何其他形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(application specific integrated circuit,asic)中。在本发明实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
196.由于本发明的实施例中的装置、设备、计算机可读存储介质、计算机程序产品可以
应用于上述方法,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
197.以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。
再多了解一些

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

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

相关文献