CN115576565A - 应用程序的部署方法、装置、电子设备及存储介质 - Google Patents
应用程序的部署方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115576565A CN115576565A CN202211052770.1A CN202211052770A CN115576565A CN 115576565 A CN115576565 A CN 115576565A CN 202211052770 A CN202211052770 A CN 202211052770A CN 115576565 A CN115576565 A CN 115576565A
- Authority
- CN
- China
- Prior art keywords
- application
- engine
- deployment
- information
- engines
- 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.)
- Pending
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
技术领域
本公开涉及计算机技术领域,尤其涉及一种应用程序的部署方法、装置、电子设备及存储介质。
背景技术
现有技术中,在云应用平台(例如Kubernetes等)部署应用程序时,用户需要提前将应用程序构造成容器,一般为Docker容器,然后将容器部署于容器组(Pod)中,来实现应用程序的部署。
由于现有技术部署应用程序前需要将应用程序构建成容器,流程较为复杂,部署难度较大,并且,每个容器都需要固定占用一定的CPU和内存资源,对于不需要被构建成容器来进行部署的应用程序而言,现有技术浪费了较多的资源。
发明内容
本公开提出一种应用程序的部署方法、装置、电子设备及存储介质,解决了现有技术中部署流程较为复杂,部署难度较大,浪费了较多的资源的问题。
本公开第一方面实施例提出了一种应用程序的部署方法,包括:获取应用部署声明,其中,所述应用部署声明包括应用标识信息和应用引擎条件信息;基于所述应用标识信息,确定待部署的目标应用程序;基于所述应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将所述目标应用程序部署于所述目标应用引擎中。
本公开实施例的应用程序的部署方法,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息,基于应用标识信息,确定待部署的目标应用程序,基于应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将目标应用程序部署于目标应用引擎中。本公开实施例能够根据应用部署声明,将不需要被构建成容器来进行部署的应用程序直接部署于应用引擎中,部署流程简单,部署难度较低,且能够节省资源。
本公开第二方面实施例提出一种应用程序的部署装置,包括:获取模块,用于获取应用部署声明,其中,所述应用部署声明包括应用标识信息和应用引擎条件信息;确定模块,用于基于所述应用标识信息,确定待部署的目标应用程序;部署模块,用于基于所述应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将所述目标应用程序部署于所述目标应用引擎中。
本公开第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述第一方面实施例的应用程序的部署方法。
本公开第四方面实施例提出了一种存储有计算机指令的计算机可读存储介质,所述计算机指令用于使所述计算机执行如上述第一方面实施例的应用程序的部署方法。
本公开第五方面实施例提出了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本公开第一方面实施例的应用程序的部署方法。
本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本公开一实施例提供的应用程序的部署方法的流程示意图;
图2为本公开另一实施例提供的应用程序的部署方法的流程示意图;
图3为本公开另一实施例提供的应用程序的部署方法的流程示意图;
图4为本公开另一实施例提供的应用程序的部署方法的流程示意图;
图5为本公开另一实施例提供的应用程序的部署方法的流程示意图;
图6为本公开另一实施例提供的应用程序的部署方法的流程示意图;
图7为本公开另一实施例提供的应用程序的部署方法的流程示意图;
图8为本公开提供的应用程序的部署方法的应用实例图;
图9为本公开另一实施例提供的应用程序的部署装置的结构示意图;
图10为本公开一实施例提供的电子设备的框图。
具体实施方式
下面详细描述本公开的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
下面参考附图描述本公开实施例的应用程序的部署方法、装置、电子设备及存储介质。
图1为本公开一实施例提供的应用程序的部署方法的流程示意图。需要说明的是,本公开实施例的应用程序的部署方法的执行主体为应用程序的部署装置,应用程序的部署装置具体可以为硬件设备,或者硬件设备中的软件等。其中,硬件设备例如终端设备、服务器等。
如图1所示,该方法包含以下步骤:
S101,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息。
需要说明的是,本公开实施例的应用程序的部署方法适用于不需要被构建成容器来来进行部署的应用程序,即适用于需要直接部署于应用引擎上的应用程序。
为了便于说明,下面以Kubernetes云应用平台上的应用程序部署为例对本公开实施例提出的应用程序的部署方法进行解释说明。
Kubernetes:简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的作用是让部署容器化的应用简单并且高效,Kubernetes提供了一种应用部署、规划、更新、维护的机制。
本公开实施例中的应用引擎包括但不限于Tomat(一种服务程序(Server Applet,Servlet)容器)、Jetty(一种Servlet容器)、开放服务器网关(Open Service GatewayInitiative,OSGI)容器、低代码应用引擎等,其中,每个应用引擎关联着一个pod,也可以直接将pod作为应用引擎,此处不做任何限定。
用户可以在K8s平台的应用部署控制台和/或命令行上创建应用部署声明,并提交该应用部署声明。
应用部署控制台和/或命令行可以是基于全球广域网(World Wide Web,Web)的界面,也可以是自定义命令行,还可以是基于kubectl的命令行(kubectl是K8s平台上的命令行工具)。
应用标识信息包括但不限于应用程序的身份标识(Identity document,ID)和名称等信息。
应用引擎条件信息包括但不限于环境配置信息、引擎版本信息和引擎类型信息等。
S102,基于应用标识信息,确定待部署的目标应用程序。
从候选应用程序中,查找与应用标识信息相匹配的应用程序作为目标应用程序。
需要说明的是,本公开实施例中的应用程序为不需要被构建成容器,直接部署于应用引擎上的应用程序。
S103,基于应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将目标应用程序部署于目标应用引擎中。
从已部署的候选应用引擎中,确定与应用引擎条件信息匹配的应用引擎作为目标应用引擎,然后将目标应用程序部署于目标应用引擎中。
作为一种可能的情况,如果候选应用引擎中不存在与应用引擎条件信息匹配的应用引擎,则可以根据该应用引擎条件信息创建新的应用引擎,作为目标应用引擎,然后将目标应用程序部署于该目标应用引擎中。
本公开实施例中,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息,基于应用标识信息,确定待部署的目标应用程序,基于应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将目标应用程序部署于目标应用引擎中。本公开实施例能够根据应用部署声明,将不需要被构建成容器来进行部署的应用程序直接部署于应用引擎中,部署流程简单,部署难度较低,且能够节省资源。
图2为本公开一实施例提供的应用程序的部署方法的流程示意图。如图2所示,该方法包含以下步骤:
S201,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息。
其中,应用引擎条件信息包括环境配置信息、引擎版本信息和引擎类型信息
S202,基于应用标识信息,确定待部署的目标应用程序。
步骤S201-S202的具体介绍可参见上述实施例中相关内容的记载,此处不再赘述。
S203,根据环境配置信息、引擎版本信息和引擎类型信息,从候选应用引擎中筛选满足应用部署条件的应用引擎。
环境配置信息包括应用程序的环境变量、日志级别配置、CPU核数和内存大小等信息。
引擎版本信息包括应用引擎支持的最低应用版本信息。
可选地,从候选应用引擎中,确定与环境配置信息匹配的第一候选应用引擎,从第一候选应用引擎中,确定与应用引擎版本信息匹配的第二候选应用引擎,从第二候选应用引擎中,确定与应用引擎类型信息匹配的第三候选应用引擎,确定第三候选应用引擎为满足应用部署条件的应用引擎。
S204,从满足应用部署条件的应用引擎中确定目标应用引擎。
可选地,获取满足应用部署条件的应用引擎的负载量,从满足应用部署条件的应用引擎中,确定负载量最小的应用引擎为目标应用引擎。
其中,负载量为应用引擎上运行的有效应用程序的数量。
S205,将目标应用程序部署于目标应用引擎中。
在确定目标应用程序和目标应用引擎后,将目标应用程序部署于目标应用引擎中。
本公开实施例中,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息,基于应用标识信息,确定待部署的目标应用程序,根据环境配置信息、引擎版本信息和引擎类型信息,从候选应用引擎中筛选满足应用部署条件的应用引擎,从满足应用部署条件的应用引擎中确定目标应用引擎,将目标应用程序部署于目标应用引擎中。本公开实施例能够根据应用部署声明,将不需要被构建成容器来进行部署的应用程序直接部署于应用引擎中,部署流程简单,部署难度较低,且能够节省资源。
图3为本公开一实施例提供的应用程序的部署方法的流程示意图。如图3所示,该方法包含以下步骤:
S301,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息。
其中,应用引擎条件信息包括环境配置信息、引擎版本信息和引擎类型信息
S302,基于应用标识信息,确定待部署的目标应用程序。
S303,根据环境配置信息、引擎版本信息和引擎类型信息,从候选应用引擎中筛选满足应用部署条件的应用引擎。
步骤S301-S303的具体介绍可参见上述实施例中相关内容的记载,此处不再赘述。
S304,响应于候选应用引擎中未存在满足应用部署条件的应用引擎,则根据环境配置信息、引擎版本信息和引擎类型信息,创建目标应用引擎。
在候选应用引擎中未存在满足应用部署条件的应用引擎时,根据环境配置信息、引擎版本信息和引擎类型信息,创建目标应用引擎。
可选地,从未部署的候选应用引擎中获取与引擎版本信息和引擎类型信息匹配的第四候选应用引擎,按照环境配置信息对第四候选应用引擎进行配置,得到目标应用引擎。
需要说明的是,未部署的候选应用引擎可以预先存放于应用部署平台的引擎池中,以从引擎池中获取该候选应用引擎。
S305,将目标应用程序部署于目标应用引擎中。
在目标应用引擎创建完成后,将已确定的目标应用程序部署于目标应用引擎中。
本公开实施例中,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息,基于应用标识信息,确定待部署的目标应用程序,根据环境配置信息、引擎版本信息和引擎类型信息,从候选应用引擎中筛选满足应用部署条件的应用引擎,响应于候选应用引擎中未存在满足应用部署条件的应用引擎,则根据环境配置信息、引擎版本信息和引擎类型信息,创建目标应用引擎,将目标应用程序部署于目标应用引擎中。本公开实施例中,在已部署的应用引擎中不存在满足应用部署条件的应用引擎时,可以主动创建满足部署条件的应用引擎对声明需要部署的应用程序进行部署,保证了应用程序的正常部署。
图4为本公开一实施例提供的应用程序的部署方法的流程示意图。如图4所示,该方法包含以下步骤:
S401,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息。
应用引擎条件信息包括环境配置信息、引擎版本信息和引擎类型信息。
应用部署声明还包括应用程序的部署版本和每个版本下应用程序的应用部署数量。
S402,基于应用标识信息,确定待部署的目标应用程序。
S403,根据环境配置信息、引擎版本信息和引擎类型信息,从候选应用引擎中筛选满足应用部署条件的应用引擎。
步骤S401-S403的具体介绍可参见上述实施例中相关内容的记载,此处不再赘述。
S404,基于部署版本和应用部署数量,确定应用程序的总部署数量,并作为目标应用引擎的第一数量。
可选地,可以采用灰度发布的方式部署应用程序,即一次在应用部署声明中声明应用程序的多个部署版本,以及每个版本下应用程序的应用部署数量,以一次部署多个版本的应用程序。
根据应用部署声明中部署版本和应用部署数量,计算出应用程序的总部署数量,即目标应用程序程序的总部署数量,并将该总部署数量作为目标应用引擎的第一数量。其中,每个目标应用引擎部署一个目标应用程序。
S405,获取满足应用部署条件的应用引擎的第二数量。
S406,响应于第一数量大于第二数量,则获取第一数量与第二数量之间的数量差值。
S407,根据环境配置信息、引擎版本信息和引擎类型信息,创建数量差值对应数量的满足应用部署条件的应用引擎。
S408,将所有满足应用部署条件的应用引擎作为目标应用引擎。
在获取目标应用引擎的第一数量和满足应用部署条件的应用引擎的第二数量之后,如果第一数量大于第二数量,则说明应用部署平台上可用于部署目标应用程序的应用引擎不足,此时,需要获取第一数量与第二数量之间的数量差值,以根据环境配置信息、引擎版本信息和引擎类型信息,创建数量差值对应数量的满足应用部署条件的应用引擎,创建完成之后,将所有满足应用部署条件的应用引擎作为目标应用引擎。
S409,响应于第一数量小于或等于第二数量,则基于负载量,从满足应用部署条件的应用引擎中,确定第二数量对应数量的应用引擎为目标应用引擎。
在获取目标应用引擎的第一数量和满足应用部署条件的应用引擎的第二数量之后,如果第一数量小于或等于第二数量,则说明应用部署平台上可用于部署目标应用程序的应用引擎充足,此时,可以根据负载量从小到大的顺序,从满足应用部署条件的应用引擎中依次确定目标应用引擎。
S410,将目标应用程序部署于目标应用引擎。
在确定目标应用程序和目标应用引擎后,将目标应用程序部署于目标应用引擎中。
本公开实施例中,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息,基于应用标识信息,确定待部署的目标应用程序,根据环境配置信息、引擎版本信息和引擎类型信息,从候选应用引擎中筛选满足应用部署条件的应用引擎,基于部署版本和应用部署数量,确定应用程序的总部署数量,并作为目标应用引擎的第一数量,获取满足应用部署条件的应用引擎的第二数量,响应于第一数量大于第二数量,则获取第一数量与第二数量之间的数量差值,根据环境配置信息、引擎版本信息和引擎类型信息,创建数量差值对应数量的满足应用部署条件的应用引擎,将所有满足应用部署条件的应用引擎作为目标应用引擎,响应于第一数量小于或等于第二数量,则基于负载量,从满足应用部署条件的应用引擎中,确定第二数量对应数量的应用引擎为目标应用引擎,将目标应用程序部署于目标应用引擎。本公开实施例中,在应用部署声明中声明了应用程序的多个部署版本时,可以对应用程序进行多个版本的部署,实现了应用程序的多版本部署,提高部署效率。
图5为本公开一实施例提供的应用程序的部署方法的流程示意图。如图5所示,该方法包含以下步骤:
S501,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息。
S502,基于应用标识信息,确定待部署的目标应用程序。
S503,基于应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将目标应用程序部署于目标应用引擎中。
步骤S501-S503的具体介绍可参见上述实施例中相关内容的记载,此处不再赘述。
S504,获取目标应用引擎的第一状态信息。
其中,第一状态信息用于反映目标应用引擎的工作状态。
S505,根据第一状态信息,确定目标应用引擎是否出现异常。
S506,响应于目标应用引擎出现异常,从候选应用引擎中,重新确定目标应用引擎,并将目标应用程序部署于目标应用引擎中。
在将目标应用程序部署于目标应用程序中后,可以获取目标应用引擎的第一状态信息,根据该第一状态信息,确定目标应用引擎是否出现异常,在目标应用引擎出现异常时,从候选应用引擎中,重新确定目标应用引擎,并将目标应用程序部署于目标应用引擎中。
需要说明的是,从候选应用引擎中,重新确定目标应用引擎的具体过程,可以参见上述实施例中相关内容的记载,此处不再赘述。
从候选应用引擎中,重新确定目标应用引擎之前,还包括:删除之前确定的目标应用引擎。
进一步地,还可以获取每个已部署的应用引擎的第一状态信息,在该第一状态信息指示该应用引擎出现异常时,删除该应用引擎,并将该删除的应用引擎上的应用程序重新部署到其他已部署的应用引擎中,或者重新创建应用引擎,将删除的应用引擎上的应用程序部署到新创建的应用引擎中。
本公开实施例中,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息,基于应用标识信息,确定待部署的目标应用程序,基于应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将目标应用程序部署于目标应用引擎中,获取目标应用引擎的第一状态信息,根据第一状态信息,确定目标应用引擎是否出现异常,响应于目标应用引擎出现异常,从候选应用引擎中,重新确定目标应用引擎,并将目标应用程序部署于目标应用引擎中。本公开实施例中,在已部署的应用引擎出现异常时,可以将该应用引擎上的应用程序调度到其他应用引擎上进行部署,以保证应用程序的正常运行。
图6为本公开一实施例提供的应用程序的部署方法的流程示意图。如图6所示,该方法包含以下步骤:
S601,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息。
S602,基于应用标识信息,确定待部署的目标应用程序。
S603,基于应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将目标应用程序部署于目标应用引擎中。
步骤S601-S606的具体介绍可参见上述实施例中相关内容的记载,此处不再赘述。
S604,获取目标应用程序的第二状态信息。
其中,第二状态信息用于反映目标应用程序的运行状态。
S605,根据第二状态信息,确定目标应用程序是否为有效应用程序。
S606,响应于目标应用程序为无效应用程序,则从目标应用引擎中卸载目标应用程序。
在将目标应用程序部署于目标应用程序中后,可以获取目标应用程序的第二状态信息,并根据该第二状态信息,确定目标应用程序是否为有效应用程序,若目标应用程序为无效应用程序,则从目标应用引擎中卸载目标应用程序。
进一步地,可以获取每个已部署的应用程序上每个应用程序的第二状态信息,若该第二状态信息指示应用程序为无效应用程序,则卸载该无效应用应用程序。
本公开实施例中,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息,基于应用标识信息,确定待部署的目标应用程序,基于应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将目标应用程序部署于目标应用引擎中,获取目标应用程序的第二状态信息,根据第二状态信息,确定目标应用程序是否为有效应用程序,响应于目标应用程序为无效应用程序,则从目标应用引擎中卸载目标应用程序。本公开实施例可以卸载应用引擎上的无效应用程序,从而节省资源。
图7为本公开一实施例提供的应用程序的部署方法的流程示意图。如图7所示,该方法包含以下步骤:
S701,获取每个候选应用引擎的负载信息。
S702,根据负载信息,从候选应用引擎中确定未存在有效应用程序的第五候选应用引擎。
S703,删除第五候选应用引擎。
可以获取每个已部署的候选应用引擎的负载信息,并根据负载信息,从候选应用引擎中确定未存在有效应用程序的应用引擎为第五候选应用引擎,并删除该第五候选应用引擎。
本公开实施例中,获取每个候选应用引擎的负载信息,根据负载信息,从候选应用引擎中确定未存在有效应用程序的第五候选应用引擎,删除第五候选应用引擎。本公开实施例可以将未存在有效应用程序的已部署应用引擎删除,从而节省资源。
图8为本公开实施例的应用程序的部署方法的应用于K8s平台的实例图,下面结合图8对本公开实施例的应用程序的部署方法进行解释说明。
如图8所示,用户可以通过应用部署控制台/命令行创建应用部署声明,并进行提交,以Java语言为例对应用部署声明的格式进行示例性说明,如下:
K8s平台将用户提交的应用部署声明保存为ConfigMap资源,应用调度与引擎控制器监测到ConfigMap资源更新时,可以根据ConfigMap资源为声明的待部署应用程序分配应用引擎,并将需要部署的应用程序部署到分配的应用引擎中。如果已部署的应用引擎不能够满足应用部署声明的要求,则应用调度与引擎控制器通过部署调度配置根据声明的配置需求来创建新的应用引擎,用于部署声明的待部署应用程序。
应用调度与引擎控制器还可以监测已部署的应用引擎上的应用程序是否为有效应用程序,以删除应用引擎上的无效应用程序,如果该应用引擎上不存在有效应用程序,则删除该应用引擎,然后将该应用引擎上的应用程序调度到其他已部署的应用引擎上进行部署,或者,创建新的应用引擎来部署该声明的待部署应用程序。
为了实现上述实施例,本公开实施例还提出一种应用程序的部署装置。图9为本公开一实施例的应用程序的部署装置的结构示意图。如图9所示,应用程序的部署装置900包括:
获取模块910,用于获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息;
确定模块920,用于基于应用标识信息,确定待部署的目标应用程序;
部署模块930,用于基于应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将目标应用程序部署于目标应用引擎中。
在本公开的一个实施例中,应用引擎条件信息包括环境配置信息、引擎版本信息和引擎类型信息,部署模块930,还用于根据环境配置信息、引擎版本信息和引擎类型信息,从候选应用引擎中筛选满足应用部署条件的应用引擎;从满足应用部署条件的应用引擎中确定目标应用引擎。
在本公开的一个实施例中,部署模块930,还用于从候选应用引擎中,确定与环境配置信息匹配的第一候选应用引擎;从第一候选应用引擎中,确定与应用引擎版本信息匹配的第二候选应用引擎;从第二候选应用引擎中,确定与应用引擎类型信息匹配的第三候选应用引擎;确定第三候选应用引擎为满足应用部署条件的应用引擎。
在本公开的一个实施例中,从满足应用部署条件的应用引擎中确定目标应用引擎,包括:获取满足应用部署条件的应用引擎的负载量;从满足应用部署条件的应用引擎中,确定负载量最小的应用引擎为目标应用引擎。
在本公开的一个实施例中,应用程序的部署装置900还包括:创建模块,用于响应于候选应用引擎中未存在满足应用部署条件的应用引擎,则根据环境配置信息、引擎版本信息和引擎类型信息,创建目标应用引擎。
在本公开的一个实施例中,创建模块,还用于从未部署的候选应用引擎中获取与引擎版本信息和引擎类型信息匹配的第四候选应用引擎;按照环境配置信息对第四候选应用引擎进行配置,得到目标应用引擎。
在本公开的一个实施例中,应用部署声明包括应用程序的部署版本和每个版本下应用程序的应用部署数量,创建模块,还用于基于部署版本和应用部署数量,确定应用程序的总部署数量,并作为目标应用引擎的第一数量;获取满足应用部署条件的应用引擎的第二数量;响应于第一数量大于第二数量,则获取第一数量与第二数量之间的数量差值;根据环境配置信息、引擎版本信息和引擎类型信息,创建数量差值对应数量的满足应用部署条件的应用引擎;将所有满足应用部署条件的应用引擎作为目标应用引擎,响应于第一数量小于或等于第二数量,则基于负载量,从满足应用部署条件的应用引擎中,确定第二数量对应数量的应用引擎为目标应用引擎,将目标应用程序部署于目标应用引擎。
在本公开的一个实施例中,部署模块930还用于获取目标应用引擎的第一状态信息;根据第一状态信息,确定目标应用引擎是否出现异常;响应于目标应用引擎出现异常,从候选应用引擎中,重新确定目标应用引擎,并将目标应用程序部署于目标应用引擎中。
在本公开的一个实施例中,部署模块930还用于:从候选应用引擎中,重新确定目标应用引擎之前,删除之前确定的目标应用引擎。
在本公开的一个实施例中,应用程序的部署装置900还包括卸载模块,用于将目标应用程序部署于第一目标应用引擎中之后,获取目标应用程序的第二状态信息;根据第二状态信息,确定目标应用程序是否为有效应用程序;响应于目标应用程序为无效应用程序,则从目标应用引擎中卸载目标应用程序。
在本公开的一个实施例中,应用程序的部署装置900还包括删除模块,用于获取每个候选应用引擎的负载信息;根据负载信息,从候选应用引擎中确定未存在有效应用程序的第五候选应用引擎;删除第五候选应用引擎。
需要说明的是,上述对应用程序的部署方法实施例的解释说明,也适用于本公开实施例的应用程序的部署装置,具体过程此处不再赘述。
本公开实施例中,获取应用部署声明,其中,应用部署声明包括应用标识信息和应用引擎条件信息,基于应用标识信息,确定待部署的目标应用程序,基于应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将目标应用程序部署于目标应用引擎中。本公开实施例能够根据应用部署声明,将不需要被构建成容器来进行部署的应用程序直接部署于应用引擎中,部署流程简单,部署难度较低,且能够节省资源。
如图10所示,是根据本公开实施例的应用程序的部署方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,智能语音交互设备、个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,该电子设备包括:一个或多个处理器1001、存储器1002,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器1001可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器1001为例。
存储器1002即为本公开所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本公开所提供的应用程序的部署方法。本公开的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的应用程序的部署方法。
存储器1002作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本公开实施例中的应用程序的部署方法对应的程序指令/模块。处理器1001通过运行存储在存储器1002中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的应用程序的部署方法。
存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据应用程序的部署方法的电子设备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1002可选包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至应用程序的部署方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
应用程序的部署方法的电子设备还可以包括:输入装置1003和输出装置1004。处理器1001、存储器1002、输入装置1003和输出装置1004可以通过总线或者其他方式连接,图10中以通过总线连接为例。
输入装置1003可接收输入的数字或字符信息,以及产生与应用程序的部署方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1004可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
为了实现上述实施例,本公开还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开前述实施例提出的应用程序的部署方法。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
在本说明书的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (15)
1.一种应用程序的部署方法,其特征在于,包括:
获取应用部署声明,其中,所述应用部署声明包括应用标识信息和应用引擎条件信息;
基于所述应用标识信息,确定待部署的目标应用程序;
基于所述应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将所述目标应用程序部署于所述目标应用引擎中。
2.根据权利要求1所述的方法,其特征在于,所述应用引擎条件信息包括环境配置信息、引擎版本信息和引擎类型信息,所述基于所述应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,包括:
根据所述环境配置信息、所述引擎版本信息和所述引擎类型信息,从所述候选应用引擎中筛选满足应用部署条件的应用引擎;
从所述满足应用部署条件的应用引擎中确定所述目标应用引擎。
3.根据权利要求2所述的方法,其特征在于,所述根据所述环境配置信息、所述引擎版本信息和所述引擎类型信息,从所述候选应用引擎中确定满足部署条件的应用引擎,包括:
从所述候选应用引擎中,确定与所述环境配置信息匹配的第一候选应用引擎;
从所述第一候选应用引擎中,确定与所述应用引擎版本信息匹配的第二候选应用引擎;
从所述第二候选应用引擎中,确定与所述应用引擎类型信息匹配的第三候选应用引擎;
确定所述第三候选应用引擎为所述满足应用部署条件的应用引擎。
4.根据权利要求2所述的方法,其特征在于,所述从所述满足应用部署条件的应用引擎中确定所述目标应用引擎,包括:
获取所述满足应用部署条件的应用引擎的负载量;
从所述满足应用部署条件的应用引擎中,确定负载量最小的应用引擎为所述目标应用引擎。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述候选应用引擎中未存在满足所述应用部署条件的应用引擎,则根据所述环境配置信息、所述引擎版本信息和所述引擎类型信息,创建所述目标应用引擎。
6.根据权利要求5所述的方法,其特征在于,所述根据所述环境配置信息、所述引擎版本信息和所述引擎类型信息,创建所述目标应用引擎,包括:
从未部署的候选应用引擎中获取与所述引擎版本信息和所述引擎类型信息匹配的第四候选应用引擎;
按照所述环境配置信息对所述第四候选应用引擎进行配置,得到所述目标应用引擎。
7.根据权利要求5所述的方法,其特征在于,所述应用部署声明包括所述应用程序的部署版本和每个版本下应用程序的应用部署数量,所述方法还包括:
基于所述部署版本和所述应用部署数量,确定所述应用程序的总部署数量,并作为所述目标应用引擎的第一数量;
获取所述满足应用部署条件的应用引擎的第二数量;
响应于所述第一数量大于所述第二数量,则获取所述第一数量与所述第二数量之间的数量差值;
根据所述环境配置信息、所述引擎版本信息和所述引擎类型信息,创建所述数量差值对应数量的满足应用部署条件的应用引擎;
将所有满足应用部署条件的应用引擎作为所述目标应用引擎;
响应于所述第一数量小于或等于所述第二数量,则基于负载量,从所述满足应用部署条件的应用引擎中,确定所述第二数量对应数量的应用引擎为所述目标应用引擎。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
获取所述目标应用引擎的第一状态信息;
根据所述第一状态信息,确定所述目标应用引擎是否出现异常;
响应于所述目标应用引擎出现异常,从所述候选应用引擎中,重新确定所述目标应用引擎,并将所述目标应用程序部署于所述目标应用引擎中。
9.根据权利要求8所述的方法,其特征在于,所述从所述候选应用引擎中,重新确定所述目标应用引擎之前,还包括:
删除之前确定的所述目标应用引擎。
10.根据权利要求1-7中任一项所述的方法,其特征在于,所述将所述目标应用程序部署于所述第一目标应用引擎中之后,还包括:
获取所述目标应用程序的第二状态信息;
根据所述第二状态信息,确定所述目标应用程序是否为有效应用程序;
响应于所述目标应用程序为无效应用程序,则从所述目标应用引擎中卸载所述目标应用程序。
11.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
获取每个所述候选应用引擎的负载信息;
根据所述负载信息,从所述候选应用引擎中确定未存在有效应用程序的第五候选应用引擎;
删除所述第五候选应用引擎。
12.一种应用程序的部署装置,其特征在于,包括:
获取模块,用于获取应用部署声明,其中,所述应用部署声明包括应用标识信息和应用引擎条件信息;
确定模块,用于基于所述应用标识信息,确定待部署的目标应用程序;
部署模块,用于基于所述应用引擎条件信息,从已部署的候选应用引擎中确定目标应用引擎,并将所述目标应用程序部署于所述目标应用引擎中。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-11中任一项所述的方法。
14.一种存储有计算机指令的计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行如权利要求1-11中任一项所述的方法。
15.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211052770.1A CN115576565A (zh) | 2022-08-30 | 2022-08-30 | 应用程序的部署方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211052770.1A CN115576565A (zh) | 2022-08-30 | 2022-08-30 | 应用程序的部署方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115576565A true CN115576565A (zh) | 2023-01-06 |
Family
ID=84579402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211052770.1A Pending CN115576565A (zh) | 2022-08-30 | 2022-08-30 | 应用程序的部署方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115576565A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116579914A (zh) * | 2023-07-14 | 2023-08-11 | 南京砺算科技有限公司 | 一种图形处理器引擎执行方法、装置、电子设备及存储介质 |
-
2022
- 2022-08-30 CN CN202211052770.1A patent/CN115576565A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116579914A (zh) * | 2023-07-14 | 2023-08-11 | 南京砺算科技有限公司 | 一种图形处理器引擎执行方法、装置、电子设备及存储介质 |
CN116579914B (zh) * | 2023-07-14 | 2023-12-12 | 南京砺算科技有限公司 | 一种图形处理器引擎执行方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111258609B (zh) | Kubernetes集群的升级方法、装置、电子设备和介质 | |
US20210208951A1 (en) | Method and apparatus for sharing gpu, electronic device and readable storage medium | |
CN110780890B (zh) | 系统升级方法、装置、电子设备和介质 | |
CN110995480B (zh) | 区块链网络部署方法、装置、电子设备和介质 | |
US11663037B2 (en) | Service information processing method, apparatus, device and computer storage medium | |
US9397953B2 (en) | Operation managing method for computer system, computer system and computer-readable storage medium having program thereon | |
EP3869336A1 (en) | Method and apparatus for processing development machine operation task, device and storage medium | |
US20170249469A1 (en) | Accessing file systems in a virtual environment | |
CN111506401B (zh) | 自动驾驶仿真任务调度方法、装置、电子设备及存储介质 | |
CN110704162B (zh) | 物理机共享容器镜像的方法、装置、设备及存储介质 | |
CN113934464A (zh) | Linux系统中启动安卓应用的方法、装置和电子设备 | |
CN112565356B (zh) | 数据存储方法、装置以及电子设备 | |
CN113010342A (zh) | 运维诊断的方法、装置、设备以及存储介质 | |
CN115576565A (zh) | 应用程序的部署方法、装置、电子设备及存储介质 | |
CN111625195A (zh) | 用于服务器扩容的方法及装置 | |
CN110908675B (zh) | 运行环境获取方法、装置和电子设备 | |
JP2021131897A (ja) | スケジューリング方法、装置、設備、記憶設備、及びプログラム | |
CN112527451B (zh) | 容器资源池的管理方法、装置、设备以及存储介质 | |
CN114721686A (zh) | 配置数据更新方法、装置、电子设备和存储介质 | |
CN113051122B (zh) | 性能数据获取方法、装置、电子设备和介质 | |
CN114416276A (zh) | 设备管理服务的调度方法、装置、电子设备及存储介质 | |
CN113726902A (zh) | 微服务的调用方法及系统 | |
CN111966877A (zh) | 前端服务方法、装置、设备及存储介质 | |
CN113220576B (zh) | 测试环境的管理方法、装置、设备以及存储介质 | |
CN111614494B (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 |