CN107766050B - 一种异构应用的部署方法以及装置 - Google Patents
一种异构应用的部署方法以及装置 Download PDFInfo
- Publication number
- CN107766050B CN107766050B CN201711047571.0A CN201711047571A CN107766050B CN 107766050 B CN107766050 B CN 107766050B CN 201711047571 A CN201711047571 A CN 201711047571A CN 107766050 B CN107766050 B CN 107766050B
- Authority
- CN
- China
- Prior art keywords
- sub
- application
- deployment
- deployed
- applications
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及应用部署技术领域,尤其涉及一种异构应用的部署方法以及装置,用以在应用部署之前通过部署拓扑描述信息对应用中所有子应用的具体部署拓扑进行描述,实现对所有子应用的混合编排;在对应用进行部署的时候,根据当前待部署的子应用对应的子应用类型所指示的部署方式,完成对异构应用的统一编排部署。该方法包括:获取异构应用中多个子应用的部署拓扑描述信息;根据当前待部署的子应用的子应用来源获取镜像安装文件;根据当前待部署的子应用的子应用类型所指示的部署方式,通过执行部署运行脚本在宿主机上运行镜像安装文件完成当前待部署的子应用的部署。
Description
技术领域
本申请涉及应用部署技术领域,尤其涉及一种异构应用的部署方法以及装置。
背景技术
随着应用在使用过程中新需求的不断增加,企业更新和维护大型单体式应用的困难程度也不断上升;同时,大型单体式应用还存在开发持续性差、开发速度慢、可靠性差、采用新架构和新语言重新架构困难等问题。为了解决上述问题,许多公司在对遗留应用保持维护模式或者对遗留应用进行容器化改造的同时,采用微服务结构模式架构新增应用;新增应用在架构时,将单体式的应用分解为小的、功能相对单一、相互连接的多个微服务,每个微服务作为整个应用的子应用完成某个特定的功能,且每个微服务运行在一个容器实例中。在新增子应用的开发过程中,新增的子应用往往需要与遗留应用联动,完成数据的传输,因而需要对遗留应用与新增子应用分别进行部署;在新增子应用的开发测试阶段,也往往需要部署遗留应用来完成对新增子应用的测试验证。
在上述过程中,会导致异构应用的产生,即一个应用中既包括容器化子应用,又包括非容器化子应用;新增子应用一般采用容器技术快速部署:容器镜像文件中封装了子应用在运行过程中所需要的运行环境的环境依赖文件包以及子应用的安装程序;子应用部署时,只需要从云端获取容器镜像文件,并在容器运行的宿主机中运行该容器镜像文件,就能够完成新增子应用的部署;遗留应用则需要根据容器化改造的可行性被容器化,从而完成快速部署;一旦遗留应用无法被容器化,其作为非容器化子应用则需要基于传统部署方法完成部署;目前的传统部署方法有两种:其一,在服务器或者虚拟机上手工部署配置应用的安装程序,或者通过安装工具将应用的安装推送到服务器后再进行部署配置;其二,通过脚本或其它可实现应用运行的文件来完成应用的部署。
这导致了如下问题的产生:需要花费时间和成本对能够容器化的遗留应用进行容器化改造,难度大且并非所有的遗留应用都能够被容器化;无法被容器化的遗留应用需要区别于容器化的应用单独部署,使得用户需要对每一种应用的部署方法都熟悉,增加学习成本;因此,一种能够对异构应用进行统一部署的方法成为目前亟待解决的问题。
发明内容
本申请实施例提供一种异构应用部署方法,能够实现对容器化应用和非容器化应用的统一编排部署。
第一方面,提供一种异构应用的部署方法,该方法包括:
获取异构应用中多个子应用的部署拓扑描述信息;其中,所述部署拓扑描述信息包括:子应用来源、子应用类型以及部署运行脚本;所述子应用类型用于指示对所述子应用进行部署时所采取的部署方式;
根据当前待部署的所述子应用的所述子应用来源获取镜像安装文件;
根据当前待部署的所述子应用的所述子应用类型所指示的部署方式,通过执行所述部署运行脚本在所述宿主机上运行所述镜像安装文件完成当前待部署的所述子应用的部署。
第二方面,提供一种异构应用部署装置,该装置包括:
第一获取模块,用于获取异构应用中多个子应用的部署拓扑描述信息;其中,所述部署拓扑描述信息包括:子应用来源、子应用类型以及部署运行脚本;所述子应用类型用于指示对所述子应用进行部署时所采取的部署方式;
第二获取模块,用于根据当前待部署的所述子应用的所述子应用来源获取镜像安装文件;
部署模块,用于根据当前待部署的所述子应用的所述子应用类型所指示的部署方式,通过执行所述部署运行脚本在所述宿主机上运行所述镜像安装文件完成当前待部署的所述子应用的部署。
第三方面,提供一种异构应用部署装置,该装置包括:处理器、存储器和总线,存储器存储有执行指令,当装置运行时,处理器与存储器之间通过总线通信,处理器执行存储器中存储的如下执行指令:
获取异构应用中多个子应用的部署拓扑描述信息;其中,所述部署拓扑描述信息包括:子应用来源、子应用类型以及部署运行脚本;所述子应用类型用于指示对所述子应用进行部署时所采取的部署方式;
根据当前待部署的所述子应用的所述子应用来源获取镜像安装文件;
根据当前待部署的所述子应用的所述子应用类型所指示的部署方式,通过执行所述部署运行脚本在所述宿主机上运行所述镜像安装文件完成当前待部署的所述子应用的部署。
第四方面,提供一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述第一方面的异构应用部署方法。
本申请实施例中,在对应用进行部署的时候,会在部署之前通过部署拓扑描述信息对应用中所有子应用的具体部署拓扑进行描述,实现对所有子应用的混合编排;部署拓扑描述信息中包括子应用类型;该子应用类型用于指示对子应用进行部署时所采取的部署方式;在对应用进行部署的时候,根据当前待部署的子应用对应的子应用类型所指示的部署方式,通过执行部署运行脚本对待部署的子应用进行部署,从而完成对异构应用的统一编排部署。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要的附图做简单的介绍。显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例所提供的异构应用部署方法的流程图;
图2示出了本申请另一实施例所提供的异构应用部署方法的流程图;
图3示出了本申请一实施例所提供的异构应用部署装置的结构示意图;
图4示出了本申请另一实施例所提供的异构应用部署装置的结构示意图;
图5示出了本申请一实施例所提供的异构应用部署装置的结构示意图。
具体实施方式
与相关技术中对属于同一个应用的不同子应用分别单独部署不同,本申请方案在对应用进行部署的时候,会在部署之前通过部署拓扑描述信息对应用中所有子应用的具体部署拓扑进行描述,实现对所有子应用的混合编排;部署拓扑描述信息中包括子应用类型;该子应用类型用于指示对子应用进行部署时所采取的部署方式;在对应用进行部署的时候,根据当前待部署的子应用对应的子应用类型所指示的部署方式,通过执行部署运行脚本对待部署的子应用进行部署,从而完成对异构应用的统一编排部署。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请做进一步详细的说明。
在本申请实施例中,容器实例运行在宿主机中,且运行在同一个宿主机中的容器实例共享宿主机的内核,宿主机既可以是虚拟机,也可以是物理主机,容器化子应用部署在容器实例中,且一般地,每一个容器实例部署一个容器化子应用;虚拟机实例内部的进程运行在客机操作***(Guest Operating System,Guest OS)中;非容器化子应用可以部署在主机中,该主机可以是虚拟机也可以是物理主机,该主机即为该非容器化子应用的宿主机;每一个主机中能够部署至少一个非容器化子应用。
如图1所示,为本申请实施例提出的一种异构应用的部署方法流程示意图。本申请实施例中,负责执行异构应用部署过程的主体一般为物理主机或者虚拟机,以下简称执行主机,该方法包括以下步骤:
步骤S101:获取异构应用中多个子应用的部署拓扑描述信息;其中,部署拓扑描述信息包括:子应用来源、子应用类型以及部署运行脚本;子应用类型用于指示对子应用进行部署时所采取的部署方式。
在具体实施中,部署拓扑描述信息是基于每一个子应用运行需求,以文件或其它可实现的方式形成。应用在部署的时候一般包括三个因素:
Ⅰ、子应用的基本信息。每一个应用中均包括了多个子应用,例如一个购物网站应用中可能包括网页(web)服务、数据库、缓存、仓储、计费、用户管理、购物等相关的多个子应用。每一个子应用在部署的时候,都需要明确其基本信息,基本信息包括:1、子应用来源,即每个子应用对应的镜像安装文件的存放位置或者获取方式,用于在对子应用进行部署时基于该子应用来源获取对应的镜像安装文件。2、子应用类型,用于指示在对子应用进行部署时所采取的部署方式,例如,对于容器化子应用,一般采用容器技术对子应用进行部署;对于非容器化技术,可以采用传统的二进制包的方式进行部署。3、部署运行脚本,用于进行应用部署的执行脚本,当应用部署开始的时候,执行主机可以通过执行该部署运行脚本中的动作指令,对各个子应用进行一键式部署。
另外,除了上述四项,在基础信息中还可以包括其他在子应用部署过程中的相关信息,例如对于非容器化子应用,由于其镜像安装文件在运行时需要一定的运行环境,而宿主机并不一定具有,因此在基础信息中还应包括环境依赖包的来源信息,可以通过该环境依赖包的来源信息获取到子应用在部署时所需要依赖环境的安装文件,从而实现对子应用的运行环境的创建。
Ⅱ、不同子应用之间的依赖关系。例如,在对上述购物网站进行部署的过程中,网页(web)服务、仓储服务、计费服务、用户管理服务、购物服务等子应用在运行过程中都需要调用数据库中相关内容,对数据库服务具有依赖性,因此将数据库服务作为第一个部署的子应用;仓储服务和用户管理服务之间并无相互依赖的关系,因此可以将两者中任意一个优先另外一个部署;购物服务又依赖于用户管理服务和仓储服务,购物服务在仓储服务和用户管理服务被部署完成之后部署;计费服务依赖于购物服务,在部署完购物服务之后,部署计费服务;网页服务依赖所有其它的子应用,因此网页服务最后布置,最终所形成的子应用的部署顺序为:数据库服务、仓储服务、用户管理服务、购物服务、计费服务、网页(web)服务;或者部署顺序为:数据库服务、用户管理服务、仓储服务、购物服务、计费服务、网页(web)服务。在确定了各个子应用的部署顺序之后,可以按照该部署顺序,依次对子应用进行部署。
在按照部署顺序对子应用进行部署的时候,首先要按照该部署顺序以及当前已经完成部署的子应用,确定当前待部署的子应用,然后对当前待部署的子应用进行部署。
需要注意的是,当前已经完成部署的子应用为空时,确定部署顺序中的第一个子应用为当前待部署的子应用。
Ⅲ、子应用资源,即用于子应用运行的承载体。子应用资源可以是根据规划提前部署好的,例如提前在容器集群管理***(kubernetes)平台上部署好某个子应用部署的宿主机,子应用资源中指定宿主机的访问路径,在对该子应用进行部署时,可以基于访问路径登录到宿主机,在宿主机中完成对该子应用的部署;宿主机可以是根据需要实时在云端创建的,例如在子应用资源中指定了宿主机的相关参数,在对某子应用进行部署的时候,可以直接调用基础设施即服务(Infrastructure as a Service,IaaS)平台接口实时完成对宿主机的创建,在完成宿主机的创建后,登录到该新创建的宿主机。
根据当前待部署的子应用对应的子应用资源登录到宿主机之后,才能够通过执行部署运行脚本在宿主机上运行镜像安装文件完成当前待部署的子应用的部署。
S102:根据当前待部署的子应用的子应用来源获取镜像安装文件。
在具体实施中,子应用来源中会给出与子应用对应的镜像安装文件的存放位置或者获取方式。
例如某个子应用来源为:192.168.10.100/project/order,则执行主机可以根据该路径登录到存储有该镜像安装文件的云端,获取到镜像安装文件。
S103:根据当前待部署的子应用的子应用类型所指示的部署方式,通过执行部署运行脚本在宿主机上运行镜像安装文件完成当前待部署的子应用的部署。
此处,当待部署的子应用类型为容器化子应用时,采用容器部署方式在宿主机上运行镜像安装文件;当待部署的子应用为非容器化子应用时,采用二进制包的部署方式在宿主机上运行镜像安装文件。
具体地,本申请实施例还提供一种采用容器部署方式在宿主机上运行镜像安装文件的具体方法,该方法包括:
运行第一环境依赖文件,在宿主机上创建容器实例;容器实例具有待部署的子应用在安装和运行过程中所需要的运行环境。
在容器实例中运行第一子应用安装文件。
此处,容器镜像文件中封装了子应用在运行过程中的第一环境依赖文件以及第一子应用安装文件。在对容器化应用进行部署的时候,首先要运行第一环境依赖文件,在宿主机上创建运行待部署的子应用的容器实例;容器实例创建之后,在该容器实例中运行第一应用安装文件,将该待部署子应用安装在该容器实例中,完成对该待部署的子应用的部署。
本申请实施例还提供一种采用二进制包的部署方式在宿主机上运行镜像安装文件的具体方法,该方法包括:
根据部署拓扑描述信息中所包括的环境依赖文件来源,获取可执行文件所需的第二环境依赖文件;
运行第二环境依赖文件,在宿主机上形成待部署的子应用需要的运行环境;
在所形成的运行环境下运行第二子应用安装文件,并在第二子应用安装文件运行完成后,基于配置信息对安装完成后的子应用进行配置设置。
此处,第二子应用安装文件为二进制文件,在二进制文件运行时所需要的运行环境中运行该文件,能够实现对第二子应用安装文件的安装。
具体地,子应用在部署的时候,由于哪一台宿主机要部署哪个子应用是不确定的,不同的非容器化子应用所需要的安装环境也是不确定的,因此宿主机在部署具体的子应用之前,一般不会提前在宿主机上构建子应用运行所需要的运行环境,而对于容器化子应用来说,用于构建其运行环境的第一环境依赖文件是封装在镜像安装文件中的,因此为了获得非容器化子应用的运行环境,部署拓扑描述信息中还应当包括环境依赖文件来源。当执行主机对非容器化子应用进行部署时,首先要根据该环境依赖文件来源下载第二环境依赖文件,然后在宿主机上运行该第二环境依赖文件,在宿主机上形成待部署的子应用需要的运行环境,并在所形成的运行环境下运行第二子应用安装文件,并在第二子应用安装文件运行完成后,基于配置信息进行配置设置,以完成非容器化子应用的部署。
本申请实施例中,在对异构应用进行部署的时候,会在部署之前通过部署拓扑描述信息对应用中所有子应用的具体部署拓扑进行描述,在进行部署的时候,会根据该部署拓扑描述信息中所包括的子应用来源,获取与待部署的子应用对应的镜像安装文件,然后根据该待部署的子应用的子应用类型所指示的部署方式,通过执行部署运行脚本在宿主机上运行镜像安装文件,来完成对当前待部署的子应用的部署,进而通过相同的过程完成对所有子应用的部署。在整个应用部署环境中,不需要对作为非容器化的遗留应用进行容器化改造,而是通过对不同的应用采用部署拓扑描述信息进行混合编排,基于子应用类型所指示的部署方式,通过执行部署运行脚本来实现对混合编排的子应用的一键式部署,实现了对容器化应用和非容器化应用的统一编排部署。
参见图2所示,本申请实施例还提供了另外一种异构应用部署方法,在上述实施例的基础上,该方法还包括:
S201:检测所有子应用是否均已完成部署;
S202:检测所有子应用均完成部署,根据不同子应用之间的依赖关系以及子应用与宿主机之间的对应关系,生成安装拓扑信息。
在具体实施中,在检测所有子应用是否已经完成部署时,可以根据部署顺序以及当前已经完成的部署的所有子应用进行判断;如果完成部署的子应用已经全部包含在部署顺序中,则所有子应用均已完成部署;还可以仅仅根据部署顺序,在当前待部署的子应用完成部署后,检测该完成部署的当前待部署的子应用是否为部署顺序中的最后一个,如果是,则所有子应用均已完成部署。
为了方便后期维护,在检测所有子应用已经部署完后,还会生成安装拓扑信息,该安装拓扑信息一般包括:子应用与宿主机之间的对应关系信息和子应用之间的依赖关系信息。通过宿主机与子应用的对应关系,可以对子应用进行定位,方便获取子应用的安装位置,方便对子应用进行更新和维护;通过子应用之间的依赖关系,当某个子应用出现故障的时候,可以基于该依赖关系,对故障进行迅速定位,方便对应用进行故障解除。
基于同一发明构思,本申请实施例中还提供了上述异构应用部署方法对应的异构应用部署装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述虚异构应用部署方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参见图3所示,本申请实施例所提供的异构应用部署装置包括:
第一获取模块10,用于获取异构应用中多个子应用的部署拓扑描述信息;其中,所述部署拓扑描述信息包括:子应用来源、子应用类型以及部署运行脚本;所述子应用类型用于指示对所述子应用进行部署时所采取的部署方式;
第二获取模块20,用于根据当前待部署的所述子应用的所述子应用来源获取镜像安装文件;
部署模块30,用于根据当前待部署的所述子应用的所述子应用类型所指示的部署方式,通过执行所述部署运行脚本在所述宿主机上运行所述镜像安装文件完成当前待部署的所述子应用的部署。
本申请实施例中,在对异构应用进行部署的时候,会在部署之前通过部署拓扑描述信息对应用中华所有子应用的具体部署拓扑进行描述,在进行部署的时候,会根据该部署拓扑描述信息中所包括的子应用来源,获取与待部署的子应用对应的镜像安装文件,然后根据该待部署的子应用的子应用类型所指示的部署方式,通过执行部署运行脚本在宿主机上运行镜像安装文件,来完成对当前待部署的子应用的部署,进而通过相同的过程完成对所有子应用的部署。在整个应用部署环境中,不需要对作为非容器化的遗留应用进行容器化改造,而是通过对不同的应用采用部署拓扑描述信息进行混合编排,基于子应用类型所指示的部署方式,通过执行部署运行脚本来实现对混合编排的子应用的一键式部署,实现了对容器化应用和非容器化应用的统一编排部署。
可选地,所述子应用的类型包括:容器化子应用以及非容器化子应用;
所述部署模块30,具体用于:对所述容器化子应用,采用容器部署方式在所述宿主机上运行所述镜像安装文件;对所述非容器化子应用采用二进制包的部署方式在所述宿主机上运行所述镜像安装文件。
可选地,待部署的所述子应用为容器化子应用时,所述镜像安装文件包括:第一环境依赖文件以及第一子应用安装文件;
部署模块具体30用于:运行所述第一环境依赖文件,在所述宿主机上创建容器实例;所述容器实例具有待部署的所述子应用在安装和运行过程中所需要的运行环境;在所述容器实例中运行所述第一子应用安装文件。
待部署的所述子应用为非容器化子应用时,所述镜像安装文件包括:第二子应用安装文件以及配置信息;
部署模块30具体用于:根据所述部署拓扑描述信息中所包括的环境依赖文件来源,获取所述第二子应用安装文件所需的第二环境依赖文件;
运行所述第二环境依赖文件,在所述宿主机上形成待部署的所述子应用需要的运行环境;
在所形成的运行环境下运行所述第二子应用安装文件,并在所述第二子应用安装文件运行完成后,基于所述配置信息对安装完成后的子应用进行配置设置。
可选地,参见图4所示,本申请实施例所提供的异构应用部署装置还包括:确定模块40,用于根据不同所述子应用之间的依赖关系,确定所述子应用的部署顺序;
按照所述子应用的所述部署顺序以及当前已经完成部署的所述子应用,确定当前待部署的所述子应用。
可选地,参见图4所示,本申请实施例所提供的异构应用部署装置还包括:检测模块50,用于在完成当前待部署的所述子应用的部署后,检测所有子应用是否均已完成部署;若检测到所有所述子应用均完成部署,根据不同所述子应用之间的依赖关系以及所述子应用与所述宿主机之间的对应关系,生成安装拓扑信息。
如图5所示,为本申请另一实施例所提供的异构应用部署装置示意图,该异构应用部署装置100包括:处理器110、存储器120和总线130,存储器120存储有执行指令,当装置运行时,处理器110与存储器120之间通过总线130通信,处理器110执行存储器120中存储的如下执行指令:
获取异构应用中多个子应用的部署拓扑描述信息;其中,所述部署拓扑描述信息包括:子应用来源、子应用类型以及部署运行脚本;所述子应用类型用于指示对所述子应用进行部署时所采取的部署方式;
根据当前待部署的所述子应用的所述子应用来源获取镜像安装文件;
根据当前待部署的所述子应用的所述子应用类型所指示的部署方式,通过执行所述部署运行脚本在所述宿主机上运行所述镜像安装文件完成当前待部署的所述子应用的部署。
可选地,处理器110具体用于:对所述容器化子应用,采用容器部署方式在所述宿主机上运行所述镜像安装文件;对所述非容器化子应用采用二进制包的部署方式在所述宿主机上运行所述镜像安装文件。
可选地,待部署的所述子应用为容器化子应用时,所述镜像安装文件包括:第一环境依赖文件以及第一子应用安装文件;处理器110具体用于:运行所述第一环境依赖文件,在所述宿主机上创建容器实例;所述容器实例具有待部署的所述子应用在安装和运行过程中所需要的运行环境;在所述容器实例中运行所述第一子应用安装文件。
可选地,待部署的所述子应用为非容器化子应用时,所述镜像安装文件包括:第二子应用安装文件以及配置信息;处理器110具体用于:根据所述部署拓扑描述信息中所包括的环境依赖文件来源,获取所述第二子应用安装文件所需的第二环境依赖文件;
运行所述第二环境依赖文件,在所述宿主机上形成待部署的所述子应用需要的运行环境;
在所形成的运行环境下运行所述第二子应用安装文件,并在所述第二子应用安装文件运行完成后,基于所述配置信息对安装完成后的子应用进行配置设置。
可选地,处理器110还用于:根据不同所述子应用之间的依赖关系,确定所述子应用的部署顺序;
按照所述子应用的所述部署顺序以及当前已经完成部署的所述子应用,确定当前待部署的所述子应用。
可选地,处理器110还用于:在完成当前待部署的所述子应用的部署后,检测所有子应用是否均已完成部署;若检测到所有所述子应用均完成部署,根据不同所述子应用之间的依赖关系以及所述子应用与所述宿主机之间的对应关系,生成安装拓扑信息。
本申请实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的异构应用部署方法。
本申请实施例所提供的异构应用部署方法以及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种异构应用的部署方法,其特征在于,该方法包括:
获取异构应用中多个子应用的部署拓扑描述信息;其中,所述部署拓扑描述信息包括:子应用来源、子应用类型以及部署运行脚本;所述子应用类型用于指示对所述子应用进行部署时所采取的部署方式;其中,所述异构应用为一个应用中既包括容器化子应用,又包括非容器化子应用的应用;
根据当前待部署的所述子应用的所述子应用来源获取镜像安装文件;
根据当前待部署的所述子应用的所述子应用类型所指示的部署方式,通过执行所述部署运行脚本在宿主机上运行所述镜像安装文件完成当前待部署的所述子应用的部署;
所述子应用的类型包括:容器化子应用以及非容器化子应用;
当待部署的所述子应用为容器化子应用时,所述在所述宿主机上运行所述镜像安装文件,具体包括:
采用容器部署方式在所述宿主机上运行所述镜像安装文件;
当待部署的所述子应用为非容器化子应用时,所述在所述宿主机上运行所述镜像安装文件,具体包括:
采用二进制包的部署方式在所述宿主机上运行所述镜像安装文件。
2.根据权利要求1所述的方法,其特征在于,待部署的所述子应用为容器化子应用时,所述镜像安装文件包括:第一环境依赖文件以及第一子应用安装文件;
所述采用容器部署方式在所述宿主机上运行所述镜像安装文件,具体包括:
运行所述第一环境依赖文件,在所述宿主机上创建容器实例;所述容器实例具有待部署的所述子应用在安装和运行过程中所需要的运行环境;
在所述容器实例中运行所述第一子应用安装文件。
3.根据权利要求1所述的方法,其特征在于,待部署的所述子应用为非容器化子应用时,所述镜像安装文件包括:第二子应用安装文件以及配置信息;
所述采用二进制包的部署方式在所述宿主机上运行所述镜像安装文件,具体包括:
根据所述部署拓扑描述信息中所包括的环境依赖文件来源,获取所述第二子应用安装文件所需的第二环境依赖文件;
运行所述第二环境依赖文件,在所述宿主机上形成待部署的所述子应用需要的运行环境;
在所形成的运行环境下运行所述第二子应用安装文件,并在所述第二子应用安装文件运行完成后,基于所述配置信息对安装完成后的子应用进行配置设置。
4.根据权利要求1-3任意一项所述的方法,其特征在于,还包括:
根据不同所述子应用之间的依赖关系,确定所述子应用的部署顺序;
按照所述子应用的所述部署顺序以及当前已经完成部署的所述子应用,确定当前待部署的所述子应用。
5.根据权利要求4所述的方法,其特征在于,完成当前待部署的所述子应用的部署后,还包括:
检测所有子应用是否均已完成部署;
若检测到所有所述子应用均完成部署,根据不同所述子应用之间的依赖关系以及所述子应用与所述宿主机之间的对应关系,生成安装拓扑信息。
6.根据权利要求1-3任意一项所述的方法,其特征在于,所述通过执行所述部署运行脚本在所述宿主机上运行所述镜像安装文件完成当前待部署的所述子应用的部署之前,还包括:
根据当前待部署的所述子应用对应的子应用资源,登录与所述子应用资源对应的宿主机。
7.一种异构应用部署装置,其特征在于,该装置包括:
第一获取模块,用于获取异构应用中多个子应用的部署拓扑描述信息;其中,所述部署拓扑描述信息包括:子应用来源、子应用类型以及部署运行脚本;所述子应用类型用于指示对所述子应用进行部署时所采取的部署方式;其中,所述异构应用为一个应用中既包括容器化子应用,又包括非容器化子应用的应用;
第二获取模块,用于根据当前待部署的所述子应用的所述子应用来源获取镜像安装文件;
部署模块,用于根据当前待部署的所述子应用的所述子应用类型所指示的部署方式,通过执行所述部署运行脚本在宿主机上运行所述镜像安装文件完成当前待部署的所述子应用的部署;
所述子应用的类型包括:容器化子应用以及非容器化子应用;
所述部署模块,具体用于:对所述容器化子应用,采用容器部署方式在所述宿主机上运行所述镜像安装文件;对所述非容器化子应用采用二进制包的部署方式在所述宿主机上运行所述镜像安装文件。
8.一种异构应用部署装置,该装置包括:处理器、存储器和总线,存储器存储有执行指令,当装置运行时,处理器与存储器之间通过总线通信,其特征在于,处理器执行存储器中存储的如下执行指令:
获取异构应用中多个子应用的部署拓扑描述信息;其中,所述部署拓扑描述信息包括:子应用来源、子应用类型以及部署运行脚本;所述子应用类型用于指示对所述子应用进行部署时所采取的部署方式;其中,所述异构应用为一个应用中既包括容器化子应用,又包括非容器化子应用的应用;
根据当前待部署的所述子应用的所述子应用来源获取镜像安装文件;
根据当前待部署的所述子应用的所述子应用类型所指示的部署方式,通过执行所述部署运行脚本在宿主机上运行所述镜像安装文件完成当前待部署的所述子应用的部署;
所述子应用的类型包括:容器化子应用以及非容器化子应用;
当待部署的子应用类型为容器化子应用时,采用容器部署方式在宿主机上运行镜像安装文件;当待部署的子应用为非容器化子应用时,采用二进制包的部署方式在宿主机上运行镜像安装文件。
9.一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,其特征在于,该计算机可执行指令可执行上述权利要求1-6任意一项的异构应用部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711047571.0A CN107766050B (zh) | 2017-10-31 | 2017-10-31 | 一种异构应用的部署方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711047571.0A CN107766050B (zh) | 2017-10-31 | 2017-10-31 | 一种异构应用的部署方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107766050A CN107766050A (zh) | 2018-03-06 |
CN107766050B true CN107766050B (zh) | 2021-12-07 |
Family
ID=61271818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711047571.0A Active CN107766050B (zh) | 2017-10-31 | 2017-10-31 | 一种异构应用的部署方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107766050B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881390A (zh) * | 2018-05-18 | 2018-11-23 | 深圳壹账通智能科技有限公司 | 电子账户服务的云端平台部署方法、装置及设备 |
CN108376076A (zh) * | 2018-05-28 | 2018-08-07 | 郑州云海信息技术有限公司 | 一种安装软件的方法和装置 |
CN111427622B (zh) * | 2018-12-24 | 2023-05-16 | 阿里巴巴集团控股有限公司 | 应用程序中脚本代码的执行方法及装置 |
CN111722906A (zh) * | 2019-03-22 | 2020-09-29 | 华为技术有限公司 | 一种部署虚拟机和容器的方法及装置 |
CN110289982B (zh) * | 2019-05-17 | 2022-08-23 | 平安科技(深圳)有限公司 | 容器应用的扩容方法、装置、计算机设备及存储介质 |
CN110333868B (zh) * | 2019-06-12 | 2023-12-19 | 创新先进技术有限公司 | 用于生成子应用的安装包的方法和*** |
CN110532102A (zh) * | 2019-09-02 | 2019-12-03 | 中国工商银行股份有限公司 | 应用功能的实现方法、装置、电子设备和可读存储介质 |
CN110795148B (zh) * | 2019-10-28 | 2022-10-14 | 北京旷视科技有限公司 | 编排文件的生成方法、装置及电子设备 |
CN113031971B (zh) * | 2019-12-25 | 2022-04-29 | 北京世纪好未来教育科技有限公司 | 软件部署方法、***及计算机存储介质 |
CN111610976B (zh) * | 2020-04-08 | 2023-04-07 | 中科曙光(南京)计算技术有限公司 | 异构应用移植方法、装置和计算机设备 |
CN112000353A (zh) * | 2020-08-18 | 2020-11-27 | 北京三快在线科技有限公司 | 应用运行方法、装置及存储介质 |
CN112328344B (zh) * | 2020-11-02 | 2022-11-22 | 联想(北京)有限公司 | 一种投屏处理方法及第一设备 |
CN112346844A (zh) * | 2020-12-01 | 2021-02-09 | 成都精灵云科技有限公司 | 云平台直接调度二进制执行文件的***及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497408A (zh) * | 2011-12-08 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 一种异构集群操作***半自动批量部署的方法 |
CN105359088A (zh) * | 2013-07-03 | 2016-02-24 | 国际商业机器公司 | 使用动态生成的虚拟磁盘内容优化供应时间的方法 |
CN105468362A (zh) * | 2015-11-17 | 2016-04-06 | 广州杰赛科技股份有限公司 | 应用部署方法和云计算*** |
CN105511906A (zh) * | 2015-11-25 | 2016-04-20 | 苏州科达科技股份有限公司 | 一种视讯平台自动部署方法、装置及*** |
CN105511943A (zh) * | 2015-12-03 | 2016-04-20 | 华为技术有限公司 | 一种Docker容器运行方法和装置 |
CN106843945A (zh) * | 2017-01-04 | 2017-06-13 | 厦门亿力吉奥信息科技有限公司 | 基于PaaS的GIS应用部署方法及*** |
CN106874052A (zh) * | 2017-02-24 | 2017-06-20 | 北京中电普华信息技术有限公司 | 一种应用程序的部署方法和装置 |
CN107102847A (zh) * | 2016-02-23 | 2017-08-29 | 中国水电工程顾问集团有限公司 | 基于微服务的软件开发方法、装置及*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9710304B2 (en) * | 2015-03-05 | 2017-07-18 | Vmware, Inc. | Methods and apparatus to select virtualization environments for migration |
US9639558B2 (en) * | 2015-09-17 | 2017-05-02 | International Business Machines Corporation | Image building |
CN105959138B (zh) * | 2016-04-29 | 2019-05-17 | 深圳大数点科技有限公司 | 基于云计算的微服务动态部署的***及方法 |
CN107294772B (zh) * | 2017-05-23 | 2020-09-01 | 中电万维信息技术有限责任公司 | 一种结合Docker实现动态管理监控服务*** |
-
2017
- 2017-10-31 CN CN201711047571.0A patent/CN107766050B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497408A (zh) * | 2011-12-08 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 一种异构集群操作***半自动批量部署的方法 |
CN105359088A (zh) * | 2013-07-03 | 2016-02-24 | 国际商业机器公司 | 使用动态生成的虚拟磁盘内容优化供应时间的方法 |
CN105468362A (zh) * | 2015-11-17 | 2016-04-06 | 广州杰赛科技股份有限公司 | 应用部署方法和云计算*** |
CN105511906A (zh) * | 2015-11-25 | 2016-04-20 | 苏州科达科技股份有限公司 | 一种视讯平台自动部署方法、装置及*** |
CN105511943A (zh) * | 2015-12-03 | 2016-04-20 | 华为技术有限公司 | 一种Docker容器运行方法和装置 |
CN107102847A (zh) * | 2016-02-23 | 2017-08-29 | 中国水电工程顾问集团有限公司 | 基于微服务的软件开发方法、装置及*** |
CN106843945A (zh) * | 2017-01-04 | 2017-06-13 | 厦门亿力吉奥信息科技有限公司 | 基于PaaS的GIS应用部署方法及*** |
CN106874052A (zh) * | 2017-02-24 | 2017-06-20 | 北京中电普华信息技术有限公司 | 一种应用程序的部署方法和装置 |
Non-Patent Citations (2)
Title |
---|
"基于容器的微服务架构的浅析";陈春霞;《信息***工程》;20160320(第3期);第95-96页 * |
"虚拟样机中基于映射机制的异构应用间数据交换研究";周鸿伟;《小型微型计算机***》;20030721(第7期);第1239-1242页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107766050A (zh) | 2018-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766050B (zh) | 一种异构应用的部署方法以及装置 | |
US10860339B2 (en) | Autonomous creation of new microservices and modification of existing microservices | |
CN112214330A (zh) | 集群中主节点的部署方法、装置及计算机可读存储介质 | |
US10474438B2 (en) | Intelligent cloud engineering platform | |
CN112585919B (zh) | 利用基于云的应用管理技术来管理应用配置状态的方法 | |
US8762986B2 (en) | Advanced packaging and deployment of virtual appliances | |
US10303450B2 (en) | Systems and methods for a policy-driven orchestration of deployment of distributed applications | |
US9262193B2 (en) | Multi-tier platform-as-a-service deployment reduced to single-tier architecture for development | |
US10007584B2 (en) | Automated container migration in a platform-as-a-service system | |
US10083030B1 (en) | Asynchronous dependency resolution | |
WO2016099346A1 (en) | Method and deployment module for managing a container to be deployed on a software platform | |
WO2015080705A1 (en) | Fault management service in a cloud | |
CN112860282A (zh) | 集群插件的升级方法、装置和服务器 | |
CN114968406B (zh) | 一种插件管理方法、装置、电子设备及存储介质 | |
CN111865649A (zh) | 处理媒体内容的方法和装置、计算机设备和存储介质 | |
AU2017239615B2 (en) | Dynamic provisioning of a set of tools based on project specifications | |
CN111831567A (zh) | 应用的测试环境配置方法、装置、***和介质 | |
CN115051846A (zh) | 基于超融合平台的k8s集群的部署方法及电子设备 | |
CN106802805B (zh) | 一种适用服务器管理的应用服务管理方法及装置 | |
AU2017202294A1 (en) | Device based automated tool integration for lifecycle management platform | |
CN107885574B (zh) | 一种虚拟机的部署方法、业务节点、控制装置及控制节点 | |
CN113326098B (zh) | 支持kvm虚拟化与容器虚拟化的云管平台 | |
CN112231231A (zh) | 云端服务的调试方法、***及装置 | |
CN114240265B (zh) | 一种基于混合环境的产品部署方法及装置 | |
US11868407B2 (en) | Multi-level data structure comparison using commutative digesting for unordered data collections |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |