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

一种针对应用的克隆方法及装置与流程

2021-10-24 06:30:00 来源:中国专利 TAG:克隆 装置 环境 计算 方法


1.本技术涉及云计算环境下的克隆技术领域,尤其涉及一种针对应用的克隆方法及装置。


背景技术:

2.云计算技术提供了一种新兴的资源供应模式,通过云计算技术可实现低成本、高速率地为云用户按需提供高质量的弹性云服务,因此近年来得到了快速的发展。克隆技术是云计算领域非常成熟和常用的技术,可实现在其它云或集群上快速复用某个云或集群上已存在的资源。
3.随着云计算技术的快速发展,使得虚拟机技术得到了更加广泛的应用,通过虚拟机能够为云计算提供按需分配的资源,云用户可通过将其本地服务器中的部分应用部署在云计算环境下的虚拟机、以及虚拟机的一些依赖资源(例如,虚拟机的数据卷、虚拟机使用的网络以及安全相关的资源)上,可有效减小本地服务器的压力、降低成本,且可适当提高处理效率。
4.现有技术中,针对部署在云系统中的应用,可将部署应用的相关资源克隆到其它云系统,以满足用户的需求,以下为方便描述,将上述部署应用的原始云系统称为源云系统,并将部署应用的相关资源克隆到的其它云系统称为目标云系统。源云系统将部署应用的相关资源克隆到目标云系统之后,若源云系统中针对该应用进行了更新,现有技术中为保证源云系统与目标云系统中应用相同,将部署更新之后的应用的相关资源整体克隆到目标云系统,对于目标云系统来说工作量较大,且这个过程耗时较久。


技术实现要素:

5.本技术实施例提供一种针对应用的克隆方法及装置,用以解决现有技术中为保证源云系统与目标云系统中部署应用的资源相同,将部署更新之后的应用的相关资源整体克隆到目标云系统,对于目标云系统来说工作量较大、浪费资源,且耗时较久的问题。
6.第一方面,本技术实施例提供了一种针对应用的克隆方法,该方法包括如下步骤:将第一应用对应的第一拓扑从源云系统克隆到目标云系统,以使目标云系统根据第一拓扑部署第一应用,在第一应用更新后,确定更新后的第一应用对应的第二拓扑,将第二拓扑与第一拓扑进行比较,确定第二拓扑相对于第一拓扑发生变化的关联关系,将发生变化的关联关系发送至目标云系统,以使目标云系统根据发生变化的关联关系修改目标云系统中部署第一应用的资源以及部署第一应用的资源之间的关联关系。
7.其中,第一拓扑用于表征第一应用所占用的至少两个资源之间的关联关系,第二拓扑用于表征更新后的第一应用所占用的至少两个资源之间的关联关系。
8.通过上述方法,在源云系统与目标云系统之间,通过克隆第一拓扑达到利用相同的资源部署第一应用的目的之后,若源云系统中的第一应用发生更新,则通过确定更新后的第一应用对应的第二拓扑,比较第二拓扑与第一拓扑,得到第二拓扑相对于第一拓扑发
生变化的关联关系,将发生变化的关联关系发送至目标云系统,以使目标云系统根据发生变化的关联关系修改目标云系统中部署第一应用的资源以及部署第一应用的资源之间的关联关系,避免现有技术中由于将部署更新之后的第一应用的相关资源拓扑整体克隆到目标云系统,而导致的目标云系统的工作量较大且耗时较久的问题。
9.在一种可能的设计中,第二拓扑相对于第一拓扑发生变化的关联关系包括第一关联关系、第二关联关系以及第三关联关系中的任意一个或任意组合;其中,第一关联关系是指由第二拓扑相对于第一拓扑新增资源导致的、第二拓扑相对于第一拓扑发生变化的关联关系;第二关联关系是指由第二拓扑相对于第一拓扑删减资源导致的、第二拓扑相对于第一拓扑发生变化的关联关系;第三关联关系是指在第二拓扑中第一资源之间的关联关系,相对于第一拓扑中至少两个资源之间的关联关系,新增或删减的关联关系,第一资源是指第二拓扑相对于第一拓扑未发生变化的资源。
10.通过上述方法,可根据用户需求等因素,将第一关联关系,第二关联关系和第三关联关系中的任意一个或任意的组合,确定为第二拓扑相对于第一拓扑发生变化的关联关系,灵活性较好。
11.在一种可能的设计中,第二拓扑相对于第一拓扑发生变化的关联关系包括第一关联关系。
12.若发生变化的关联关系包括第一关联关系,则确定所述第二拓扑相对于所述第一拓扑发生变化的关联关系具体包括:将第二拓扑与第一拓扑进行比较,确定第二拓扑中包括但第一拓扑中不包括的新增资源,以及确定第二拓扑中包括且第一拓扑中也包括的原始资源,在第二拓扑中,确定新增资源之间的关联关系,以及确定新增资源与原始资源之间的关联关系,将新增资源之间的关联关系以及新增资源与原始资源之间的关联关系,确定为第一关联关系。
13.通过上述方法,分层次的确定第一关联关系,例如,首先确定第二拓扑相对于第一拓扑的新增资源,其次确定新增资源之间的关联关系,再次确定新增资源与原始资源之间的关联关系,这样确定出的第一关联关系较全面。需要说明的是,上述分层次确定第一关联关系的方法中,可以同时确定新增资源之间的关联关系以及新增资源与原始资源之间的关联关系,也可以分别确定,当分别确定时,并不限定确定新增资源之间的关联关系以及新增资源与原始资源之间的关联关系的先后顺序。
14.在一种可能的设计中,第二拓扑相对于第一拓扑发生变化的关联关系包括第二关联关系。
15.若发生变化的关联关系包括第二关联关系,则确定第二拓扑相对于所述第一拓扑发生变化的关联关系具体包括:将第二拓扑与第一拓扑进行比较,确定第一拓扑中包括但第二拓扑中不包括的删减资源,以及确定第二拓扑中包括且第一拓扑中也包括的未删减资源,在第一拓扑中,确定删减资源之间的关联关系,以及确定删减资源与未删减资源之间的关联关系,将删减资源之间的关联关系以及删减资源与未删减资源之间的关联关系,确定为第二关联关系。
16.通过上述方法,分层次的确定第二关联关系,例如,首先确定第二拓扑相对于第一拓扑的删减资源以及未删减资源,其次在第一拓扑中确定删减资源之间的关联关系,再次确定删减资源与未删减资源之间的关联关系,这样确定出的第二关联关系较全面。需要说
明的是,上述分层次确定第二关联关系的方法中,可以同时确定删减资源之间的关联关系以及删减资源与未删减资源之间的关联关系,也可以分别确定,当分别确定时,并不限定确定删减资源之间的关联关系以及删减资源与未删减资源之间的关联关系的先后顺序。
17.在一种可能的设计中,确定第二拓扑相对于第一拓扑发生变化的关联关系之后,还包括:在第一拓扑以及第二拓扑中分别标记发生变化的关联关系,得到标记之后的第一拓扑以及标记之后的第二拓扑,获取用于指示对标记之后的第二拓扑进行修正的第一指令以及修正信息,修正信息用于指示修正所述发生变化的关联关系,根据标记之后的第一拓扑、标记之后的第二拓扑、第一指令以及修正信息,在发生变化的关联关系中增加或者删除关联关系。
18.通过上述方法,用户可根据实际需求设置修正信息,进而实现根据用户需求修改第二拓扑。
19.在一种可能的设计中,确定第二拓扑相对于第一拓扑发生变化的关联关系之后,还包括:存储发生变化的关联关系。
20.通过存储发生变化的关联关系,以便第一应用下次更新之后使用。
21.在一种可能的设计中,将发生变化的关联关系发送至目标云系统之后,还包括:将与第一应用相关联的预设数据从源云系统复制到目标云系统,预设数据为根据云用户需求确定的数据。
22.通过上述方法,将与第一应用相关联的预设数据(例如,运行第一应用产生的业务数据),从源云系统复制到目标云系统,以使目标云系统中的所述预设数据与源云系统中的所述预设数据保持一致,这样,即使将通过源云系统为其提供服务的用户迁移到目标云系统中,目标云系统仍可为该用户提供相应服务。
23.本技术实施例中,可以主动将发生变化的关联关系发送至目标云系统,也可以在接收到指示发送所述发生变化的关联关系的指令之后将发生变化的关联关系发送至目标云系统。
24.在一种可能的设计中,将发生变化的关联关系发送至目标云系统之前,还包括:获取用于指示将发生变化的关联关系从源云系统发送至目标云系统的第二指令。
25.需要说明的是,该第二指令可以是预先存储的,也可以是实时接收的。
26.第二方面,提供一种针对应用的克隆装置,该装置具有实现上述第一方面以及第一方面的各个可能设计的技术方案的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
27.在一种可能的设计中,该装置包括:克隆模块、存储模块、控制模块、确定模块以及计算模块。其中克隆模块、存储模块、控制模块、确定模块以及计算模块分别用于执行上述第一方面以及第一方面的各个可能的设计中提供的针对应用的克隆方法中的操作。
28.第三方面,本技术实施例提供另一种针对应用的克隆装置,该装置具有实现上述第一方面以及第一方面的各个可能设计的技术方案的功能,所述功能可以通过硬件实现。
29.在一种可能的设计中,所述针对应用的克隆装置的结构中包括处理器、存储器、收发器和总线,其中,所述处理器、存储器以及收发器通过所述总线连接;所述处理器调用存储在所述存储器中的指令,执行上述方法。
30.第四方面,本技术实施例还提供一种计算机存储介质,所述计算机存储介质存储
有计算机可执行指令,所述计算机可执行指令在被计算机调用时,使得计算机执行上述第一方面以及第一方面的各个可能设计的方法。
31.第五方面,本技术还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面和各方面的任一可能的设计中所述的方法。
32.另外,第二方面至第四方面中任一种可能设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
33.图1为本技术实施例提供的一种云系统架构示意图;
34.图2为本技术实施例提供的针对应用的克隆方法流程图;
35.图3为本技术实施例提供的一种第一拓扑示意图;
36.图4为本技术实施例提供的一种第二拓扑示意图;
37.图5为本技术实施例提供的另一种第二拓扑示意图;
38.图6为本技术实施例提供的另一种第一拓扑示意图;
39.图7为本技术实施例提供的又一种第二拓扑示意图;
40.图8为本技术实施例提供的又一种第二拓扑示意图;
41.图9为本技术实施例提供的另一种第一拓扑示意图;
42.图10为本技术实施例提供的又一种第二拓扑示意图;
43.图11为本技术实施例提供的一种确定发生变化的关联关系的方法流程图;
44.图12为本技术实施例提供的一种针对应用的克隆示意图;
45.图13为本技术实施例提供的又一种针对应用的克隆示意图;
46.图14为本技术实施例提供的又一种针对应用的克隆示意图;
47.图15为本技术实施例提供的又一种针对应用的克隆示意图;
48.图16为本技术实施例提供的又一种针对应用的克隆示意图;
49.图17为本技术实施例提供的一种针对应用的克隆装置结构示意图;
50.图18为本技术实施例提供的另一种针对应用的克隆装置结构示意图。
具体实施方式
51.下面将结合附图,对本技术实施例进行详细描述。
52.本技术实施例提供一种针对应用的克隆方法及装置,用以解决现有技术中为保证源云系统与目标云系统中部署应用的资源相同,将部署更新之后的应用的相关资源整体克隆到目标云系统,对于目标云系统来说工作量较大、浪费资源,且耗时较久的问题。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
53.下面,对本技术涉及的基本概念进行解释。需要说明的是,这些解释是为了让本技术实施例更容易被理解,而不应该视为对本技术实施例所要求的保护范围的限定。
54.1、克隆技术,是指将某个集群或是云上的资源复制到其它集群或是云上,并且原集群或云仍保留这些被复制过资源的技术。
55.2、虚拟机技术,是指在一个宿主计算机体系结构上模拟运行其他的客户机操作系
统,模拟的客户机可以与宿主计算机是同一个体系结构,也可以是不同的体系结构。
56.3、虚拟机依赖资源,是指虚拟机运作所依赖的资源,例如,虚拟机的数据卷、虚拟机所使用的网络以及与虚拟机安全相关的资源等。
57.4、拓扑(topology),是指设定网络对象之间的关联关系构成的整体,其中,设定网络对象之间的关联关系是指设定网络对象以及设定网络对象之间的连接关系构成的整体,其中,网络对象包括网络、子网、虚拟机、服务器、路由器、交换机以及网络上的其他各种节点。
58.下面结合附图对本技术实施例提供的针对应用的克隆方法进行具体说明。需要说明的是,本技术实施例中所涉及的多个,是指两个或两个以上。另外,需要理解的是,在本技术实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
59.本技术实施例提供的针对应用的克隆方法可应用于各种场景下云系统之间的交互,本技术中主要以应用于测试和生产场景下,测试云系统与生产云系统之间的交互为例进行说明,其中,本技术实施例中测试云系统是指在应用提供给用户使用之前对应用进行测试的系统,生产云系统是指在应用提供给用户使用时对用户使用应用提供支持的系统。
60.参阅图1所示,为本技术实施例提供的测试和生产场景下云系统架构示意图。图1所示的测试和生产场景下,云系统架构中包括测试云系统110和生产云系统120,在测试云系统110和生产云系统120中分别采用虚拟机1和虚拟机2部署应用,虚拟机1和虚拟机2通过子网b提供网络服务,子网b为属于网络a的子网,其中,子网b和网络a均为虚拟机1和虚拟机2的依赖资源,虚拟机1、虚拟机2、子网b、虚拟机1与子网b之间的连接以及虚拟机2与子网b之间的连接构成的整体为一个可能的关联关系,子网b、网络a以及子网b与网络a的连接为一个可能的关联关系,图1中所有关联关系的整体构成第一拓扑。
61.需要说明的是,本技术中图1仅以包括一个测试云系统和一个生产云系统的简单系统架构为例进行说明,实际应用中,测试和生产场景下的云系统架构可包括多个测试云系统和多个生产云系统,本技术实施例并不限定用于图1所示的云系统架构。
62.进一步需要说明的是,本技术中图1仅以部署应用相关的资源包括虚拟机、子网和网络为例进行示意性说明,实际应用中,部署应用的相关资源可包括多种不同类型的资源,本技术实施例对此不做限定。
63.针对上述应用场景,若应用发生更新,则需要在测试云系统上重新测试,测试通过之后将部署更新后的应用所包括的资源之间的关联关系迁移至生产云系统,现有技术中,为保证测试云系统与生产云系统中部署应用的资源相同,通过将部署更新之后的应用的拓扑从测试云系统整体克隆到生产云系统,生产云系统需要重新部署更新后的应用,这对于生产云系统来说工作量较大、浪费资源,且,将部署更新之后的应用的拓扑从测试云系统整体克隆到生产云系统耗时较久。
64.基于上述介绍,本技术实施例提供一种针对应用的克隆方法,用以解决上述问题。
65.下面以应用于测试和生产场景下,测试云系统与生产云系统之间的交互为例,对本技术实施例的具体实施过程进行详细阐述,但是并不限制本技术实施例应用到其他类型场景下的云系统交互。
66.参阅图2所示,为本技术实施例提供的针对应用的克隆方法流程图。该方法包括如
下步骤:
67.s101:将第一应用对应的第一拓扑从源云系统克隆到目标云系统,以使目标云系统根据第一拓扑部署第一应用。
68.其中,第一拓扑用于表征第一应用所占用的至少两个资源之间的关联关系。
69.本技术实施例中,第一拓扑是指第一应用所占用的至少两个资源之间的关联关系构成的整体,其中,至少两个资源之间的关联关系是指至少两个资源以及至少两个资源之间的连接关系构成的整体。举例而言,针对图1所示的云系统架构,第一拓扑是指虚拟机1、虚拟机2、子网b、网络a、虚拟机1和虚拟机2通过子网b提供网络服务的关系以及子网b属于网络a的关系,构成的整体,参阅图3所示为该第一拓扑的示意图。
70.本技术实施例中,执行针对应用的克隆方法的执行主体可以是源云系统,也可以是除源云系统以及目标云系统之外的其它云系统,本技术不做限定。以下均以执行主体为源云系统为例进行说明。
71.本技术实施例中,当需要在源云系统和目标云系统上部署相同的第一应用时,可以仅在源云系统中完成部署,将第一应用对应的第一拓扑从源云系统克隆到目标云系统,进而使目标云系统可根据第一拓扑,创建相同的关联关系,实现第一应用的部署。
72.其中,将第一应用对应的第一拓扑从源云系统克隆到目标云系统,可采用模板复制方法实现,模板复制方法是指在源云系统采用预设模板部署第一应用,相应的在目标云系统中也使用该预设模板部署第一应用的方法,预设模板是根据实际应用需求设置的包括多种资源(例如,虚拟机、虚拟机数据卷以及网络等)以及多种连接关系的模板。
73.需要说明的是,本技术实施例中的第一应用可以是音乐应用、聊天应用等各种类型的应用,本技术并不限定具体是何种类型的应用。
74.s102:在第一应用更新后,确定更新后的第一应用对应的第二拓扑。
75.其中,第二拓扑用于表征更新后的第一应用所占用的至少两个资源之间的关联关系。
76.本技术实施例中,第二拓扑是指更新后的第一应用所占用的至少两个资源之间的关联关系构成的整体,其中,至少两个资源之间的关联关系是指至少两个资源以及至少两个资源之间的连接关系构成的整体。
77.本技术实施例中,确定更新之后的第一应用对应的第二拓扑可采用如下方法:首先,源云系统确定部署更新后的第一应用的相关资源,其次,确定部署更新后的第一应用的相关资源之间的关联关系,最后,将确定出的部署更新后的第一应用的相关资源之间的关联关系构成的整体,确定为与更新之后的第一应用对应的第二拓扑。
78.s103:将第二拓扑与第一拓扑进行比较,确定第二拓扑相对于第一拓扑发生变化的关联关系。
79.本技术实施例中,第一应用发生更新,可包括第一应用新增功能,第一应用删减功能,以及第一应用在原有功能的基础上完善功能等。第一应用更新之后,可能会导致新增资源、删减资源,而新增资源或者删减资源必然会导致资源之间关联关系发生变化。当然,即使未新增资源、未删减资源也可能会导致第一应用所占用的原始资源之间的关联关系发生变化,其中,原始资源是指第一应用更新之前和更新之后均占用的资源。举例而言,针对图1所示的云系统架构,假设第一应用更新之后没有新增资源,也没有删减资源,则此处原始资
源是指虚拟机1、虚拟机2、子网b以及网络a,在没有新增资源也没有删减资源的情况下,虚拟机1、虚拟机2、子网b以及网络a之间的关联关系也可能会发生变化,例如,第一应用更新之后,可能会导致虚拟机1和虚拟机2之间存在连接关系。
80.本技术实施例中,针对第一应用不同类型的更新,通过将第二拓扑与第一拓扑进行比较,可针对性的确定发生变化的关联关系。举例而言,若第一应用新增资源,则通过将第二拓扑与第一拓扑进行比较,可确定由新增资源导致的发生变化的关联关系,若第一应用删减资源,则通过将第二拓扑与第一拓扑进行比较,可确定由删减资源导致的发生变化的关联关系,当然,也可通过将第二拓扑与第一拓扑进行比较,确定没有新增资源也没有删减资源的情况下发生变化的关联关系。
81.s104:将发生变化的关联关系发送至目标云系统,以使目标云系统根据发生变化的关联关系修改目标云系统中部署第一应用的资源以及部署第一应用的资源之间的关联关系。
82.本技术实施例中,在确定出第二拓扑相对于第一拓扑发生变化的关联关系之后,将发生变化的关联关系发送至目标云系统,以使目标云系统根据发生变化的关联关系修改目标云系统中部署第一应用的资源以及部署第一应用的资源之间的关联关系。
83.本技术实施例中,发生变化的关联关系是指发生变化的资源以及发生变化的资源之间的连接关系构成的整体,和/或,未发生变化的资源以及未发生变化的资源之间发生变化的连接关系构成的整体。举例而言,针对图3所示的第一拓扑,若第一应用更新后对应的第二拓扑如图4所示,则图4所示的第二拓扑相对于图3所示的第一拓扑发生变化的关联关系包括:虚拟机3

