CN111596927B - 服务部署方法、装置及电子设备 - Google Patents
服务部署方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111596927B CN111596927B CN202010414849.9A CN202010414849A CN111596927B CN 111596927 B CN111596927 B CN 111596927B CN 202010414849 A CN202010414849 A CN 202010414849A CN 111596927 B CN111596927 B CN 111596927B
- Authority
- CN
- China
- Prior art keywords
- application
- current application
- deployment
- applications
- current
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明涉及通信技术领域,尤其是涉及一种服务部署方法、装置及电子设备。
背景技术
目前,针对于服务,常用的部署技术是使用Helm(Kubernetes的包管理工具)将应用安装到Kubernetes集群中,其中Helm是一种Kubernetes的包管理工具,实际上,Helm会根据Chart(Helm的包文件)和参数生成Kubernetes的原生资源,如Deployment、Service、Configmap等,使应用运行起来并提供服务。
然而,通常情况下,一个服务由多个应用组成,每个应用通常封装到一个Chart中,如MySQL是一个单独的Chart。单独的一次Chart安装,无法完成整体服务所有组件的部署。
综上,现有的服务部署方法存在部署效率较低的问题。
发明内容
有鉴于此,本发明的目的在于提供服务部署方法、装置及电子设备,以缓解现有技术中存在的部署效率较低的问题,有利于提高服务部署效率。
第一方面,本发明实施例提供了一种服务部署方法,包括以下步骤:
获取待部署服务对应的多个应用的应用定义,所述应用定义包括该应用的依赖信息;
依次从所述多个应用中确定当前应用;
基于所述当前应用的依赖信息,确定所述当前应用所依赖的一个或多个应用是否已经部署成功;
如果是,则部署所述当前应用。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,基于所述当前应用的依赖信息,确定所述当前应用所依赖的一个或多个应用是否已经部署成功的步骤,包括:
基于所述当前应用的依赖信息,判断所述当前应用是否存在所依赖的一个或多个应用;
若所述当前应用存在所依赖的一个或多个应用,确定所述当前应用所依赖的一个或多个应用是否已经部署成功。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述方法还包括:
若所述当前应用不存在所依赖的一个或多个应用,执行部署所述当前应用的步骤。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述方法还包括:
如果否,将所述服务的部署状态标识为部署失败。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述应用定义还包括该应用的用于描述该应用在应用部署时所需要的资源的文件;
部署所述当前应用的步骤,包括:
调用与用于描述当前应用在应用部署时所需要的资源的文件所对应的工具接口安装所述当前应用的用于描述该当前应用在应用部署时所需要的资源的文件,并生成所述当前应用的应用实例的记录。
结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述应用定义还包括该应用的Chart文件;部署所述当前应用的步骤,包括:
调用Helm接口安装所述当前应用的Chart文件,并生成所述当前应用的应用实例记录。
结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,判断所述当前应用是否存在对应的应用实例;
若所述当前应用不存在对应的应用实例,则执行调用与用于描述当前应用在应用部署时所需要的资源的文件所对应的工具接口安装所述当前应用的用于描述该当前应用在应用部署时所需要的资源的文件,并生成所述当前应用的应用实例的记录的步骤;
若所述当前应用存在对应的应用实例,则确定所述当前应用的部署状态。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述方法还包括:
基于所述多个应用的应用定义生成有向无环图DAG(Directed Acyclic Graph)。
第二方面,本发明实施例还提供一种服务部署装置,包括:
获取模块,用于获取待部署服务对应的多个应用的应用定义,所述应用定义包括该应用的依赖信息;
确定模块,用于依次从所述多个应用中确定当前应用;
判断模块,用于基于所述当前应用的依赖信息,确定所述当前应用所依赖的一个或多个应用是否已经部署成功;
部署模块,用于如果是,则部署所述当前应用。
第三方面,本发明实施例还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的服务部署方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的服务部署方法的步骤。
本发明实施例带来了以下有益效果:本发明实施例提供的服务部署方法、装置、电子设备以及计算机可读存储介质,通过获取待部署服务对应的多个应用的应用定义,上述应用定义包括该应用的依赖信息;然后依次从多个应用中确定当前应用;最后基于当前应用的依赖信息,确定所述当前应用所依赖的一个或多个应用是否已经部署成功;如果是,则部署所述当前应用。因此,本发明实施例提供的技术方案,在部署一个服务时,能够通过一次部署请求,完成整个服务所有组件的部署,有利于提高服务部署效率,缓解了现有技术中存在的服务部署效率较低的问题。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种服务部署方法的流程示意图;
图2为图1中步骤S106的具体流程图;
图3为服务A的应用之间的依赖关系;
图4为服务A的有向无环图DAG;
图5为本发明实施例提供的另一种服务部署方法的流程示意图;
图6为本发明实施例提供的服务部署方法的具体流程图;
图7为本发明实施例提供的一种服务部署装置的示意图;
图8为本发明实施例提供的一种电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前现有技术中针对服务的部署方法主要是使用Helm将应用安装到Kubernetes集群中。实际上,Helm会根据Chart和参数生成Kubernetes的原生资源如Deployment、Service、Configmap等,使应用运行起来并提供服务,然而上述方法存在以下缺点:由于服务通常由多个应用组成,每个应用通常封装到一个Chart中,如MySQL是一个单独的Chart。单独的一次Chart安装,只能部署一个应用,无法完成整体服务所有应用的部署,影响服务部署效率。
基于此,本发明实施例提供的一种服务部署方法及装置,在部署一个服务时,能够通过一次部署请求,完成整个服务所有组件的部署,有利于提高部署效率,缓解了现有技术中部署效率较低的技术问题。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种服务部署方法进行详细介绍。
实施例一:
如图1所示,本发明实施例提供了一种服务部署方法,该方法包括:
步骤S102,获取待部署服务对应的多个应用的应用定义,上述应用定义包括该应用的依赖信息;
步骤S104,依次从多个应用中确定当前应用;
步骤S106,基于当前应用的依赖信息,确定当前应用所依赖的一个或多个应用是否已经部署成功;
步骤S108,如果是,则部署当前应用。
需要指出的是,待部署服务通常包括多个应用,预先配置多个应用的应用定义,这里的应用定义包括每个应用的依赖信息,这里的依赖信息可以包括依赖关系以及应用组合;
在可选的实施方式中,上述的应用定义还可以包括该应用的部署文件信息,所述部署文件信息包括用于描述该应用在应用部署时所需要的资源的文件;这里的应用可以是Chart类型的应用,相应的,Chart类型的应用的部署文件信息包括Chart文件;应用也可以是REST(Representational State Transfer,表现层状态转移)类型的应用,相应的,REST类型的应用的部署文件信息包括REST文件,需要指出的是,上述的应用还可以是其他类型的应用。
在可选的实施方式中,上述步骤S108在部署当前应用时,包括:
调用与当前应用的部署文件信息所对应的工具接口安装所述当前应用的用于描述该当前应用在应用部署时所需要的资源的文件,并生成所述当前应用的应用实例的记录。
或者,判断所述当前应用是否存在对应的应用实例;若所述当前应用不存在对应的应用实例,则执行调用与当前应用的部署文件信息所对应的工具接口安装所述当前应用的用于描述该当前应用在应用部署时所需要的资源的文件,并生成所述当前应用的应用实例的记录的步骤;若所述当前应用存在对应的应用实例,则确定所述当前应用的部署状态。
这里应用除了Chart还支持REST等其他类型,可以将所有应用类型的应用部署方式进行统一管控。
具体的,在本实施例中,该应用为Chart类型的应用,部署文件信息为Chart源文件信息,Chart源文件信息包括Chart文件。
在可选的实施方式中,上述的应用定义可以预先存储至数据库。
在可选的实施方式中,对于步骤S104,可以从服务的多个应用中随机选取一个作为当前应用,也可以从服务的多个应用中随机选取多个作为当前应用;
在可选的实施方式中,在步骤S104中,可以按照设定的部署顺序从服务的多个应用中选取一个作为当前应用,也可以按照设定的部署顺序从服务的多个应用中选取多个作为当前应用。
在可选的实施方式中,该步骤S104可以通过以下方式实现:
1、基于多个应用的应用定义生成有向无环图DAG,其中该有向无环图DAG可以用于确定应用部署的先后顺序。
由于该有向无环图DAG可以清楚的得到服务中应用之间的依赖关系,因此可以通过该有向无环图DAG确定应用的部署顺序,例如先部署底层应用,然后再部署上层应用。
2、基于有向无环图DAG从多个应用中确定当前应用。
具体的,先确定底层应用作为当前应用进行部署,然后确定上层应用作为当前应用进行部署;对于没有任何依赖关系的应用或者依赖于同一个应用的多个应用可以并行部署,有利于提升部署效率。
在可选的实施方式中,参照图2,上述步骤S106,可以通过以下步骤实现:
步骤S202,基于当前应用的依赖信息,判断当前应用是否存在所依赖的一个或多个应用;
步骤S204,若当前应用存在所依赖的一个或多个应用,确定当前应用所依赖的一个或多个应用是否已经部署成功。
在可选的实施方式中,确定当前应用所依赖的一个或多个应用是否已经部署成功的步骤包括:
1)判断当前应用所依赖的一个或多个应用是否已完成部署;
2)若是,则执行判断所述当前应用所依赖的一个或多个应用是否部署成功。
即首先判断应用是否已经部署完成,然后再判断部署完成的应用是否部署成功。
在可选的实施方式中,该方法还包括:
步骤S206,若当前应用不存在所依赖的一个或多个应用,则部署当前应用。
通过对没有依赖关系的应用直接进行部署,有利于提高部署效率。
即在当前应用不存在任何依赖的应用的情况下,直接部署当前应用。
需要指出的是,在可选的实施方式中,当没有依赖关系的应用为多个时,可以进行并行部署来提高部署效率。
此外,当前应用为多个时,若当前应用所依赖的应用为同一个应用,且该同一个应用已部署成功时,可以对该多个当前应用进行同时部署或者并行部署,也可以提高部署效率。
为了便于理解,下面结合图3和图4对该有向无环图DAG的生成过程进行举例说明:
如图3所示,服务A,由应用A、B、C、D组成。而应用A和应用B同时依赖应用C,应用A、应用B和应用C同时依赖应用D;其中应用A依赖应用C的可以理解为:应用C部署成功之后,才能够部署应用A。
根据服务A的各个应用的依赖关系,通过Mutable Graph生成部署关系的有向无环图DAG,如图3所示。
根据图4的DAG,确定应用的部署顺序或者指导从多个应用中确定当前应用的顺序和数量;具体的,在对服务进行部署时,可以先部署应用D,应用D部署之后,部署应用C;应用C部署之后,同时部署应用A和应用B;从而实现服务A的部署。
需要说明的是,这里的应用D部署之后可以理解为应用D部署完成后,也可以理解为应用D部署成功后;类似的,应用C部署之后可以作相同的理解。
在可选的实施方式中,步骤S108中,部署当前应用的步骤可以通过以下方式之一实现:
方式A:
A1调用Helm接口安装所述当前应用的Chart文件,并生成所述当前应用的应用实例记录。
具体的,首先从数据库中获取当前应用的Chart源文件信息中的Chart文件;然后调用Helm接口安装所述当前应用的Chart文件,最后,生成一条当前应用的应用实例记录;即该应用实例记录对应于当前应用。
方式B:
B1判断所述当前应用是否存在对应的应用实例;
若否,即当前应用不存在对应的应用实例,则执行B2;若是,即当前应用存在对应的应用实例,则执行B3;
B2调用Helm接口安装所述当前应用的Chart文件,并生成所述当前应用的应用实例记录;
B3确定所述当前应用的部署状态。
其中,该步骤B3可以通过以下步骤执行:
B31判断当前应用是否已经部署完成;
若否,例如当前应用正在部署,则执行步骤B32;若是,即当前应用已经部署完成,则执行步骤B33;
B32等待一段时间,并返回步骤B31;
B33判断当前应用是否部署成功;
若是,则执行步骤B34;若否,则执行步骤B35。
B34将当前应用的部署状态标识为部署成功;并返回所述依次从所述多个应用中确定当前应用的步骤。
B35将服务的部署状态标识为部署失败。
本发明实施例提供的服务部署方法,包括获取待部署服务对应的多个应用的应用定义,上述应用定义包括该应用的依赖信息;依次从多个应用中确定当前应用;基于当前应用的依赖信息,确定所述当前应用所依赖的一个或多个应用是否已经部署成功;如果是,则部署当前应用。因此,该方法可以在部署一个服务时,仅需要一次部署请求,即可完成整个服务的部署,有利于提高部署效率。
实施例二:
如图5所示,本发明实施例提供了另一种服务部署方法,该方法包括:
步骤S502,获取待部署服务对应的多个应用的应用定义,上述应用定义包括该应用的依赖信息;
步骤S504,基于多个应用的应用定义生成有向无环图DAG;
步骤S506,依次从多个应用中确定当前应用;
具体的,基于有向无环图DAG依次从多个应用中确定当前应用;
步骤S508,基于当前应用的依赖信息,确定当前应用所依赖的一个或多个应用是否已经部署成功;
步骤S510,如果是,则部署所述当前应用。
具体的,如果当前应用所依赖的一个或多个应用已经部署成功,则部署所述当前应用;这里的当前应用所依赖的一个或多个应用已经部署成功应当理解为,当前应用所依赖的所有应用均已经部署成功。
步骤S512,如果否,则将服务的部署状态标识为部署失败。
具体的,如果当前应用所依赖的一个或多个应用中存在部署失败的应用,直接将服务标识为部署失败。
为了便于理解,下面结合图6对本发明实施例提供的服务部署方法的一种具体流程进行说明:
步骤S601,获取待部署服务对应的多个应用的应用定义;上述应用定义包括该应用的依赖信息;
这里的应用定义还包括该应用的Chart源文件信息;
步骤S602,基于多个应用的应用定义生成有向无环图DAG。
步骤S603,基于有向无环图DAG,依次从所述多个应用中确定当前应用;
针对于当前应用,执行下列步骤:
步骤S604,判断当前应用是否存在部署依赖的应用;
这里的部署依赖的应用是指当前应用所依赖的应用;所述部署依赖的应用可以是一个或多个。
若是,即当前应用存在部署依赖的应用,则执行步骤是605;若否,即当前应用不存在部署依赖的应用,则执行步骤S615;
步骤S605,判断部署依赖的应用是否已完成部署;
如果否,部署依赖的应用未完成部署,则执行步骤S606;如果是,即部署依赖的应用已完成部署,则执行步骤S607;
步骤S606,优先执行部署依赖的应用或结束当前应用的部署;
步骤S607,判断部署依赖的应用是否部署失败;
若是,即部署依赖的应用部署失败,执行步骤S608;若否,即部署依赖的应用部署成功,则执行步骤S609;
步骤S608,将服务标识为部署失败;
步骤S609,判断当前应用是否存在应用实例;
如果否,即当前应用不存在应用实例,则执行步骤S610;如果是,即当前应用存在应用实例,则执行步骤是611;
步骤S610,调用Helm API部署Chart,并执行步骤S611;
步骤S611,判断当前应用是否部署结束;
若否,即当前应用部署未结束(例如正在部署),则执行步骤S612;若是,即当前应用部署结束,则执行步骤S613;
步骤S612,等待一段时间,并返回步骤S611;
步骤S613,判断当前应用是否部署成功;
如果是,即当前应用部署成功,则执行步骤S614;如果否,即当前应用部署失败,则执行步骤S608;
步骤S614;将当前应用标识为部署成功;
步骤S615,部署当前应用。
本发明实施例提供的服务部署方法是一种基于DAG的应用部署控制流程,将各应用定义存储到数据库中,应用定义包含Chart源文件信息、应用依赖信息。通过RESTFUL API方式对外提供服务。当调用API部署应用时,读取应用定义信息,并按照应用依赖信息生成DAG,然后按照DAG调用Helm API安装Chart。具体的,该方法包括获取待部署服务对应的多个应用的应用定义,依次从所述多个应用中确定当前应用;如果当前应用不依赖任何应用,则直接进入当前应用的部署流程。如果当前应用所有依赖应用都已成功部署,则进入当前应用的部署流程。如果当前应用依赖的应用存在部署失败的,则直接标识为部署失败;这里的直接标识为部署失败可以理解为当前应用标识为部署失败,也可以理解为整个服务部署失败;考虑到并发请求,每个应用部署后都对应一个应用实例,应用实例信息保存在数据库中。通过应用实例来控制其部署状态。进入当前应用的部署流程后,如果当前应用不存在应用实例,则直接调用Helm接口执行安装Chart请求,并生成一条应用实例记录。如果当前应用存在应用实例,则判断当前应用的部署状态,若正在部署,则等待部署结束,部署结束后判断部署结果。该方法遍历每个应用后,最终按照DAG的流程部署每个应用。
该服务部署方法通过配置应用组合、依赖关系,生成应用部署流程的有向无环图(DAG)。在部署一个服务时,能够发送一次部署请求,完成整个服务所有组件的部署,并且按照依赖关系先部署底层应用,再部署上层应用。没有依赖关系的应用或依赖于同一个应用的应用或服务,可以进行并行部署,以提升效率。该方法具有以下优点:1、通过专有的应用定义,维护应用依赖和组合关系,操作更灵活;2、应用除了Chart还支持REST等其他类型,将所有应用类型的应用部署方式,统一管控起来。3、如果不同的服务依赖同一个应用,该方法能够探测到,并将部署过程合并执行。
实施例三:
如图7所示,本发明实施例还提供一种服务部署装置,该装置包括:获取模块701、确定模块702、判断模块703以及部署模块704。
获取模块701用于获取待部署服务对应的多个应用的应用定义,所述应用定义包括该应用的依赖信息;
确定模块702用于依次从所述多个应用中确定当前应用;
判断模块703用于基于所述当前应用的依赖信息,确定所述当前应用所依赖的一个或多个应用是否已经部署成功;
部署模块704用于如果是,则部署所述当前应用。
在可选的实施方式中,判断模块703在基于所述当前应用的依赖信息,确定所述当前应用所依赖的一个或多个应用是否已经部署成功时,用于基于所述当前应用的依赖信息,判断所述当前应用是否存在所依赖的一个或多个应用;若所述当前应用存在所依赖的一个或多个应用,确定所述当前应用所依赖的一个或多个应用是否已经部署成功。
在可选的实施方式中,部署模块704还用于若所述当前应用不存在任何所依赖的应用时,部署所述当前应用。
在可选的实施方式中,所述应用定义还包括该应用的部署文件信息,所述部署文件信息包括用于描述该应用在应用部署时所需要的资源的文件;部署模块704在部署所述当前应用时,用于调用与当前应用的部署文件信息所对应的工具接口安装所述当前应用的用于描述该当前应用在应用部署时所需要的资源的文件,并生成所述当前应用的应用实例的记录。
在可选的实施方式中,所述应用定义还包括该应用的Chart文件;部署模块704还用于调用Helm接口安装所述当前应用的Chart文件,并生成所述当前应用的应用实例记录。
在可选的实施方式中,部署模块704在部署所述当前应用时,用于判断所述当前应用是否存在对应的应用实例;若所述当前应用不存在对应的应用实例,则执行调用与用于描述当前应用在应用部署时所需要的资源的文件所对应的工具接口安装所述当前应用的用于描述该当前应用在应用部署时所需要的资源的文件,并生成所述当前应用的应用实例的记录的步骤;若所述当前应用存在对应的应用实例,则确定所述当前应用的部署状态。
在可选的实施方式中,部署模块704在部署所述当前应用时,用于判断所述当前应用是否存在对应的应用实例;若所述当前应用不存在对应的应用实例,则调用Helm接口安装所述当前应用的Chart文件,并生成所述当前应用的应用实例记录;若所述当前应用存在对应的应用实例,则确定所述当前应用的部署状态。
在可选的实施方式中,该装置还包括标记模块,用于如果当前应用所依赖的一个或多个应用部署失败,将所述服务的部署状态标识为部署失败。
在可选的实施方式中,该装置还包括生成模块,用于基于所述多个应用的应用定义生成有向无环图。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例提供的服务部署装置,与上述实施例提供的服务部署方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在上述存储器上并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现上述服务部署方法的步骤。
参见图8所示的电子设备800的结构示意图,该电子设备包括:处理器804,存储器801,总线802和通信接口803,上述处理器804、通信接口803和存储器801通过总线802连接;处理器804用于执行存储器801中存储的可执行模块,例如计算机程序。
其中,存储器801可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如一个或多个磁盘存储器。通过一个或多个通信接口803(可以是有线或者无线)实现该***网元与一个或多个其他网元之间的通信连接。
总线802可以是ISA总线、PCI总线或EISA总线等。图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器801用于存储程序,上述处理器804在接收到执行指令后,执行上述程序,前述本发明实施例任一实施例揭示的过程定义的装置所执行的方法可以应用于处理器804中,或者由处理器804实现。
处理器804可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器804中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器804可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该存储介质位于存储器801,处理器804读取存储器801中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器运行时执行上述服务部署方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行本申请实施例提供的上述的服务部署方法和/或服务部署方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可运行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地运行,它们有时也可以按相反的顺序运行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用运行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种服务部署方法,其特征在于,所述方法包括:
获取待部署服务对应的多个应用的应用定义,所述应用定义包括该应用的依赖信息;
依次从所述多个应用中确定当前应用;
基于所述当前应用的依赖信息,确定所述当前应用所依赖的一个或多个应用是否已经部署成功;
如果是,则部署所述当前应用;
所述应用定义还包括该应用的部署文件信息,所述部署文件信息包括用于描述该应用在应用部署时所需要的资源的文件;
部署所述当前应用的步骤,包括:
调用与当前应用的部署文件信息所对应的工具接口安装所述当前应用的用于描述该当前应用在应用部署时所需要的资源的文件,并生成所述当前应用的应用实例的记录;
所述应用定义还包括该应用的Chart文件;
部署所述当前应用的步骤,包括:
调用Helm接口安装所述当前应用的Chart文件,并生成所述当前应用的应用实例的记录;
部署所述当前应用的步骤,还包括:
判断所述当前应用是否存在对应的应用实例;
若所述当前应用不存在对应的应用实例,则执行调用与当前应用的部署文件信息所对应的工具接口安装所述当前应用的用于描述该当前应用在应用部署时所需要的资源的文件,并生成所述当前应用的应用实例的记录的步骤;
若所述当前应用存在对应的应用实例,则确定所述当前应用的部署状态。
2.根据权利要求1所述的方法,其特征在于,基于所述当前应用的依赖信息,确定所述当前应用所依赖的一个或多个应用是否已经部署成功的步骤,包括:
基于所述当前应用的依赖信息,判断所述当前应用是否存在所依赖的一个或多个应用;
若所述当前应用存在所依赖的一个或多个应用,确定所述当前应用所依赖的一个或多个应用是否已经部署成功。
3.根据权利要求2所述的方法,其特征在于,还包括:
若所述当前应用不存在所依赖的一个或多个应用,执行部署所述当前应用的步骤。
4.根据权利要求1所述的方法,其特征在于,还包括:
如果否,将所述服务的部署状态标识为部署失败。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述多个应用的应用定义生成有向无环图。
6.一种服务部署装置,其特征在于,包括:
获取模块,用于获取待部署服务对应的多个应用的应用定义,所述应用定义包括该应用的依赖信息;
确定模块,用于依次从所述多个应用中确定当前应用;
判断模块,用于基于所述当前应用的依赖信息,确定所述当前应用所依赖的一个或多个应用是否已经部署成功;
部署模块,用于如果是,则部署所述当前应用;
所述应用定义还包括该应用的部署文件信息,所述部署文件信息包括用于描述该应用在应用部署时所需要的资源的文件;部署模块在部署所述当前应用时,用于调用与当前应用的部署文件信息所对应的工具接口安装所述当前应用的用于描述该当前应用在应用部署时所需要的资源的文件,并生成所述当前应用的应用实例的记录;
所述应用定义还包括该应用的Chart文件;部署模块还用于调用Helm接口安装所述当前应用的Chart文件,并生成所述当前应用的应用实例记录;
部署模块在部署所述当前应用时,用于判断所述当前应用是否存在对应的应用实例;若所述当前应用不存在对应的应用实例,则执行调用与用于描述当前应用在应用部署时所需要的资源的文件所对应的工具接口安装所述当前应用的用于描述该当前应用在应用部署时所需要的资源的文件,并生成所述当前应用的应用实例的记录的步骤;若所述当前应用存在对应的应用实例,则确定所述当前应用的部署状态。
7.根据权利要求6所述的装置,其特征在于,所述判断模块在基于所述当前应用的依赖信息,确定所述当前应用所依赖的一个或多个应用是否已经部署成功时,用于基于所述当前应用的依赖信息,判断所述当前应用是否存在所依赖的一个或多个应用;若所述当前应用存在所依赖的一个或多个应用,确定所述当前应用所依赖的一个或多个应用是否已经部署成功。
8.根据权利要求7所述的装置,其特征在于,所述部署模块用于若所述当前应用不存在任何所依赖的应用时,部署所述当前应用。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括标记模块,用于如果当前应用所依赖的一个或多个应用部署失败,将所述服务的部署状态标识为部署失败。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括生成模块,用于基于所述多个应用的应用定义生成有向无环图。
11.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至5任一项所述的方法的步骤。
12.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1至5任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010414849.9A CN111596927B (zh) | 2020-05-15 | 2020-05-15 | 服务部署方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010414849.9A CN111596927B (zh) | 2020-05-15 | 2020-05-15 | 服务部署方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111596927A CN111596927A (zh) | 2020-08-28 |
CN111596927B true CN111596927B (zh) | 2023-08-18 |
Family
ID=72182512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010414849.9A Active CN111596927B (zh) | 2020-05-15 | 2020-05-15 | 服务部署方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111596927B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238763A (zh) * | 2021-05-17 | 2021-08-10 | 京东数字科技控股股份有限公司 | 应用部署的方法、设备、存储介质及程序产品 |
CN113504972A (zh) * | 2021-07-26 | 2021-10-15 | 京东科技控股股份有限公司 | 一种服务部署方法及装置、电子设备和存储介质 |
CN113885956B (zh) * | 2021-09-29 | 2023-08-29 | 北京百度网讯科技有限公司 | 服务部署方法及装置、电子设备和存储介质 |
CN115190010B (zh) * | 2022-07-01 | 2023-04-07 | 北京友友天宇***技术有限公司 | 基于软件服务依赖关系的分布推荐方法和装置 |
CN117608810B (zh) * | 2024-01-18 | 2024-04-30 | 腾讯科技(深圳)有限公司 | 服务处理方法、装置、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487912A (zh) * | 2016-10-26 | 2017-03-08 | 北京荣之联科技股份有限公司 | 多服务应用的管理与发布方法及装置 |
CN108762769A (zh) * | 2018-06-04 | 2018-11-06 | 万惠投资管理有限公司 | 微服务应用编排和部署方法、装置及计算机终端 |
WO2019076369A1 (zh) * | 2017-10-19 | 2019-04-25 | 北京金山云网络技术有限公司 | 一种云平台部署方法、装置、电子设备及可读存储介质 |
CN109933337A (zh) * | 2019-03-25 | 2019-06-25 | 北京易链天下技术服务有限公司 | 一种单机多服务的一键部署策略方法 |
CN110276199A (zh) * | 2019-06-25 | 2019-09-24 | 中国—东盟信息港股份有限公司 | 一种Kubernetes云原生应用的动态安全检测方法 |
CN110391938A (zh) * | 2019-07-26 | 2019-10-29 | 北京百度网讯科技有限公司 | 用于部署服务的方法和装置 |
CN110515628A (zh) * | 2019-08-09 | 2019-11-29 | 济南浪潮数据技术有限公司 | 应用部署方法及装置 |
CN111090437A (zh) * | 2019-11-19 | 2020-05-01 | 平安科技(深圳)有限公司 | 应用部署方法、装置及计算机可读存储介质 |
CN111142881A (zh) * | 2019-12-27 | 2020-05-12 | 浪潮云信息技术有限公司 | 一种基于kubernetes的编排charts自动化部署的***及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791073B (zh) * | 2014-12-23 | 2019-07-19 | 华为技术有限公司 | 一种虚拟化网络中业务部署的方法和装置 |
US10942719B2 (en) * | 2018-05-15 | 2021-03-09 | Ingram Micro Inc. | System and method for connector development and integration channel development |
-
2020
- 2020-05-15 CN CN202010414849.9A patent/CN111596927B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487912A (zh) * | 2016-10-26 | 2017-03-08 | 北京荣之联科技股份有限公司 | 多服务应用的管理与发布方法及装置 |
WO2019076369A1 (zh) * | 2017-10-19 | 2019-04-25 | 北京金山云网络技术有限公司 | 一种云平台部署方法、装置、电子设备及可读存储介质 |
CN108762769A (zh) * | 2018-06-04 | 2018-11-06 | 万惠投资管理有限公司 | 微服务应用编排和部署方法、装置及计算机终端 |
CN109933337A (zh) * | 2019-03-25 | 2019-06-25 | 北京易链天下技术服务有限公司 | 一种单机多服务的一键部署策略方法 |
CN110276199A (zh) * | 2019-06-25 | 2019-09-24 | 中国—东盟信息港股份有限公司 | 一种Kubernetes云原生应用的动态安全检测方法 |
CN110391938A (zh) * | 2019-07-26 | 2019-10-29 | 北京百度网讯科技有限公司 | 用于部署服务的方法和装置 |
CN110515628A (zh) * | 2019-08-09 | 2019-11-29 | 济南浪潮数据技术有限公司 | 应用部署方法及装置 |
CN111090437A (zh) * | 2019-11-19 | 2020-05-01 | 平安科技(深圳)有限公司 | 应用部署方法、装置及计算机可读存储介质 |
CN111142881A (zh) * | 2019-12-27 | 2020-05-12 | 浪潮云信息技术有限公司 | 一种基于kubernetes的编排charts自动化部署的***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111596927A (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111596927B (zh) | 服务部署方法、装置及电子设备 | |
US11593149B2 (en) | Unified resource management for containers and virtual machines | |
CN108614726B (zh) | 虚拟机创建方法及装置 | |
US20150242200A1 (en) | Re-configuration in cloud computing environments | |
CN108255707B (zh) | 测试用例的开发角色创建方法、装置、设备及存储介质 | |
CN107203465B (zh) | ***接口测试方法及装置 | |
US20170048008A1 (en) | Method and apparatus for verification of network service in network function virtualization environment | |
CN111897633A (zh) | 一种任务处理的方法和装置 | |
US20230153158A1 (en) | Method, apparatus, system, and storage medium for performing eda task | |
CN110058894B (zh) | 在混合云中执行应用的方法、设备和计算机程序产品 | |
CN111176818A (zh) | 分布式预测的方法、装置、***、电子设备及存储介质 | |
CN108809683B (zh) | 部署云应用***的方法及装置 | |
US9141363B2 (en) | Application construction for execution on diverse computing infrastructures | |
CN111124871A (zh) | 接口测试方法及装置 | |
KR20200046078A (ko) | 미디어 아이템들에 대해 커스텀 알고리즘들을 실행하기 위한 스케일러블 기술들 | |
CN113051245A (zh) | 用于迁移数据的方法、装置及*** | |
WO2019117767A1 (en) | Method, function manager and arrangement for handling function calls | |
CN104700255B (zh) | 多进程处理方法、装置和*** | |
CN111767126A (zh) | 分布式批量处理的***和方法 | |
US10255155B2 (en) | Scheduler | |
CN115794384A (zh) | 代码编译任务分配方法、装置、设备及存储介质 | |
CN114791884A (zh) | 测试环境的构建方法、装置、存储介质及电子设备 | |
CN107291439B (zh) | 一种目标增量数据构建方法及装置 | |
CN111198689B (zh) | 一种代码执行方法、装置及计算机可读存储介质 | |
CN110806895A (zh) | 一种项目创建方法、装置及计算机可读存储介质 |
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 |