子网b,“虚拟机3

子网b”具体是指虚拟机3、子网b以及虚拟机3和子网b之间的连接关系构成的整体。
84.本技术实施例中,第二拓扑相对于第一拓扑发生变化的关联关系包括第一关联关系、第二关联关系以及第三关联关系中的任意一个或任意组合。
85.其中,第一关联关系是指由第二拓扑相对于第一拓扑新增资源导致的、第二拓扑相对于第一拓扑发生变化的关联关系。第二关联关系是指由第二拓扑相对于第一拓扑删减资源导致的、第二拓扑相对于第一拓扑发生变化的关联关系。第三关联关系是指在第二拓扑中第一资源之间的关联关系,相对于第一拓扑中至少两个资源之间的关联关系,新增或删减的关联关系,第一资源是指第二拓扑相对于第一拓扑未发生变化的资源。
86.本技术实施例中,可根据第一应用更新之后,引起资源之间关联关系发生变化的原因,确定第二拓扑相对于第一拓扑发生变化的关联关系。
87.一种可能的实现方式中,若第二拓扑相对于第一拓扑发生变化的关联关系包括第一关联关系,则具体可通过如下方式确定第二拓扑相对于第一拓扑发生变化的关联关系:将第二拓扑与第一拓扑进行比较,具体的,可将第二拓扑中包括的资源与第一拓扑中包括的资源进行比较,确定第二拓扑中包括但第一拓扑中不包括的新增资源,以及确定第二拓扑中包括且第一拓扑中也包括的原始资源,进而可将第二拓扑中包括的资源分为新增资源和原始资源,将第二拓扑中包括的资源分为新增资源和原始资源之后,在第二拓扑中,确定新增资源之间的关联关系,以及确定新增资源与原始资源之间的关联关系,将新增资源之间的关联关系以及新增资源与原始资源之间的关联关系,确定为第一关联关系。举例而言,针对图3所示的第一拓扑,若第一应用更新后,与部署更新后的第一应用相关的新增资源包
括子网c和虚拟机3,更新后的第一应用对应的第二拓扑如图5所示,则由图5所示的第二拓扑相对于图3所示的第一拓扑新增资源(子网c和虚拟机3)导致的、发生变化的第一关联关系包括:虚拟机3

子网c

网络a,“虚拟机3

子网c

网络a”具体是指虚拟机3、子网c、网络a、虚拟机3与子网c之间的连接关系以及子网c与网络a之间的连接关系构成的整体。
88.本技术实施例中,分层次的确定第一关联关系,如上所述,在确定第二拓扑相对于第一拓扑的新增资源之后,首先确定新增资源之间的关联关系,其次确定新增资源与原始资源之间的关联关系,这样确定出的第一关联关系较全面,举例而言,假设在确定图5所示的第二拓扑相对于图3所示的第一拓扑的新增资源(虚拟机3与子网c)之后,分别确定虚拟机3与子网c之间的关联关系,以及新增资源子网c与原始资源网络a之间的关联关系,进而将上述两类关联关系确定为第一关联关系,避免遗漏部分关联关系的确定,进而使得确定出的第一关联关系较全面。需要说明的是,上述分层次确定第一关联关系的方法中,可以同时确定新增资源之间的关联关系以及新增资源与原始资源之间的关联关系,也可以分开确定,当分开确定时,并不限定确定新增资源之间的关联关系以及新增资源与原始资源之间的关联关系的先后顺序。
89.另一种可能的实现方式中,若第二拓扑相对于第一拓扑发生变化的关联关系包括第二关联关系,则具体可通过如下方式确定第二拓扑相对于第一拓扑发生变化的关联关系:将第二拓扑与第一拓扑进行比较,具体的,可将第二拓扑中包括的资源与第一拓扑中包括的资源进行比较,确定第一拓扑中包括但第二拓扑中不包括的删减资源,以及确定第二拓扑中包括且第一拓扑中也包括的未删减资源,进而可将第一拓扑中包括的资源分为删减资源和未删减资源,将第一拓扑中包括的资源分为删减资源和未删减资源之后,在第一拓扑中,确定删减资源之间的关联关系,以及确定删减资源与未删减资源之间的关联关系,将删减资源之间的关联关系以及删减资源与未删减资源之间的关联关系,确定为第二关联关系。举例而言,针对图6所示的第一拓扑以及图7所示的第二拓扑,若第一应用更新后,与部署更新后的第一应用相关的删减资源包括子网2和虚拟机c,则由图7所示的第二拓扑相对于图6所示的第一拓扑删减资源(子网2和虚拟机c)导致的、发生变化的第二关联关系包括:虚拟机c

子网2

网络1,“虚拟机c

子网2

网络1”具体是指虚拟机c、子网2、网络1、虚拟机c与子网2之间的连接关系以及子网2与网络1之间的连接关系构成的整体。
90.本技术实施例中,分层次的确定第二关联关系,如上所述,在确定第二拓扑相对于第一拓扑的删减资源以及未删减资源之后,首先在第一拓扑中确定删减资源之间的关联关系,其次确定删减资源与未删减资源之间的关联关系,这样确定出的第二关联关系较全面,举例而言,假设在确定图7所示的第二拓扑相对于图6所示的第一拓扑的删减资源(子网2和虚拟机c)之后,分别确定子网2与虚拟机c之间的关联关系,以及删减资源子网2与未删减资源网络1之间的关联关系,进而将上述两类关联关系确定为第二关联关系,避免遗漏部分关联关系的确定,进而使得确定出的第二关联关系较全面。需要说明的是,上述分层次确定第二关联关系的方法中,可以同时确定删减资源之间的关联关系以及删减资源与未删减资源之间的关联关系,也可以分开确定,当分开确定时,并不限定确定删减资源之间的关联关系以及删减资源与未删减资源之间的关联关系的先后顺序。
91.本技术实施例中,第一应用更新之后,在新增资源和/或删减资源的情况下,也可能会导致第一应用未更新之前所占用的资源之间的关联关系发生变化,当然,即使未新增
资源、未删减资源也可能会导致第一应用未更新之前所占用的资源之间的关联关系发生变化,本技术中将该类发生变化的关联关系称为第三关联关系。具体的,确定第三关联关系时,将第二拓扑与第一拓扑进行比较,在第二拓扑中确定第二拓扑相对于第一拓扑未发生变化的资源之间的关联关系,将该未发生变化的资源之间的关联关系与第一拓扑中至少两个资源之间的关联关系进行比较,并将该未发生变化的资源之间的关联关系相对于第一拓扑中至少两个资源之间的关联关系新增或删减的关联关系确定为第三关联关系。举例而言,针对图6所示的第一拓扑,若第一应用更新后,未新增资源也未删减资源,更新后的第一应用对应的第二拓扑如图8所示,则图8所示的第二拓扑相对于图6所示的第一拓扑发生变化的第三关联关系包括:虚拟机b

虚拟机c,“虚拟机b

虚拟机c”具体是指虚拟机b、虚拟机c以及虚拟机b与虚拟机c之间的连接关系构成的整体。
92.本技术实施例中,可根据实际用户需求等因素,将第一关联关系,第二关联关系和第三关联关系中的任意一个或任意的组合,确定为第二拓扑相对于第一拓扑发生变化的关联关系,灵活性较好。
93.本技术实施例中,为更好的满足用户需求,在确定第二拓扑相对于第一拓扑发生变化的关联关系之后,还可以通过根据用户需求设置的指令对发生变化的关联关系进行修正。具体的,在第一拓扑以及第二拓扑中分别标记发生变化的关联关系,得到标记之后的第一拓扑以及标记之后的第二拓扑,进而可将标记之后的第一拓扑以及标记之后的第二拓扑通过用户接口呈现给用户,以便用户根据标记过的发生变化的关联关系,确定是否对发生变化的关联关系进行修正,若用户确定对所述发生变化的关联关系进行修正,则获取用于指示对标记之后的第二拓扑进行修正的第一指令以及修正信息,根据标记之后的第一拓扑、标记之后的第二拓扑、第一指令以及修正信息,在发生变化的关联关系中增加或者删除关联关系。
94.其中,修正信息用于指示修正该发生变化的关联关系。
95.需要说明的是,本技术实施例中可支持用户多次对第二拓扑相对于第一拓扑发生变化的关联关系进行修正。
96.本技术实施例中,确定第二拓扑相对于第一拓扑发生变化的关联关系之后,可存储发生变化的关联关系,以便第一应用下次更新之后使用。
97.本技术实施例中,为避免在源云系统与目标云系统部署相同的第一应用之后,在某些场景下,用户并不能够从源云系统与目标云系统获得相同的服务情况的发生,本技术可在将发生变化的关联关系发送至目标云系统之后,将与第一应用相关联的预设数据从源云系统复制到目标云系统。
98.其中,预设数据可包括根据云用户需求确定的数据。
99.例如,假设用户a在某一时间段使用第一应用时由源云系统提供服务,因此针对用户a使用第一应用产生的业务数据存储在源云系统中,用户a在下一时间段使用第一应用改为由目标云系统提供服务,针对一些场景,用户a需要基于前一时间段的业务数据才能正常的进行下一时间段的应用使用,本技术可通过将与第一应用相关联的预设数据(例如,业务数据)从源云系统复制到目标云系统,使得用户a改由目标云系统提供服务的情况下仍能正常使用第一应用。
100.本技术实施例中,可以主动将发生变化的关联关系发送至目标云系统,也可以在
接收到指示发送的指令之后将发生变化的关联关系发送至目标云系统。若通过指令的指示发送发生变化的关联关系,则在将发生变化的关联关系发送至目标云系统之前,获取用于指示将发生变化的关联关系从源云系统发送至目标云系统的第二指令。
101.需要说明的是,该第二指令可以是预先存储的,也可以是实时接收的,本技术不做限定。
102.由于实际应用中更多的是对第一应用新增功能的应用场景,因此本技术实施例以下主要以对第一应用新增功能为例进行说明。
103.本技术实施例以下,以一个具体实例对如何通过比较第二拓扑与第一拓扑,确定第二拓扑相对于第一拓扑发生变化的关联关系进行说明。假设第一应用为聊天应用,在该聊天应用未更新之前仅具有文字聊天功能,该聊天应用未更新之前对应的第一拓扑,参阅图9所示,假设对该聊天应用更新之后,新增了语音聊天功能以及视频聊天功能,该聊天应用更新之后对应的第二拓扑,参阅图10所示。
104.参阅图11所示,为本技术实施例提供的基于上述图9所示的第一拓扑以及图10所示的第二拓扑,确定发生变化的关联关系的方法流程图,该方法包括如下步骤:
105.s201:检测第二拓扑。
106.本技术实施例中在确定出图10所示的第二拓扑之后,对第二拓扑进行检测。
107.s202:依次判断第二拓扑中包括的资源是否包括在第一拓扑中。
108.本技术实施例中,通过将图10所示的第二拓扑与图9所示的第一拓扑进行比较,依次判断该第二拓扑中包括的资源a、资源b、资源c、资源d以及资源e是否包括在第一拓扑中,若包括在第一拓扑中,则执行s203,若不包括在第一拓扑中,则执行s204。
109.s203:将包括在第一拓扑中的资源确定为原始资源。
110.本技术实施例中,将包括在第一拓扑中的资源a、资源b以及资源c确定为原始资源。
111.s204:将不包括在第一拓扑中的资源确定为新增资源。
112.本技术实施例中,将不包括在第一拓扑中的资源d和资源e确定为新增资源。
113.s205:在第二拓扑中依次确定新增资源与新增资源以及新增资源与原始资源之间的关联关系。
114.本技术实施例中,在图10所示的第二拓扑中依次确定新增的资源d和资源e之间的关联关系:d

e,“d

e”具体是指资源d、资源e以及资源d和资源e之间的连接关系构成的整体,以及依次确定新增资源d、新增资源e与原始资源a、原始资源b以及原始资源c之间的关联关系:d

a,“d

a”具体是指资源d、资源a以及资源d和资源a之间的连接关系构成的整体。
115.s206:将新增资源与新增资源以及新增资源与原始资源之间的关联关系,确定为针对新增资源的新增关联关系。
116.本技术实施例中,将新增资源之间的关联关系:d

e,以及新增资源与原始资源之间的关联关系:d

a,确定为针对新增资源的新增关联关系。
117.s207:判断针对新增资源的新增关联关系是否确定完毕。
118.本技术实施例中,由于针对每一新增资源依次确定新增关联关系,因此,在任一新增资源对应的新增关联关系确定完毕后,判断是否还存在未确定新增关联关系的新增资源,即,判断针对新增资源的新增关联关系是否确定完毕,若确定针对新增资源的新增关联
关系确定完毕,则执行s213,若针对新增资源的新增关联关系未确定完毕,则执行s205。
119.s208:在第二拓扑中依次确定原始资源之间的关联关系。
120.本技术实施例中,在图10所示的第二拓扑中可确定出原始资源之间的关联关系:a

b,b

c,a

c。
121.s209:判断第二拓扑中原始资源之间的关联关系是否包含在第一拓扑中。
122.本技术实施例中,通过将第二拓扑中原始资源之间的关联关系:a

b,b

c,a

c,与第一拓扑进行比较,判断第二拓扑中原始资源之间的关联关系是否包含在第一拓扑中,若确定第二拓扑中原始资源之间的关联关系包含在第一拓扑中,则执行s210,若确定第二拓扑中原始资源之间的关联关系不包含在第一拓扑中,则执行s211。
123.s210:将包含在第一拓扑中的原始资源之间的关联关系确定为原始关联关系。
124.本技术实施例中,通过判断可确定图10所示的第二拓扑中原始资源之间的关联关系:a

b和a

c包含在图10所示的第一拓扑中,故将包含在第一拓扑中的关联关系a

b和a

c确定为原始关联关系。
125.s211:将不包含在第一拓扑中的原始资源之间的关联关系确定为针对原始资源的新增关联关系。
126.本技术实施例中,第二拓扑中原始资源之间的关联关系:b

c不包含在第一拓扑中,故将关联关系:b

c,确定为针对原始资源的新增关联关系。
127.s212:判断针对原始资源的新增关联关系是否确定完毕。
128.本技术实施例中,由于针对每一原始资源依次确定新增关联关系,因此,在任一原始资源对应的新增关联关系确定完毕后,判断是否还存在未确定新增关联关系的原始资源,即,判断针对原始资源的新增关联关系是否确定完毕,若确定针对原始资源的新增关联关系确定完毕,则执行s213,若针对原始资源的新增关联关系未确定完毕,则执行s208。
129.s213:判断第二拓扑是否检测完毕。
130.本技术实施例中,若对第二拓扑检测完毕,则执行s214,若对第二拓扑未检测完毕,则执行s202。
131.s214:输出新增关联关系。
132.本技术实施例中,输出的新增关联关系包括上述针对新增资源的新增关联关系和针对原始资源的新增关联关系。
133.本技术实施例中,下面以测试和生产场景为例,对本技术提供的针对应用的克隆方法进行说明。
134.场景一:
135.假设本技术实施例中第一应用为聊天应用,用户完成该聊天应用的开发,该聊天应用仅具有文字聊天功能,在实施该聊天应用之前,需要在测试云系统上对该聊天应用进行测试,在通过测试云系统对该聊天应用进行测试之前,需要将该聊天应用部署在测试云系统中,如图12所示,在测试云系统中,部署该聊天应用的相关资源包括网络a、子网b以及虚拟机1和虚拟机2,这些资源之间具有一定的依赖关系,例如,子网b属于网络a,虚拟机1和虚拟机2由子网b提供网络服务,其中,由第一拓扑表征上述资源之间的关联关系,第一拓扑示意图可参见图3所示,在测试云系统中完成该聊天应用的部署之后,对该聊天应用进行测试,测试通过之后,在t1时刻,将聊天应用对应的第一拓扑从测试云系统克隆到生产云系统
中,以使生产云系统根据第一拓扑部署相同的聊天应用,进而运行生产云系统中的聊天应用以向用户提供聊天服务。
136.假设用户进一步在测试云系统中对该聊天应用增加了语音聊天功能,相应的增加了部署该聊天应用语音聊天功能的新增资源:虚拟机3,其中,由图4所示的第二拓扑表征上述资源之间的关联关系,进而可确定由图4所示的第二拓扑相对于图3所示的第一拓扑新增资源(虚拟机3)、导致的发生变化的第一关联关系:虚拟机3

子网b,并对该新增功能进行测试,测试通过之后,可通过本技术实施例提供的针对应用的克隆方法,在t2时刻,将由新增资源导致的发生变化的第一关联关系:虚拟机3

子网b,发送至生产云系统,以使生产云系统根据发生变化的关联关系修改生产云系统中部署该聊天应用的资源以及部署聊天应用的资源之间的关联关系,进而使得测试云系统与生产云系统中部署相同的聊天应用,通过本技术实施例提供的方法可在不影响生产云系统中聊天应用原有功能的基础上,快速在生产云系统中部署与测试云系统中相同的聊天应用。
137.需要说明的是,上述t2时刻是在t1时刻之后,具体的,t2时刻可根据用户需求进行设定。
138.场景二:
139.该场景中实现将测试云系统中的聊天应用向两个生产云系统的克隆为例进行说明。
140.假设本技术实施例中第一应用为聊天应用,用户完成该聊天应用的开发,该聊天应用仅具有文字聊天功能,在实施该聊天应用之前,需要在测试云系统中对该聊天应用进行测试,在通过测试云系统对该聊天应用进行测试之前,需要将该聊天应用部署在测试云系统中,如图13所示,在测试云系统中,部署该聊天应用的相关资源包括网络a、子网b以及虚拟机1和虚拟机2,这些资源之间具有一定的依赖关系,例如,子网b属于网络a,虚拟机1和虚拟机2由子网b提供网络服务,其中,由第一拓扑表征上述资源之间的依赖关系,第一拓扑示意图可参见图3所示,在测试云系统中完成该聊天应用的部署之后,对该聊天应用进行测试,测试通过之后,在t3时刻,将聊天应用对应的第一拓扑从测试云系统克隆到生产云系统1和生产云系统2中,以使生产云系统1和生产云系统2根据第一拓扑部署相同的聊天应用,进而运行生产云系统1和生产云系统2中的聊天应用以向用户提供聊天服务。
141.假设用户进一步在测试云系统中对该聊天应用增加了语音聊天功能,相应的增加了部署该聊天应用语音聊天功能的新增资源:虚拟机3,其中,由图4所示的第二拓扑表征上述资源之间的关联关系,进而可确定由图4所示的第二拓扑相对于图3所示的第一拓扑新增资源(虚拟机3)、导致的发生变化的第一关联关系:虚拟机3

子网b,并对该新增功能进行测试,测试通过之后,可通过本技术实施例提供的针对应用的克隆方法,在t4时刻,将由新增资源导致的发生变化的第一关联关系:虚拟机3

子网b,发送至生产云系统1和生产云系统2,以使生产云系统1和生产云系统2根据发生变化的关联关系修改生产云系统1和生产云系统2中部署该聊天应用的资源以及部署聊天应用的资源之间的关联关系,进而使得测试云系统与生产云系统1和生产云系统2中部署相同的聊天应用,通过本技术实施例提供的方法可在不影响生产云系统1和生产云系统2中聊天应用原有功能的基础上,快速在生产云系统1和生产云系统2中部署与测试云系统中相同的聊天应用。
142.参阅图14所示,假设在新增语音聊天功能的基础上,用户进一步在测试云系统中
对该聊天应用增加了视频聊天功能,相应的增加了部署该聊天应用视频聊天功能的新增资源:虚拟机4,进而可确定由该新增资源(虚拟机4)、导致的发生变化的第一关联关系:虚拟机4

子网b,并对该新增的功能进行测试,测试通过之后,可通过本技术实施例提供的针对应用的克隆方法,在t5时刻,将由新增资源导致的发生变化的第一关联关系:虚拟机4

子网b,发送至生产云系统1和生产云系统2,以使生产云系统1和生产云系统2根据发生变化的关联关系修改生产云系统1和生产云系统2中部署该聊天应用的资源以及部署聊天应用的资源之间的关联关系,进而使得测试云系统与生产云系统1和生产云系统2中部署相同的聊天应用,通过本技术实施例提供的方法可在不影响生产云系统1和生产云系统2中聊天应用原有功能的基础上,快速持续的在生产云系统1和生产云系统2中部署与测试云系统中相同的聊天应用。
143.需要说明的是,上述t4时刻和t5时刻是在t3时刻之后,具体的,t4时刻和t5时刻可根据用户需求进行设定。
144.本技术实施例中,主要以从一个源云系统(例如,测试云系统),向一个目标云系统(例如,生产云系统)或者向两个目标云系统(例如,生产云系统1和生产云系统2)发送变化的关联关系为例进行说明,实际应用中,一个源云系统可向多个目标云系统发送变化的关联关系。
145.场景三:
146.假设本技术实施例中第一应用为聊天应用,用户完成该聊天应用的开发,该聊天应用具有文字聊天功能、语音聊天功能和视频聊天功能,在实施该聊天应用之前,需要在测试云系统上对该聊天应用进行测试,在通过测试云系统对该聊天应用进行测试之前,需要将该聊天应用部署在测试云系统中,如图15所示,在测试云系统中,部署该聊天应用的相关资源包括网络a、子网b、虚拟机1、虚拟机2、虚拟机3以及虚拟机4,这些资源之间具有一定的依赖关系,例如,子网b属于网络a,虚拟机1、虚拟机2、虚拟机3以及虚拟机4由子网b提供网络服务,在测试云系统中完成该聊天应用的部署之后,对该聊天应用进行测试,测试通过之后,在t6时刻,将聊天应用对应的第一拓扑从测试云系统克隆到生产云系统中,以使生产云系统根据第一拓扑部署相同的聊天应用,进而运行生产云系统中的聊天应用以向用户提供不同类型的聊天服务。
147.假设用户对上述聊天应用进行升级之后,使得升级之后的聊天应用仅占用虚拟机1、虚拟机2以及虚拟机3即可实现上述所有聊天功能,即,更新之后的聊天应用删减了虚拟机4,通过测试云系统对该更新之后的聊天应用进行测试,测试通过之后,可通过本技术实施例提供的针对应用的克隆方法,在t7时刻,将由删减资源(虚拟机4)、导致的发生变化的第二关联关系:虚拟机4

子网b,发送至生产云系统,以使生产云系统根据发生变化的第二关联关系修改生产云系统中部署该聊天应用的资源以及部署聊天应用的资源之间的关联关系,进而使得测试云系统与生产云系统中部署相同的聊天应用,通过本技术实施例提供的方法可在不影响生产云系统中聊天应用原有功能的基础上,快速在生产云系统中部署与测试云系统中相同的聊天应用。
148.需要说明的是,上述t7时刻是在t6时刻之后,具体的,t6时刻可根据用户需求进行设定。
149.场景四:
150.假设本技术实施例中第一应用为聊天应用,用户完成该聊天应用的开发,该聊天应用具有文字聊天功能、语音聊天功能和视频聊天功能,在实施该聊天应用之前,需要在测试云系统上对该聊天应用进行测试,在通过测试云系统对该聊天应用进行测试之前,需要将该聊天应用部署在测试云系统中,如图16所示,在测试云系统中,部署该聊天应用的相关资源包括网络a、子网b、虚拟机1、虚拟机2、虚拟机3以及虚拟机4,这些资源之间具有一定的依赖关系,例如,子网b属于网络a,虚拟机1、虚拟机2、虚拟机3以及虚拟机4由子网b提供网络服务,在测试云系统中完成该聊天应用的部署之后,对该聊天应用进行测试,测试通过之后,在t8时刻,将聊天应用对应的第一拓扑从测试云系统克隆到生产云系统中,以使生产云系统根据第一拓扑部署相同的聊天应用,进而运行生产云系统中的聊天应用以向用户提供不同类型的聊天服务。
151.假设用户对上述聊天应用进行升级之后,对语音聊天功能和视频聊天功能进行处理,使得升级之后的聊天应用所占用的虚拟机3和虚拟机4之间产生联系,进而可确定未发生变化的资源之间的关联关系相对于t8时刻克隆的第一拓扑中至少两个资源之间的关联关系、新增的第三关联关系:虚拟机3

虚拟机4,通过测试云系统对该更新之后的聊天应用进行测试,测试通过之后,可通过本技术实施例提供的针对应用的克隆方法,在t9时刻,将发生变化的第三关联关系:虚拟机3

虚拟机4,发送至生产云系统,以使生产云系统根据发生变化的第三关联关系修改生产云系统中部署该聊天应用的资源以及部署聊天应用的资源之间的关联关系,进而使得测试云系统与生产云系统中部署相同的聊天应用,通过本技术实施例提供的方法可在不影响生产云系统中聊天应用原有功能的基础上,快速在生产云系统中部署与测试云系统中相同的聊天应用。
152.需要说明的是,上述t7时刻是在t6时刻之后,具体的,t6时刻可根据用户需求进行设定。
153.本技术实施例中,上述场景一至场景四仅为示意性说明,实际应用中上述场景可能同时存在,若同时存在,则可分别采用与场景一至场景四对应的方法发送发生变化的关联关系。
154.基于与上述针对应用的克隆方法的同一发明构思,本技术实施例还提供了一种针对应用的克隆装置100,该装置100用于实现上述图1所述的实施例描述的方法,其中,具体实施方式可以参照图1所示的方法实施例,重复之处不再赘述。参阅图17所示,该装置100包括:克隆模块101、存储模块102、确定模块103、计算模块104、控制模块105、修正模块106以及数据复制模块107。其中,
155.克隆模块101,用于将第一应用对应的第一拓扑从源云系统克隆到目标云系统,以使所述目标云系统根据所述第一拓扑部署所述第一应用,所述第一拓扑用于表征所述第一应用所占用的至少两个资源之间的关联关系。
156.存储模块102,用于存储所述第一拓扑。
157.确定模块103,用于在所述第一应用更新后,确定更新后的第一应用对应的第二拓扑,所述第二拓扑用于表征更新后的第一应用所占用的至少两个资源之间的关联关系。
158.计算模块104,用于将所述第二拓扑与所述第一拓扑进行比较,确定所述第二拓扑相对于所述第一拓扑发生变化的关联关系。
159.克隆模块101,还用于将所述发生变化的关联关系发送至所述目标云系统,以使所
述目标云系统根据所述发生变化的关联关系修改所述目标云系统中部署所述第一应用的资源以及部署所述第一应用的资源之间的关联关系。
160.其中,所述第二拓扑相对于所述第一拓扑发生变化的关联关系包括第一关联关系、第二关联关系以及第三关联关系中的任意一个或任意组合。所述第一关联关系是指由所述第二拓扑相对于所述第一拓扑新增资源导致的、所述第二拓扑相对于所述第一拓扑发生变化的关联关系;所述第二关联关系是指由所述第二拓扑相对于所述第一拓扑删减资源导致的、所述第二拓扑相对于所述第一拓扑发生变化的关联关系;所述第三关联关系是指在所述第二拓扑中第一资源之间的关联关系相对于所述第一拓扑中至少两个资源之间的关联关系,新增或删减的关联关系,所述第一资源是指所述第二拓扑相对于所述第一拓扑未发生变化的资源。
161.一种可能的实现方式中,当所述第二拓扑相对于所述第一拓扑发生变化的关联关系包括第一关联关系时,所述计算模块104具体采用如下方式确定所述第二拓扑相对于所述第一拓扑发生变化的关联关系:将所述第二拓扑与所述第一拓扑进行比较,确定所述第二拓扑中包括但所述第一拓扑中不包括的新增资源,以及确定所述第二拓扑中包括且所述第一拓扑中也包括的原始资源;在所述第二拓扑中,确定所述新增资源之间的关联关系,以及确定所述新增资源与所述原始资源之间的关联关系;将所述新增资源之间的关联关系以及所述新增资源与所述原始资源之间的关联关系,确定为所述第一关联关系。
162.一种可能的实现方式中,当所述第二拓扑相对于所述第一拓扑发生变化的关联关系包括第二关联关系时,所述计算模块104具体采用如下方式确定所述第二拓扑相对于所述第一拓扑发生变化的关联关系:将所述第二拓扑与所述第一拓扑进行比较,确定所述第一拓扑中包括但所述第二拓扑中不包括的删减资源,以及确定所述第二拓扑中包括且所述第一拓扑中也包括的未删减资源;在所述第一拓扑中,确定所述删减资源之间的关联关系,以及确定所述删减资源与所述未删减资源之间的关联关系;将所述删减资源之间的关联关系以及所述删减资源与所述未删减资源之间的关联关系,确定为所述第二关联关系。
163.一种可能的实现方式中,所述计算模块104还用于:
164.确定所述第二拓扑相对于所述第一拓扑发生变化的关联关系之后,在所述第一拓扑以及所述第二拓扑中分别标记所述发生变化的关联关系,得到标记之后的第一拓扑以及标记之后的第二拓扑,得到标记之后的第一拓扑以及标记之后的第二拓扑之后,通过所述控制模块105控制获取用于指示对所述标记之后的第二拓扑进行修正的第一指令以及修正信息,进而通过所述修正模块106,根据所述标记之后的第一拓扑、所述标记之后的第二拓扑、所述第一指令以及所述修正信息,在所述发生变化的关联关系中增加或者删除关联关系。
165.其中,所述修正信息用于指示修正所述发生变化的关联关系,通过上述方法,用户可根据实际需求设置修正信息,进而实现根据用户需求修改第二拓扑。
166.一种可能的实现方式中,所述存储模块102还用于:
167.在所述计算模块104确定所述第二拓扑相对于所述第一拓扑发生变化的关联关系之后,存储所述发生变化的关联关系,以便第一应用下次更新之后使用。
168.一种可能的实现方式中,所述数据复制模块107,用于在所述克隆模块101将所述发生变化的关联关系发送至所述目标云系统之后,将与所述第一应用相关联的预设数据从
所述源云系统复制到所述目标云系统。
169.其中,所述预设数据为根据云用户需求确定的数据,例如,运行第一应用产生的业务数据。
170.一种可能的实现方式中,所述控制模块105还用于:
171.在所述克隆模块101将所述发生变化的关联关系发送至所述目标云系统之前,控制获取用于指示将所述发生变化的关联关系从所述源云系统发送至所述目标云系统的第二指令。
172.本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本技术各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
173.所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是个人计算机,手机,或者电视机等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
174.基于以上实施例,本技术实施例还提供了另一种针对应用的克隆装置200,针对应用的克隆装置200用于实现上述图1所述的实施例描述的方法,其中,具体实施方式可以参照图1所示的方法实施例,重复之处不再赘述。参阅图18所示,针对应用的克隆装置200可以包括处理器201、存储器202以及收发器203。
175.本技术实施例中不限定上述处理器201、存储器202以及收发器203之间的具体连接介质。本技术实施例在图18中以处理器201、存储器202以及收发器203之间通过总线204连接,总线在图18中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图18中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
176.收发器203,用于将第一应用对应的第一拓扑从源云系统克隆到目标云系统,以使所述目标云系统根据所述第一拓扑部署所述第一应用。
177.其中,所述第一拓扑用于表征所述第一应用所占用的至少两个资源之间的关联关系。
178.所述存储器202,用于存储所述第一拓扑。
179.所述处理器201,用于在所述第一应用更新后,确定更新后的第一应用对应的第二拓扑,将所述第二拓扑与所述存储器202中存储的所述第一拓扑进行比较,确定所述第二拓扑相对于所述第一拓扑发生变化的关联关系。
180.所述收发器203,还用于将所述处理器201确定的所述发生变化的关联关系发送至所述目标云系统,以使所述目标云系统根据所述发生变化的关联关系修改所述目标云系统中部署所述第一应用的资源以及部署所述第一应用的资源之间的关联关系。
181.其中,所述第二拓扑用于表征更新后的第一应用所占用的至少两个资源之间的关联关系。
182.具体的,所述第二拓扑相对于所述第一拓扑发生变化的关联关系包括第一关联关系、第二关联关系以及第三关联关系中的任意一个或任意组合。其中,所述第一关联关系是指由所述第二拓扑相对于所述第一拓扑新增资源导致的、所述第二拓扑相对于所述第一拓扑发生变化的关联关系;所述第二关联关系是指由所述第二拓扑相对于所述第一拓扑删减资源导致的、所述第二拓扑相对于所述第一拓扑发生变化的关联关系;所述第三关联关系是指在所述第二拓扑中第一资源之间的关联关系相对于所述第一拓扑中至少两个资源之间的关联关系,新增或删减的关联关系,所述第一资源是指所述第二拓扑相对于所述第一拓扑未发生变化的资源。
183.一种可能的实现方式中,当所述第二拓扑相对于所述第一拓扑发生变化的关联关系包括第一关联关系时,所述处理器201具体采用如下方式确定所述第二拓扑相对于所述第一拓扑发生变化的关联关系:
184.将所述第二拓扑与所述第一拓扑进行比较,确定所述第二拓扑中包括但所述第一拓扑中不包括的新增资源,以及确定所述第二拓扑中包括且所述第一拓扑中也包括的原始资源;在所述第二拓扑中,确定所述新增资源之间的关联关系,以及确定所述新增资源与所述原始资源之间的关联关系;将所述新增资源之间的关联关系以及所述新增资源与所述原始资源之间的关联关系,确定为所述第一关联关系。
185.一种可能的实现方式中,当所述第二拓扑相对于所述第一拓扑发生变化的关联关系包括第二关联关系时,所述处理器201具体采用如下方式确定所述第二拓扑相对于所述第一拓扑发生变化的关联关系:
186.将所述第二拓扑与所述第一拓扑进行比较,确定所述第一拓扑中包括但所述第二拓扑中不包括的删减资源,以及确定所述第二拓扑中包括且所述第一拓扑中也包括的未删减资源;在所述第一拓扑中,确定所述删减资源之间的关联关系,以及确定所述删减资源与所述未删减资源之间的关联关系;将所述删减资源之间的关联关系以及所述删减资源与所述未删减资源之间的关联关系,确定为所述第二关联关系。
187.一种可能的实现方式中,所述处理器201还用于:
188.确定所述第二拓扑相对于所述第一拓扑发生变化的关联关系之后,在所述第一拓扑以及所述第二拓扑中分别标记所述发生变化的关联关系,得到标记之后的第一拓扑以及标记之后的第二拓扑,控制所述收发器203获取用于指示对所述标记之后的第二拓扑进行修正的第一指令以及修正信息,并根据所述标记之后的第一拓扑、所述标记之后的第二拓扑、所述第一指令以及所述修正信息,在所述发生变化的关联关系中增加或者删除关联关系。
189.其中,所述修正信息用于指示修正所述发生变化的关联关系。
190.一种可能的实现方式中,所述存储器202还用于:
191.在所述处理器201确定所述第二拓扑相对于所述第一拓扑发生变化的关联关系之后,存储所述发生变化的关联关系,以便后续使用。
192.一种可能的实现方式中,所述收发器203还用于:
193.在所述收发器203将所述发生变化的关联关系发送至所述目标云系统之后,将与
所述第一应用相关联的预设数据从所述源云系统发送到所述目标云系统。
194.其中,所述预设数据为根据云用户需求确定的数据,例如,用户使用第一应用产生的业务数据。
195.一种可能的实现方式中,所述收发器203还用于:
196.在所述收发器203将所述发生变化的关联关系发送至所述目标云系统之前,获取用于指示将所述发生变化的关联关系从所述源云系统发送至所述目标云系统的第二指令。
197.本技术实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令在被计算机调用时,使得计算机执行上述提供的针对应用的克隆方法。
198.本技术实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述提供的针对应用的克隆方法。
199.综上所述,本技术实施例中,在源云系统与目标云系统之间,通过克隆第一拓扑达到利用相同的资源部署第一应用的目的之后,若源云系统中的第一应用发生更新,则通过确定更新后的第一应用对应的第二拓扑,比较第二拓扑与第一拓扑,得到第二拓扑相对于第一拓扑发生变化的关联关系,将发生变化的关联关系发送至目标云系统,以使目标云系统根据发生变化的关联关系修改目标云系统中部署第一应用的资源以及部署第一应用的资源之间的关联关系,避免现有技术中由于将部署更新之后的第一应用的相关资源拓扑整体克隆到目标云系统,而导致的目标云系统的工作量较大且耗时较久的问题。
200.本领域内的技术人员应明白,本技术实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
201.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
202.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
203.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
204.尽管已描述了本技术中一些可能的实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为
包括本技术实施例以及落入本技术范围的所有变更和修改。
205.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