CN110463162B - 应用部署方法、装置及系统 - Google Patents
应用部署方法、装置及系统 Download PDFInfo
- Publication number
- CN110463162B CN110463162B CN201780088614.1A CN201780088614A CN110463162B CN 110463162 B CN110463162 B CN 110463162B CN 201780088614 A CN201780088614 A CN 201780088614A CN 110463162 B CN110463162 B CN 110463162B
- Authority
- CN
- China
- Prior art keywords
- application
- resource
- deployment
- corresponding relationship
- registry
- 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
- 238000000034 method Methods 0.000 title claims abstract description 121
- 238000003860 storage Methods 0.000 claims abstract description 219
- 238000009434 installation Methods 0.000 claims description 64
- 230000004044 response Effects 0.000 claims description 42
- 230000009471 action Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 322
- 101100270004 Escherichia coli (strain K12) appX gene Proteins 0.000 description 66
- 230000008569 process Effects 0.000 description 32
- 238000013515 script Methods 0.000 description 24
- 238000012360 testing method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 238000011161 development Methods 0.000 description 13
- 238000004519 manufacturing process Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 230000010354 integration Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 5
- 210000001072 colon Anatomy 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Abstract
本申请公开了一种应用部署方法、装置及系统,涉及应用部署领域。方法包括:获取为部署装置分配的待部署应用的应用蓝图和资源索引,应用蓝图包括资源存储路径和可执行命令,资源索引包括资源获取地址;基于待部署应用的应用蓝图和资源索引,建立n组应用蓝图、资源索引和代理标识的对应关系,代理标识用于唯一标识部署装置,n为大于或等于1的整数;向部署装置发送部署命令,部署命令包括n组对应关系,部署命令用于指示部署装置通过每组对应关系中的资源获取地址获取应用资源,按照资源存储路径存储应用资源,并在存储应用资源后,执行可执行命令。本申请降低了应用部署的复杂度,提高了应用部署的效率。本申请用于应用部署。
Description
技术领域
本申请涉及云计算领域,特别涉及一种应用部署方法、装置及系统。
背景技术
应用部署指的是将打包好的应用资源,按一系列编排好的任务流程部署到指定服务器的过程,该过程包括代码打包、环境创建、上下文准备、资源拷贝、应用启动、运行配置、系统加固等过程。
目前的应用部署是面向流程的,相应的应用部署系统包括部署引擎、资源服务器和部署装置(英文:agent),部署引擎启动后加载任务脚本和存储在资源服务器中的应用资源。部署引擎在接收到人工或第三方触发的部署指令后,向部署装置发送任务脚本和应用资源,由部署装置基于该任务脚本和应用资源进行应用部署。
但是,由于在应用部署时,需要技术人员开发出相应的任务脚本,而任务脚本的编写复杂,编写周期较长,因此,导致应用部署的复杂度较高,部署效率较低。
发明内容
本申请提供了一种应用部署方法、装置及系统,可以解决应用部署的复杂度较高,部署效率较低的问题。该技术方案如下:
第一方面,提供一种应用部署方法,所述方法应用于注册中心,所述方法包括:
获取为部署装置分配的待部署应用的应用蓝图和资源索引,所述应用蓝图包括资源存储路径和可执行命令,所述资源索引包括资源获取地址;
基于所述待部署应用的应用蓝图和资源索引,建立n组所述应用蓝图、所述资源索引和代理标识的对应关系,所述代理标识用于唯一标识所述部署装置,所述n为大于或等于1的整数;
向所述部署装置发送部署命令,所述部署命令包括n组对应关系,所述部署命令用于指示所述部署装置通过每组所述对应关系中的所述资源获取地址获取应用资源,按照所述资源存储路径存储所述应用资源,并在存储所述应用资源后,执行所述可执行命令。
由于应用蓝图和资源索引的格式简单,只需要简单的基础知识,即可迅速编写出应用部署所需对应关系,无需再编写复杂的任务脚本,降低了编排门槛,因此,降低了应用部署的复杂度,提高了应用部署的效率。
部署装置在每次执行完一组对应关系中的可执行命令后,可以将相应的执行结果通过部署响应反馈给注册中心,或者,部署装置在执行完多组对应关系中的可执行命令后,将该多组可执行命令的执行结果通过同一部署响应反馈给注册中心。相应的,注册中心在接收该部署响应后,可以根据该部署响应携带的执行结果来确定后续操作。这样可以减少注册中心和部署装置交互过程中出现的问题。则可选的,所述方法还包括:
注册中心接收所述部署装置发送的部署响应,所述部署响应包括所述部署装置执行所述可执行命令得到的执行结果。
可选的,在不同的应用环境中,待部署应用需要部署的完整待部署资源(也即是需要部署的所有资源)不同,该完整待部署资源根据实际的部署场景不同和/或应用的环境不同,可能部署在一个或多个部署装置中,基于此,对于一个部署装置而言,所述获取为部署装置分配的待部署应用的应用蓝图和资源索引,包括:
接收待部署应用的m个资源索引,所述m个资源索引所对应的应用资源组成所述待部署应用在指定应用环境的完整待部署资源,所述m为大于或等于1的整数;
接收所述待部署应用的p个应用蓝图,所述p个应用蓝图的存储路径与所述m个资源索引对应;
在接收所述部署装置的订阅指令后,当所述部署装置为所述指定应用环境中的装置时,获取所述m个资源索引中的至少一个资源索引作为为所述部署装置分配的所述待部署应用的资源索引,并获取所述p个应用蓝图作为为所述部署装置分配的所述待部署应用的应用蓝图。
可选的,所述当所述部署装置为所述指定应用环境中的装置时,获取所述m个资源索引中的至少一个资源索引作为为所述部署装置分配的所述待部署应用的资源索引,并获取所述p个应用蓝图作为为所述部署装置分配的所述待部署应用的应用蓝图,包括:
确定用于在所述指定应用环境部署所述完整待部署资源的至少一个目标部署装置,所述至少一个目标部署装置包括所述部署装置;
在所述m个资源索引中,为每个所述目标部署装置分配资源索引;
在所述p个应用蓝图中,为每个所述目标部署装置分配应用蓝图。
可选的,由于部署场景的不同和/或应用环境的变化(如应用环境的升级或回退)等因素,n组对应关系中的一些元素可能产生变化,相应的,注册中心会向部署装置发送更新命令。则该应用部署方法还包括:
当第一对应关系中的任一元素产生变化,向所述部署装置发送第一更新命令,所述第一更新命令包括:第二对应关系,所述第二对应关系为更新后的所述第一对应关系,所述第一对应关系和所述第二对应关系中的应用蓝图标识相同,所述第一对应关系为所述n组对应关系中的任意一组。
在实际应用中,各个部署装置需要先在注册中心进行注册,才能由注册中心进行后续的管理与应用部署过程,则可选的,在所述获取为部署装置分配的应用蓝图和资源索引之前,所述方法还包括:
接收所述部署装置发送的注册请求;
根据所述注册请求为所述部署装置分配所述代理标识;
向所述部署装置发送注册请求响应,所述注册请求响应包括所述代理标识。
可选的,注册中心还可以配置第一应用程序编程接口和第二应用程序编程接口,该第一应用程序编程接口为用于与部署装置交互的接口,该第二应用程序编程接口为用于与控制端交互的接口。需要说明的是,注册中心还可以通过指定操作页面与控制端交互,该指定操作页面可以为超级文本标记语言(英文:HyperText Markup Language;简称:HTML)页面,如HTML5页面。在本申请实施例中,注册中心通过该第二应用程序编程接口或指定操作页面来获取控制端提供的应用蓝图和资源索引,注册中心还可以通过第一应用程序编程接口向部署装置提供包含应用蓝图和资源索引的对应关系。
示例的,所述向所述部署装置发送部署命令,包括:
通过所述注册中心的第一应用程序编程接口,向所述部署装置发送所述部署命令。
可选的,所述获取为部署装置分配的应用蓝图和资源索引,包括:
通过所述注册中心的第一应用程序编程接口或者指定操作页面获取为所述部署装置分配的应用蓝图;
通过所述注册中心的第一应用程序编程接口或者指定操作页面获取为所述部署装置分配的资源索引。
可选的,所述应用资源包括:应用安装资源、应用配置文件、可执行文件、代码文件或应用差分包。
第二方面,提供一种应用部署方法,所述方法应用于部署装置,所述方法包括:
接收注册中心发送的部署命令,所述部署命令包括:n组应用蓝图、资源索引和代理标识的对应关系,所述代理标识用于唯一标识所述部署装置,所述应用蓝图包括资源存储路径和可执行命令,所述资源索引包括资源获取地址;
通过每组所述对应关系中的所述资源获取地址获取应用资源,按照所述资源存储路径存储所述应用资源,并在存储所述应用资源后,执行所述可执行命令。
由于应用蓝图和资源索引的格式简单,只需要简单的基础知识,即可迅速编写出应用部署所需对应关系,无需再编写复杂的任务脚本,降低了编排门槛,因此,降低了应用部署的复杂度,提高了应用部署的效率。
部署装置在每次执行完一组对应关系中的可执行命令后,可以将相应的执行结果通过部署响应反馈给注册中心,或者,部署装置在执行完多组对应关系中的可执行命令后,将该多组可执行命令的执行结果通过同一部署响应反馈给注册中心。相应的,注册中心在接收该部署响应后,可以根据该部署响应携带的执行结果来确定后续操作。这样可以减少注册中心和部署装置交互过程中出现的问题。
则可选的,部署装置可以在执行所述可执行命令后,向所述注册中心发送部署响应,所述部署响应包括所述部署装置执行所述可执行命令得到的执行结果。
可选的,所述应用蓝图还包括应用蓝图标识,所述注册中心分配的应用蓝图标识与资源服务器所存储的应用资源一一对应,由于部署场景的不同和/或应用环境的变化(如应用环境的升级或回退)等因素,n组对应关系中的一些元素可能产生变化,相应的,注册中心会向部署装置发送更新命令。则该应用部署方法还包括:
接收所述注册中心发送的第一更新命令,所述第一更新命令是所述注册中心在检测到第一对应关系中的任一元素产生变化后,向所述部署装置发送的命令,所述第一更新命令包括:第二对应关系,所述第一对应关系为n组所述对应关系中的任意一组,所述第二对应关系为更新后的所述第一对应关系,所述第一对应关系和所述第二对应关系中的应用蓝图标识相同;
检测所述第二对应关系中产生变化的目标元素;
按照所述第二对应关系,执行所述目标元素所对应的动作。
可选的,一方面,所述按照所述第二对应关系,执行所述目标元素所对应的动作,包括:
当所述目标元素包括资源获取地址和/或资源存储路径时,通过所述第二对应关系中的资源获取地址获取应用资源,并在按照所述第二对应关系中的资源存储路径存储所述应用资源后,执行所述第二对应关系中的可执行命令;
当所述目标元素为可执行命令时,执行所述第二对应关系中的可执行命令。
另一方面,所述按照所述第二对应关系,执行所述目标元素所对应的动作,包括:
当所述目标元素包括资源存储路径时,按照所述第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照所述第二对应关系中的第二资源存储路径再次存储所述应用资源;
采用所述第二对应关系替换本地存储的所述第一对应关系。
如果保留通过第一对应关系所下载的应用资源,在后续过程中,还可以实现资源快速回退。该资源快速回退过程可以包括以下两种实现方式:
可选的,第一种实现方式,该快速回退过程包括:
在所述按照所述第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照所述第二对应关系中的第二资源存储路径再次存储所述应用资源之后,记录所述第一资源存储路径和所述第二资源存储路径的对应关系;
接收所述注册中心发送的回退指令,所述回退指令用于指示将应用资源的存储状态回退至上一存储状态;
从当前存储的第二对应关系中获取所述第二资源存储路径;
基于所述第一资源存储路径和所述第二资源存储路径的对应关系,获取所述第一资源存储路径;
将所述当前存储的第二对应关系中所述第二资源存储路径更新为所述第一资源存储路径。
可选的,第二种实现方式,该快速回退过程包括:
在所述按照所述第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照所述第二对应关系中的第二资源存储路径再次存储所述应用资源之后,记录所述第一资源存储路径和所述第二资源存储路径的对应关系;
接收所述注册中心发送的第二更新命令,所述第二更新命令是所述注册中心在检测到所述第二对应关系中的任一元素产生变化后,向所述部署装置发送的命令,所述更新命令包括:第三对应关系,所述第三对应关系为更新后的所述第二对应关系;
当所述第三对应关系与所述第二对应关系只有资源存储路径不同,且所述第三对应关系中的资源存储路径与所述对应关系中记录的第一资源存储路径相同,将所述第二对应关系中所述第二资源存储路径更新为所述第一资源存储路径。
在实际应用中,各个部署装置需要先在注册中心进行注册,才能由注册中心进行后续的管理与应用部署过程,则可选的,在所述接收注册中心发送的部署命令之前,所述方法还包括:
向所述注册中心发送注册请求;
接收所述注册中心发送的注册请求响应,所述注册请求响应包括所述代理标识。
可选的,所述向所述注册中心发送注册请求,包括:
获取配置信息,所述配置信息包含所述注册中心的第一应用程序编程接口的信息;
通过所述注册中心的第一应用程序编程接口向所述注册中心发送注册请求;
所述接收注册中心发送的部署命令,包括:
通过所述注册中心的第一应用程序编程接口,接收所述注册中心发送的部署命令。
第三方面,提供一种注册中心,该注册中心包括至少一个模块,该至少一个模块用于实现上述第一方面或第一方面的任一可选方式所提供的应用部署方法。
第四方面,提供一种部署装置,该部署装置包括至少一个模块,该至少一个模块用于实现上述第二方面或第二方面的任一可选方式所提供的应用部署方法。
第五方面,提供一种应用部署系统,该应用部署系统包括第三方面的任一注册中心和第四方面的任一部署装置。
第六方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在处理组件上运行时,使得处理组件执行上述第一方面或第一方面的任一可选方式所提供的应用部署方法,或者,使得处理组件执行上述第二方面或第二方面的任一可选方式所提供的应用部署方法。该计算机可读存储介质可以为非易失性可读存储介质。
第七方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在处理组件上运行时,使得处理组件执行上述第一方面或第一方面的任一可选方式所提供的应用部署方法,或者,使得处理组件执行上述第二方面或第二方面的任一可选方式所提供的应用部署方法。
本申请提供的技术方案带来的有益效果是:
本申请实施例提供的应用部署方法、装置及系统,由于应用蓝图和资源索引的格式简单,只需要简单的基础知识,即可迅速编写出应用部署所需对应关系,无需再编写复杂的任务脚本,降低了编排门槛,因此,降低了应用部署的复杂度,提高了应用部署的效率。
进一步的,本申请实施例提供的应用部署方法、装置及系统,由于注册中心可以基于应用蓝图、资源索引和代理标识,建立对应关系,执行部署装置可以基于该对应关系,获取并存储应用资源,执行可执行命令,实现应用资源的部署,由于应用蓝图和资源索引的格式简单,只需要简单的基础知识,即可迅速编写出应用部署所需对应关系,对于不同的应用环境,无需开发出不同的任务脚本,只需要建立或调整对应关系即可实现环境的适配,因此,有效降低了应用部署的复杂度,提高了部署效率。
本申请实施例提供的应用部署方法、装置及系统,由于在应用蓝图后添加了可执行命令,在部署装置下载了应用资源后,即可执行可执行命令,需要技术人员做的只是在应用蓝图上配置合适的可执行命令,即可实现拷贝、传输、下载、解压或安装等过程,因此,无需专门的脚本编写,减少了脚本编写的耗时。并且,由于应用蓝图和资源索引的格式简单,也降低了编排门槛,只需要简单的基础知识,即可编写出应用部署所需对应关系。进一步的,应用关系部署过程可以做到即插即用,可快速实现应用部署。
本申请实施例提供的应用部署方法、装置及系统,对于一个应用,只需建立至少一个用于应用部署的对应关系,对于不同的应用环境,只需新建或调整该对应关系即可,该对应关系复用性较高。
本申请实施例提供的应用部署方法、装置及系统,由于用于应用部署的对应关系实际上只是一些简单的字符串的拼接,占用的网络带宽较少,对注册中心的负载影响较小。
进一步的,本申请中,应用资源可以为应用安装包、应用插件、应用配置文件、可执行文件、代码文件或应用差分包,应用资源为应用插件或应用差分资源时,可以实现应用的增量更新,减少对网络带宽的需求,提高应用部署速度。
附图说明
图1是本申请实施例提供的一种应用部署方法所涉及的应用部署系统的实施环境示意图;
图2是本申请实施例提供的另一种应用部署方法所涉及的应用部署系统的实施环境示意图;
图3是本申请实施例提供的一种应用部署方法的流程图;
图4是本申请实施例提供的一种部署装置的注册过程流程图;
图5是本申请实施例提供的一种注册中心的结构框图;
图6是本申请实施例提供的一种注册中心的获取模块的结构框图;
图7是本申请实施例提供的另一种注册中心的结构框图;
图8是本申请实施例提供的又一种注册中心的结构框图;
图9是本申请实施例提供的一种部署装置的结构框图;
图10是本申请实施例提供的另一种部署装置的结构框图;
图11是本申请实施例提供的又一种部署装置的结构框图;
图12是本申请实施例提供的再一种部署装置的结构框图;
图13是本申请实施例提供的一种部署装置的结构框图;
图14是本申请实施例提供的一种控制器的结构框图。
具体实施方式
请参见图1,其示出了本申请部分实施例中提供的应用部署方法所涉及的应用部署系统的实施环境示意图。该应用部署系统可以应用于平台即服务(英文:Platform-as-a-Service;简称:PaaS)平台上的系统、移动应用更新系统或者服务部署引擎中。该应用部署系统可以包括:注册中心110、至少一个部署装置120以及资源服务器130。
注册中心110可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。部署装置120可以是应用服务器、物理机、虚拟机、隔离服务器、智能手机、电脑、多媒体播放器、电子阅读器或可穿戴式设备等,该部署装置120上是安装有代理软件的装置,该部署装置120通过代理软件实现应用部署,该部署装置120上创建有应用环境,该应用环境为支持应用部署的环境,该应用环境可以是操作系统或容器环境。资源服务器130可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心,该资源服务器130用于存储待部署的应用资源,该应用资源可以包括:应用安装资源、应用插件、应用配置文件、数据库配置文件、可执行文件、代码文件或应用差分包等运行应用所需的资源,其中,应用安装资源可以包括应用本体、数据库(英文:data base;简称:db)资源和/或负载均衡(英文:load balancing;简称:lb)资源等,进一步的,应用本体可以包括该应用的安装包或者压缩包。
注册中心110和部署装置120之间可以通过有线网络或无线网络建立连接。
进一步的,如图2所示,注册中心110可以获取为部署装置120分配的待部署应用的应用蓝图(英文:blueprint)和资源索引(英文:index),并基于待部署应用的应用蓝图和资源索引,建立n组应用蓝图、资源索引和代理标识(英文:identification;简称:id)的对应关系,代理标识(英文:agent id)用于唯一标识部署装置,n为大于或等于1的整数,在注册中心110将该n组对应关系分配给相应的部署装置120后,该部署装置120即可根据该n组对应关系在资源服务器130中获取应用资源,并进行相应的资源部署。
其中,应用蓝图至少包括:资源存储路径和可执行命令(英文:executablecommand或instruction),该资源存储路径用于指示应用资源被获取后所存储的路径,例如,“C:\Program Files\appX”。该可执行命令是部署装置120在按照应用蓝图中的资源存储路径存储获取的应用资源后,需要执行的命令,其可以包括系统更新命令、重启命令(英文:restart command)、关机命令、安装命令(英文:install command)和/或运行应用命令等等。该可执行命令可以是控制端输入的,该控制端可以为人工或者第三方系统(例如运行在一服务器上的控制系统)。
由于部署装置120在获取了应用资源后,可能需要执行诸如重启系统等操作,在应用蓝图携带可执行命令,可以使部署装置120在获取了应用资源后执行相应的命令,从而实现应用资源的下载和相应命令的执行的自动化,流程化。
实际应用中,在一些场景中,如资源覆盖的场景或证书存取的场景,可能不存在相应的可执行命令,则应用蓝图中的可执行命令的元素为空,此时该应用蓝图还可以设置可执行命令的位置,该位置的字符为“NULL”,该应用蓝图也可以不设置可执行命令的位置,本申请实施例对此不作限定。
进一步的,为了准确识别应用蓝图,应用蓝图还可以包括用于唯一标识该应用蓝图的应用蓝图标识(英文:blueprint_id),该应用蓝图标识可以为一字符串,如名称、代码、序列号或者预设字符(如数字)的组合等,如blueprint_001。实际应用中,注册中心110分配的应用蓝图标识可以与资源服务器130存储的应用资源的类型对应,例如,应用资源的类型为appX安装包(即该应用资源为应用appX的安装包),该appX安装包有三个版本,分别为appX001安装包、appX002安装包和appX003安装包,针对appX安装包建立的对应关系中,应用蓝图标识均可以为appXblueprint_001。
由上可知,应用蓝图可以包括至少两个元素,每两个元素可以采用预设的分隔符分隔,该分隔符可以为下划线、分号、冒号或空格等。例如,假设应用蓝图包括应用蓝图标识、资源存储路径和可执行命令共三个元素,应用蓝图标识为blueprint_id,资源存储路径为resource_path,可执行命令为refresh_cmd,分隔符为冒号,则该应用蓝图的格式可以为:blueprint_id:resource_path:refresh_cmd,若可执行命令为空,则该应用蓝图的格式可以为blueprint_id:resource_path:NULL或者,blueprint_id:resource_path。
资源索引至少包括:资源获取地址,该资源获取地址用于指示获取应用资源的地址,该资源获取地址可以为统一资源标识符(英文:Uniform Resource identifier;简称:URI),其中,URI的格式通常由两部分组成:第一部分是资源获取协议(或称为服务方式),如超文本传输协议(英文:Hyper Text Transfer Protocol;简称:HTTP)、文件传输协议(英文:File Transfer Protocol;简称:FTP)或网络文件系统(英文:Network File System;简称:NFS)协议;第二部分是资源获取的具体地址,该资源获取的具体地址包括存有应用资源的主机的互联网协议(英文:Internet Protocol;简称:IP)地址(有时也包括接口号),以及主机中应用资源的具体地址,如目录和文件名等,一些场景下该主机中应用资源的具体地址可以为空。例如,资源获取地址为“http:/appX.com/”。
进一步的,为了准确识别资源索引,资源索引还可以包括用于唯一标识该资源索引的资源索引标识(英文:index_id),该资源索引标识可以为一个字符串,如名称、代码、序列号或者预设字符(如数字)的组合等,如index_001。
由上可知,资源索引可以包括至少一个元素,当其包括至少两个元素时,每两个元素可以采用预设的分隔符分隔,该分隔符可以为下划线、分号、冒号或空格等。例如,假设资源索引包括资源索引标识和资源获取地址,资源索引标识为index_id,资源获取地址为resource_uri,分隔符为冒号,则该资源索引的格式可以为:index_id:resource_uri。
进一步的,注册中心110还可以配置第一应用程序编程接口和第二应用程序编程接口,该第一应用程序编程接口为用于与部署装置120交互的接口,该第二应用程序编程接口为用于与控制端交互的接口。需要说明的是,注册中心110还可以通过指定操作页面与控制端交互,该指定操作页面可以为超级文本标记语言(英文:HyperText Markup Language;简称:HTML)页面,如HTML5页面。在本申请实施例中,注册中心110通过该第二应用程序编程接口或指定操作页面来获取控制端提供的应用蓝图和资源索引,注册中心110还可以通过第一应用程序编程接口向部署装置120提供包含应用蓝图和资源索引的对应关系。
需要说明的是,上述应用蓝图、资源索引和对应关系等均可以由人工编排后输入至注册中心。
本申请实施例提供一种应用部署方法,应用于图1和图2所示的应用部署系统,假设应用蓝图包括应用蓝图标识、资源存储路径和可执行命令,资源索引包括:资源索引标识和资源获取地址,如图3所示,本申请实施例中以注册中心为一个部署装置进行应用部署为例进行说明,其他部署装置的应用部署过程可以参考该一个部署装置,该应用部署方法包括:
步骤201、部署装置在注册中心进行注册。
在本申请实施例中,各个部署装置需要先在注册中心进行注册,才能由注册中心进行后续的管理与应用部署过程,可选的,如图4所示,部署装置在注册中心的注册过程可以包括:
步骤2011、部署装置向注册中心发送注册请求。
部署装置向注册中心发送该注册请求后,相应的,注册中心接收部署装置发送的注册请求。
可选的,部署装置可以先获取配置信息,该配置信息包含注册中心的第一应用程序编程接口的信息,例如,该第一应用程序编程接口的信息可以为第一应用程序编程接口的标识;然后部署装置通过注册中心的第一应用程序编程接口向注册中心发送注册请求。相应的,注册中心通过该第一应用程序编程接口,接收部署装置发送的注册请求。其中,该第一应用程序编程接口是注册中心提供的与部署装置进行通信的接口,配置信息可以是预先配置在部署装置所安装的代理软件中,在部署装置上电后,部署装置即可自动从代理软件中获取该配置信息。
步骤2012、注册中心根据注册请求为部署装置分配代理标识(英文:agent_id)。
实际应用中,注册请求中可以携带有标识部署装置的序列号,如IP地址或媒体访问控制(英文:Media Access Control或者Medium Access Control;简称:MAC)地址(MAC地址也称为物理地址或硬件地址),注册中心根据该序列号识别该部署装置,并为该部署装置分配唯一标识部署装置的代理标识。需要说明的是,该唯一标识指的是该标识在注册中心所管理的多个部署装置中能够唯一标识一个部署装置,也即是在应用部署系统中该代理标识不重复,该代理标识可以为一个字符串,如名称、代码、序列号或者预设字符(如数字)的组合等,例如该代理标识可以为agent_001。可选的,注册请求中还可以携带该部署装置的端口号等等信息。
注册中心可以根据部署装置携带的序列号确定该部署装置所属的应用环境。例如,根据部署装置的IP地址确定该部署装置为生产环境中的部署装置。
步骤2013、注册中心向部署装置发送注册请求响应,该注册请求响应包括代理标识。
当部署装置接收到注册中心发送的注册请求响应时,注册过程完成。实际应用中,部署装置还可以在接收到注册请求响应后回复注册中心一个携带有代理标识的响应信息,以告知注册中心该部署装置成功接收到代理标识,注册完成。这样可以减少注册中心和部署装置交互过程中出现的问题。
当部署装置在注册中心注册完成后,注册中心才能对部署装置进行管理,并进行后续的应用资源部署。
步骤202、注册中心获取为部署装置分配的待部署应用的应用蓝图和资源索引,该应用蓝图包括资源存储路径和可执行命令,该资源索引包括资源获取地址。
在不同的应用环境中,待部署应用需要部署的完整待部署资源(也即是需要部署的所有资源)不同,例如应用环境可以包括开发环境(英文:development environment)、测试环境(英文:Test environment)、集成环境(英文:Acceptance Testing environment)或生产环境(英文:production environment),待部署应用在这几种应用环境中的完整待部署资源不同。
其中,开发环境是专门用于开发应用的服务器环境或隔离环境等,其配置与相应的需要开发的应用匹配,开发环境是一个Windows、Linux或MacOS系统下的C/C++/Java/Python/Web等开发环境的集成运行环境;测试环境是用于进行应用测试的环境,是指为了完成应用测试工作所必需的计算机硬件、软件、网络设备和历史数据等的总称,其配置一般少于或等于生产环境;集成环境是将不同的应用系统集成以形成新的系统的测试、验证、仿真、模拟的环境;生产环境是指正式提供对外服务的环境,是交付客户最终使用的环境,该生产环境可以是真实环境。
示例的,该待部署应用在开发环境和测试环境的完整待部署资源包括应用本体和应用配置文件,在集成环境的完整待部署资源包括应用本体和数据库资源,在生产环境的完整待部署资源包括应用本体和负载均衡资源。并且,该待部署应用的完整待部署资源可以部署在至少一个目标部署装置中,根据实际的部署场景不同,应用的环境不同,目标部署装置的个数也不同。
可选的,假设步骤201中的部署装置为指定应用环境(该指定应用环境为待部署应用当前需要部署的应用环境)中的装置,获取为部署装置分配的待部署应用的应用蓝图和资源索引的过程可以包括:
步骤A、接收待部署应用的m个资源索引,该m个资源索引所对应的应用资源组成待部署应用在指定应用环境的完整待部署资源,该m为大于或等于1的整数。
例如,该指定应用环境为集成环境,待部署应用为XXapp,完整待部署资源包括应用本体:XXapp.war和应用配置文件:application.properties,则可以设置两个资源索引,其中,第一个资源索引中的资源获取地址为:http://1.100.132.116/repository/XXapp/AT/latest/XXapp.war,用于指示应用本体:XXapp.war的获取地址;第二个资源索引中的资源获取地址为:http://1.100.132.116/repository/XXapp/AT/latest/config/application.properties,用于指示应用配置文件:application.properties的获取地址。
步骤B、接收待部署应用的p个应用蓝图,该p个应用蓝图的存储路径与m个资源索引对应。
该p个应用蓝图的资源存储路径用于存储通过m个资源索引所获取的资源,m和p可以相等也可以不等。例如,通过m个资源索引所获取的资源中的一个或多个资源索引所获取的资源可以通过一个应用蓝图的资源存储路径来存储。
例如,仍然以步骤A中的例子为例,通过第一资源索引中的资源获取地址获取的应用本体:XXapp.war对应的应用蓝图中的资源存储路径为/at/tomcat/webapps/;通过第二资源索引中的资源获取地址获取的应用配置文件:application.properties对应的应用蓝图中的资源存储路径为/at/tomcat/webapps/XXapp/resources/。
在实际实施时,上述步骤A和步骤B中,注册中心接收应用蓝图和资源索引的方式如下:
控制端(人工或者第三方系统)从后台向注册中心直接输入为部署装置分配的应用蓝图和资源索引,相应的,注册中心获取该应用蓝图和资源索引。
一方面,注册中心可以提供一第二应用程序编程接口,该第二应用程序编程接口是注册中心与后台控制端进行通信的接口,则注册中心可以通过该第二应用程序编程接口获取待部署应用的应用蓝图;也可以通过该第二应用程序编程接口获取待部署应用的资源索引。
另一方面,注册中心可以提供一指定操作页面,该指定操作页面是控制端向注册中心进行信息输入的页面,其可以为网络操作页面,即网页,也可以是客户端的操作页面,本申请实施例对此不作限定,则注册中心可以通过该指定操作页面获取待部署应用的应用蓝图;也可以通过该指定操作页面获取待部署应用的资源索引。
步骤C、在接收部署装置的订阅指令后,获取m个资源索引中的至少一个资源索引作为为部署装置分配的待部署应用的资源索引,并获取p个应用蓝图作为为部署装置分配的待部署应用的应用蓝图。
在本申请实施例中,订阅指令用于在注册中心订阅应用,订阅指令可以是部署装置触发的,也可以是控制端触发的,当订阅指令是部署装置触发时,通常在步骤201中,部署装置在注册请求中即可携带该订阅指令,该订阅指令指示需要订阅的应用,当注册中心存在该订阅的应用的完整待部署资源时(实际应用中,部署装置在注册时,注册中心可能还未准备好相应的资源),注册中心即可为部署装置分配资源索引和应用蓝图,以便后续进行应用部署。当订阅指令是控制端触发时,控制端可以通过第二应用程序编程接口或指定操作页面来触发订阅指令,例如,当某一应用需要部署在测试环境中,控制端触发该订阅指令,注册中心即可为该测试环境的部署装置分配资源索引和应用蓝图,以便后续进行测试环境的应用部署。
可选的,由于完整待部署资源根据实际的部署场景不同和/或应用的环境不同,可能部署在一个或多个目标部署装置中,则步骤C可以包括:注册中心确定用于在指定应用环境部署完整待部署资源的至少一个目标部署装置,该至少一个目标部署装置包括上述步骤201中的部署装置;在m个资源索引中,为每个目标部署装置分配资源索引;在p个应用蓝图中,为每个目标部署装置分配应用蓝图。由于步骤201中的部署装置属于该至少一个目标部署装置,因此,注册中心也确定了为该部署装置分配的资源索引和应用蓝图。
步骤203、注册中心基于待部署应用的应用蓝图和资源索引,建立n组应用蓝图、资源索引和代理标识的对应关系。
当注册中心获取了为部署装置所分配的应用蓝图、资源索引,以及该部署装置的代理标识后,可以建立三者的对应关系。实际应用中,上述对应关系的建立过程是控制端(人工或第三方系统)控制注册中心执行的,一方面,控制端可以直接通过第二应用程序编程接口或指定操作页面输入建立好的对应关系,也即是注册中心将步骤202和203同步执行,获取了对应关系即完成了获取应用蓝图、资源索引和代理标识,并建立对应关系的过程;另一方面,控制端也可以在注册中心获取应用蓝图、资源索引和代理标识后,通过指定操作页面控制注册中心生成相应的对应关系。例如注册中心在该指定操作页面显示注册中心获取的应用蓝图、资源索引和代理标识,然后控制端通过拖曳操作、单击操作和/或双击操作等操作,控制注册中心进行n组对应关系的建立。
例如,最终建立的对应关系的格式可以为:blueprint_id:index_id:agent_id,或者blueprint_id-index_id-agent_id。
步骤204、注册中心向部署装置发送部署命令,该部署命令包括n组对应关系。
可选的,注册中心通过第一应用程序编程接口,向部署装置发送部署命令。该部署命令用于指示部署装置通过每组对应关系中的资源获取地址获取应用资源,按照资源存储路径存储应用资源,并在存储应用资源后,执行可执行命令。
步骤205、部署装置通过每组对应关系中的资源获取地址获取应用资源,按照资源存储路径存储应用资源,并在存储应用资源后,执行可执行命令。
部署装置接收注册中心发送的部署命令后,该部署命令中令可以包括:n组应用蓝图、资源索引和代理标识的对应关系,则注册中心可以通过每组对应关系中的资源获取地址获取应用资源,按照资源存储路径存储应用资源,并在存储应用资源后,执行可执行命令。
例如,假设部署命令中携带了一组对应关系,部署装置的id为agent_001,应用资源为appX002(即appX的第二版)安装包,相应的应用蓝图标识为appXblueprint_001,资源索引标识为index_001,应用蓝图为:appXblueprint_001:C:\Program Files\appX:Install_cmd&run_cmd,其中,Install_cmd代表安装命令,run_cmd代表运行命令,资源索引为:index_001:http:/appX.com/。则部署命令中携带的对应关系可以为appXblueprint_001:index_001:agent_001,资源获取地址为“http:/appX.com/”,资源存储路径为“C:\Program Files\appX”,可执行命令为安装命令和运行命令。部署装置通过“http:/appX.com/”获取appX002安装包,并将appX002安装包存储在文件夹“C:\Program Files\appX”中,在存储完成后,执行对appX002安装包的安装命令和运行命令。
步骤206、部署装置向注册中心发送部署响应,部署响应包括部署装置执行可执行命令得到的执行结果。
可选的,部署装置在每次执行完一组对应关系中的可执行命令后,可以将相应的执行结果通过部署响应反馈给注册中心,或者,部署装置在执行完多组对应关系中的可执行命令后,将该多组可执行命令的执行结果通过同一部署响应反馈给注册中心。相应的,注册中心在接收该部署响应后,可以根据该部署响应携带的执行结果来确定后续操作。这样可以减少注册中心和部署装置交互过程中出现的问题。
示例的,该执行结果可以包括反馈状态标识和反馈状态信息,其中,反馈状态标识用于指示命令执行成功或执行失败,例如,该反馈状态可以为0或1,0代表命令执行成功,1代表命令执行失败;反馈状态信息用于在可执行命令执行失败时,携带失败原因,在可执行命令执行成功时,该反馈状态信息为空,例如在反馈状态为1时,该反馈状态信息包括权限错误、资源获取地址错误或响应超时等等内容,注册中心可以在可执行命令执行失败时,进行相应的人工干预,例如,反馈状态信息包括权限错误时,进行部署装置的权限修改,反馈状态信息包括资源获取地址错误时,进行资源获取地址的修改,反馈状态信息包括响应超时,查询部署装置响应超时原因,并进行相应处理。
步骤207、当第一对应关系中的任一元素产生变化,注册中心向部署装置发送第一更新命令,该第一更新命令包括:第二对应关系,该第二对应关系为更新后的第一对应关系,该第一对应关系和该第二对应关系中的应用蓝图标识相同,该第一对应关系为n组对应关系中的任意一组。
在实际实施时,由于部署场景的不同和/或应用环境的变化(如应用环境的升级或回退)等因素,n组对应关系中的一些元素可能产生变化,相应的,注册中心会向部署装置发送更新命令。
在本申请实施例中,应用蓝图标识可以与资源服务器存储的应用资源的类型对应,第一对应关系中除应用蓝图标识之外的元素的变化可以视为该第一对应关系的更新,当然,当注册中心中的一个对应关系的应用蓝图标识产生了变化,可以视为新建了一个对应关系,其使用过程可以参考上述步骤204至步骤206。
步骤208、部署装置执行第二对应关系对应的动作。
在本申请实施例中,部署装置执行第二对应关系对应的动作的方式可以有多种,本申请实施例以以下两种方式为例进行说明。
第一种方式,部署装置整体执行第二对应关系所对应的动作。
示例的,部署装置可以通过第二对应关系中的资源获取地址获取应用资源,按照第二对应关系中的资源存储路径存储应用资源,并执行第二对应关系中的可执行命令。其过程可以参考上述步骤205。
第二种方式,部署装置执行第二对应关系中产生变化的目标元素所对应的动作。
首先,部署装置检测第二对应关系中产生变化的目标元素。
由于部署装置在步骤204中获取了第一对应关系,在接收注册中心发送的第一更新命令后,部署装置可以先比较第一更新命令中所携带的对应关系与当前存储的对应关系的应用蓝图标识,若两者的应用蓝图标识相同,说明当前存储的对应关系为第一对应关系,第一更新命令中携带的对应关系为第二对应关系,也即是第二对应关系为更新后的第一对应关系。然后,基于第一对应关系检测第二对应关系中产生变化的元素,将该元素确定为目标元素。具体的,部署装置将第一对应关系与第二对应关系进行对比,将两者中不同的元素确定为目标元素。
然后,部署装置按照第二对应关系,执行目标元素所对应的动作。
在本申请实施例中,第二对应关系相对于第一对应关系更新的目标元素不同,部署装置所执行的动作不同,本申请实施例以以下两种可实现方式为例进行说明:
第一种可实现方式,当目标元素包括资源获取地址和/或资源存储路径时,部署装置通过第二对应关系中的资源获取地址获取应用资源,并在按照第二对应关系中的资源存储路径存储应用资源后,执行第二对应关系中的可执行命令。例如,参考上述步骤205的例子,第二对应关系为appXblueprint_001:index_002:agent_001,应用蓝图为:appXblueprint_001:D:\Program Files\appX:Install_cmd&run_cmd,资源索引为:index_002:http:/appX2.com/。则第二对应关系相对于第一对应关系产生变化的元素为资源获取地址:“http:/appX2.com/”,以及资源存储路径:“D:\Program Files\appX”,则部署装置通过“http:/appX2.com/”重新获取appX002安装包,并将appX002安装包存储在文件夹“D:\Program Files\appX”中,在存储完成后,执行对appX002安装包的安装命令和运行命令。
第二种可实现方式,当目标元素包括可执行命令时,部署装置执行第二对应关系中的可执行命令。
例如,参考上述步骤205的例子,第二对应关系为appXblueprint_001:index_001:agent_001,应用蓝图为:appXblueprint_001:C:\Program Files\appX:update_cmd,其中,“update_cmd”为更新命令,资源索引为:index_001:http:/appX.com/。则第二对应关系相对于第一对应关系产生变化的元素为可执行命令:“update_cmd”,则部署装置只需执行对appX002安装包的更新命令即可。
采用上述第一种可实现方式和第二种可实现方式的提供的方式所执行的动作较上述第一种方式中直接执行第二对应关系所对应的动作所执行的动作较少,效率较高。
在本申请实施例中,应用资源更新包括多种场景,例如应用升级、应用资源回退和配置文件更新等,本申请实施例以应用升级和应用资源回退为例进行说明:
采用上述第一种方式和第二种方式中的第一种可实现方式,可以实现应用升级,应用的升级是指对于同一类型的应用资源,采用高版本的应用资源替换低版本的应用资源的过程。
具体的,当需要进行应用升级时,控制端针对资源服务器中更新后的应用资源(该应用资源的版本比更新前的应用资源的版本高),可以更新第一对应关系中的应用蓝图和/或资源索引,得到第二对应关系,然后采用上述第一种方式或第二种方式的第一种可实现方式执行第二对应关系对应的动作即可。
例如,仍然参考上述步骤205的例子,假设升级后的应用资源为appX003(即appX的第三版)安装包,可选的,控制端可以将资源获取地址为“http:/appX.com/”所对应的应用资源appX002安装包替换为appX003安装包,然后将应用蓝图中的资源存储路径由“C:\Program Files\appX”更新为“D:\Program Files\appX”得到第二对应关系,部署装置获取该第二对应关系后,部署装置通过“http:/appX.com/”获取appX003安装包,并将appX003安装包存储在文件夹“D:\Program Files\appX”中,在存储完成后,执行对appX003安装包的安装命令和运行命令。以实现appX应用的升级。
可选的,控制端还可以将资源索引中的资源获取地址“http:/appX.com/”更新为“http:/appX3.com/”,对应的应用资源为appX003安装包,然后将应用蓝图中的资源存储路径由“C:\Program Files\appX”更新为“D:\Program Files\appX”得到第二对应关系,部署装置获取该第二对应关系后,通过“http:/appX3.com/”获取appX003安装包,并将appX003安装包存储在文件夹“D:\Program Files\appX”中,在存储完成后,执行对appX003安装包的安装命令和运行命令。以实现appX应用的升级。
可选的,控制端还可以将资源索引中的资源获取地址“http:/appX.com/”更新为“http:/appX3.com/”得到第二对应关系,部署装置获取该第二对应关系后,部署装置通过“http:/appX3.com/”获取appX003安装包,并将appX003安装包存储在文件夹“C:\ProgramFiles\appX”中,在存储完成后,执行对appX003安装包的安装命令和运行命令。以实现appX应用的升级。
采用上述第一种方式和第二种方式中的第一种可实现方式,还可以实现应用资源回退,应用资源回退是指将应用资源的存储状态回退至上一存储状态的过程。
具体的,当需要进行应用资源回退时,控制端针对更新后的应用资源,可以更新第一对应关系中的应用蓝图和/或资源索引,得到第二对应关系,然后采用上述第一种方式或第二种方式的第一种可实现方式执行第二对应关系对应的动作即可。
例如,仍然参考上述步骤205的例子,假设回退后的应用资源为appX001(即appX的第一版)安装包,可选的,控制端可以将资源获取地址为“http:/appX.com/”所对应的应用资源appX002安装包替换为appX001安装包,然后将应用蓝图中的资源存储路径由“C:\Program Files\appX”更新为“D:\Program Files\appX”得到第二对应关系,部署装置获取该第二对应关系后,部署装置通过“http:/appX.com/”获取appX001安装包,并将appX001安装包存储在文件夹“D:\Program Files\appX”中,在存储完成后,执行对appX001安装包的安装命令和运行命令。以实现appX应用的回退。
可选的,控制端还可以将资源索引中的资源获取地址“http:/appX.com/”更新为“http:/appX1.com/”,对应的应用资源为appX001安装包,然后将应用蓝图中的资源存储路径由“C:\Program Files\appX”更新为“D:\Program Files\appX”得到第二对应关系,部署装置获取该第二对应关系后,通过“http:/appX1.com/”获取appX001安装包,并将appX001安装包存储在文件夹“D:\Program Files\appX”中,在存储完成后,执行对appX001安装包的安装命令和运行命令。以实现appX应用的回退。
可选的,控制端还可以将资源索引中的资源获取地址“http:/appX.com/”更新为“http:/appX1.com/”得到第二对应关系,部署装置获取该第二对应关系后,通过“http:/appX1.com/”获取appX001安装包,并将appX001安装包存储在文件夹“C:\Program Files\appX”中,在存储完成后,执行对appX001安装包的安装命令和运行命令。以实现appX应用的回退。
需要说明的是,当目标元素包括资源存储路径,部署装置可以采用上述第一种可实现方式来执行相应的动作,也可以采用以下第三种可实现方式来执行相应的动作:
第三种可实现方式,当目标元素包括资源存储路径时,部署装置按照第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照第二对应关系中的第二资源存储路径再次存储该应用资源;然后,部署装置采用第二对应关系替换本地存储的第一对应关系,也即是采用第二对应关系覆盖第一对应关系。例如,参考上述步骤205的例子,第二对应关系为appXblueprint_001:index_001:agent_001,应用蓝图为:appXblueprint_001:D:\Program Files\appX:Install_cmd&run_cmd,资源索引为:index_001:http:/appX.com/。则第二对应关系相对于第一对应关系产生变化的元素为资源存储路径:“D:\ProgramFiles\appX”,则第一资源存储路径为“C:\Program Files\appX”,第二资源存储路径为:“D:\Program Files\appX”,部署装置可以通过“C:\Program Files\appX”获取appX002安装包,并将appX002安装包存储在文件夹“D:\Program Files\appX”中,然后采用第二对应关系替换第一对应关系。
采用该第三种可实现方式的提供的方式所执行的动作较上述第一种可实现方式中执行的动作少,效率较高。
进一步的,采用该第三种可实现方式将第二对应关系替换第一对应关系之后,可以删除通过第一对应关系所下载的应用资源,例如,在步骤205中,根据第一对应关系将appX002安装包存储在“C:\Program Files\appX”中,在采用上述第三种可实现方式将上述appX002安装包存储在“D:\Program Files\appX”后,将“C:\Program Files\appX”存储的appX002安装包删除。
但是,如果保留通过第一对应关系所下载的应用资源,在后续过程中,还可以实现资源快速回退。该资源快速回退过程可以包括以下两种实现方式:
第一种实现方式,该快速回退过程包括:
步骤A1、在按照第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照第二对应关系中的第二资源存储路径再次存储应用资源之后,部署装置记录第一资源存储路径和第二资源存储路径的对应关系。
例如,第一资源存储路径为:C:\Program Files\appX,第二资源存储路径为:D:\Program Files\appX,相应记录的第一资源存储路径和第二资源存储路径的对应关系为C:\Program Files\appX-D:\Program Files\appX,当然,上述对应关系还可以有其他记录方式,本申请实施例对此不作限定。
步骤A2、部署装置接收注册中心发送的回退指令,该回退指令用于指示将应用资源的存储状态回退至上一存储状态。
在本申请实施例中,在需要进行快速回退时,控制端可以触发注册中心创建回退指令,该回退指令用于指示将应用资源的存储状态回退至上一存储状态。该回退指令是针对上述对应关系中只变化了资源存储路径的情况所产生的指令。
步骤A3、部署装置从当前存储的第二对应关系中获取第二资源存储路径。
步骤A4、部署装置基于第一资源存储路径和第二资源存储路径的对应关系,获取第一资源存储路径。
步骤A5、部署装置将当前存储的第二对应关系中第二资源存储路径更新为第一资源存储路径。
例如,第一对应关系可以为appXblueprint_001:index_001:agent_001,资源获取地址为“http:/appX.com/”,资源存储路径为“C:\Program Files\appX”,可执行命令为安装命令和运行命令。部署装置接收到回退指令后,在第二对应关系中获取第二资源存储路径“D:\Program Files\appX”,查询第一资源存储路径和第二资源存储路径的对应关系C:\Program Files\appX-D:\Program Files\appX,得到第一资源存储路径:“C:\ProgramFiles\appX”,然后将第二对应关系中第二资源存储路径更新为第一资源存储路径,得到第一对应关系为appXblueprint_001:index_001:agent_001,应用蓝图为:appXblueprint_001:D:\Program Files\appX:Install_cmd&run_cmd,资源索引为:index_001:http:/appX.com/。
第二种实现方式,该快速回退过程包括:
步骤B1、在按照第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照第二对应关系中的第二资源存储路径再次存储应用资源之后,部署装置记录第一资源存储路径和第二资源存储路径的对应关系。
步骤B1可以参考上述步骤A1,本申请实施例对此不再赘述。
步骤B2、部署装置接收注册中心发送的第二更新命令,第二更新命令是注册中心在检测到第二对应关系中的任一元素产生变化后,向部署装置发送的命令,更新命令包括:第三对应关系,第三对应关系为更新后的第二对应关系,该第二对应关系和该第三对应关系中的应用蓝图标识相同。
步骤B2可以参考上述步骤207,本申请实施例对此不再赘述。
步骤B3、当第三对应关系与第二对应关系只有资源存储路径不同,且第三对应关系中的资源存储路径与对应关系中记录的第一资源存储路径相同,将第二对应关系中第二资源存储路径更新为第一资源存储路径。
由于部署装置在步骤207中获取了第二对应关系,部署装置在接收注册中心发送的第二更新命令后,可以基于第二对应关系检测第三对应关系中产生变化的元素。该检测过程可以参考上述步骤208所提供的第二种方式。具体的,部署装置可以先比较第二更新命令中所携带的对应关系与当前存储的对应关系的应用蓝图标识,若两者的应用蓝图标识相同,说明当前存储的对应关系为第二对应关系,第二更新命令中携带的对应关系为第三对应关系,也即是第三对应关系为更新后的第二对应关系。然后,基于第二对应关系检测第三对应关系中产生变化的元素,将该元素确定为目标元素。具体的,部署装置将第二对应关系与第三对应关系进行对比,将两者中不同的元素确定为目标元素。当第三对应关系与第二对应关系只有资源存储路径不同,且第三对应关系中的资源存储路径与对应关系中记录的第一资源存储路径相同,将第二对应关系中第二资源存储路径更新为第一资源存储路径。该路径更新过程可以参考上述步骤A3至A5。
当第三对应关系与第二对应关系只有资源存储路径不同,且第三对应关系中的资源存储路径与对应关系中记录的第一资源存储路径不同时,可以参考上述第一种方式和上述第二种方式中的第一种可实现方式执行第三对应关系对应的动作,本申请实施例对此不再赘述。
综上所述,本申请实施例提供的应用部署方法,由于应用蓝图和资源索引的格式简单,只需要简单的基础知识,即可迅速编写出应用部署所需对应关系,无需再编写复杂的任务脚本,降低了编排门槛,因此,降低了应用部署的复杂度,提高了应用部署的效率。
相关技术中,由于对于不同的应用环境(如开发环境、测试环境、集成环境或生产环境),部署流程不同,需要技术人员开发出不同的任务脚本,以适配不同的应用环境,例如,对于同一应用,技术人员需要针对开发环境和测试环境提供两套任务脚本。因此,导致应用部署的复杂度较高,部署效率较低。
而本申请实施例提供的应用部署方法,由于注册中心可以基于应用蓝图、资源索引和代理标识,建立对应关系,执行部署装置可以基于该对应关系,获取并存储应用资源,执行可执行命令,实现应用资源的部署,由于应用蓝图和资源索引的格式简单,只需要简单的基础知识,即可迅速编写出应用部署所需对应关系,对于不同的应用环境,无需开发出不同的任务脚本,只需要建立或调整对应关系即可实现环境的适配,因此,有效降低了应用部署的复杂度,提高了部署效率。
为了便于理解,本申请实施例以一个待部署应用为XXapp为例进行说明,假设该待部署应用的完整待部署资源包括应用本体、数据库资源和负载均衡资源,注册中心地址为http://register.deploysystem.internal:8080,参考步骤201,部署装置可以基该注册中心地址在注册中心进行注册。假设待部署应用XXapp需要部署在4种应用环境中,分别为开发环境、测试环境、集成环境和生成环境。则在不同应用环境中,对于同一个待部署应用可以建立不同的部署所需的对应关系,如表1所示,应用蓝图(英文:blueprint)包括:应用蓝图标识:blueprint_id、资源存储路径:resource_path和可执行命令:refresh_cmd这三部分,资源索引(英文:index)包括:资源索引标识:Indexid和资源获取地址:Resource_uri这两部分。
以开发环境为例,参考表1,在开发环境中,待部署应用XXapp需要部署在1个部署装置上,部署装置的代理标识(英文:agent-id)为Agent-01,待部署应用XXapp的完整待部署资源包括压缩包app.war和应用配置文件app.config。在该部署装置上Agent-01需要分配两组对应关系,参考步骤203中的对应关系格式,该两组对应关系可以分别为Agent-01-XXApp.app.war-XXApp.app.war以及Agent-01-XXApp.app.appli cation.properties-XXApp.app.config。
在对应关系:Agent-01-XXApp.app.war-XXApp.app.war中,应用蓝图XXApp.app.war包括:XXApp.app.war-/dev/tomcat/webapps/-/dev/tomcat/bin/restart.sh,资源索引XXApp.app.war包括:XXApp.app.war-http://1.100.132.116/repository/XXapp/a100150/build99/XXapp.war;
在对应关系:Agent-01-XXApp.app.application.properties-XXApp.app.config中,应用蓝图XXApp.app.application.properties包括:XXApp.app.application.properties-/dev/tomcat/webapps/XXapp/resources/-/dev/tomcat/bin/restart.sh,资源索引XXApp.app.config包括:XXApp.app.config-http://1.100.132.116/repository/XXapp/a100150/build56/config/application.properties。该表1中其他应用环境中的需要分配的对应关系可以参考上述开发环境中的需要分配的对应关系的解释,本申请实施例对此不再赘述。
需要说明的是,在开发环境和测试环境中,一般只关注应用本体的更新,则参考表1,在开发环境中,存在一个部署装置agent01,待部署应用XXapp的完整待部署资源包括压缩包app.war和应用配置文件app.config。在部署装置agent01中部署压缩包:XXapp.war后,如果需要进行压缩包的更新,参考步骤207和208,控制端只需要修改应用蓝图XXApp.app.war对应的资源索引XXApp.app.war中的resource_uri,即可更新/dev/tomcat/webapps/路径下的压缩包,再执行相应的refresh_cmd就能启动XXapp服务。
在测试环境中,存在一个部署装置agent02,待部署应用XXapp的完整待部署资源包括压缩包app.war和应用配置文件app.config。在部署装置agent02中部署压缩包:XXapp.war后,如果需要进行压缩包的更新,参考步骤207和208,控制端只需要修改应用蓝图XXApp.app.war对应的资源索引XXApp.app.war中的resource_uri,即可更新/test/tomcat/webapps/路径下的压缩包,再执行相应的refresh_cmd就能启动XXapp服务。
在集成环境和生产环境中,除了关注应用本体的更新,还可能关注数据库资源或负载均衡资源的更新,则参考表1,在集成环境中,存在两个部署装置agent03和agent04,待部署应用XXapp的完整待部署资源包括需要部署在部署装置agent03中的压缩包app.war和应用配置文件app.config,以及需要部署在部署装置agent04中的数据库资源db.binary和负载均衡资源db.config。在部署装置agent03中部署压缩包:XXapp.war后,如果需要进行压缩包的更新,参考步骤207和208,控制端只需要修改应用蓝图XXApp.app.war对应的资源索引XXApp.app.war中的resource_uri,即可更新/at/tomcat/webapps/路径下的压缩包,再执行相应的refresh_cmd就能启动XXapp服务;在部署装置agent04中部署数据库资源:db.binary后,如果需要进行数据库资源的更新,参考步骤207和208,控制端只需要修改应用蓝图XXApp_db.binary对应的资源索引XXApp.app.db.binary中的resource_uri,即可更新/at/db/mysql/路径下的数据库资源,再执行相应的refresh_cmd就能实现数据库资源的静默安装。
在生产环境中,存在三个部署装置agent05、agent06和agent07,待部署应用XXapp的完整待部署资源包括需要部署在部署装置agent05中的压缩包app.war和应用配置文件app.config,以及需要部署在部署装置agent06中的数据库资源db.binary和数据库配置文件db.config,以及需要部署在部署装置agent07中的负载均衡资源lb.config。在部署装置agent07中部署负载均衡资源:lb.config后,如果需要进行负载均衡资源的更新,参考步骤207和208,控制端只需要修改应用蓝图XXApp_lb.config对应的资源索引XXApp.app.lb.config中的resource_uri,即可更新/prod/lb/nginx/conf/路径下的数据库资源,再执行相应的refresh_cmd就能实现负载均衡资源的静默安装。
需要说明的是,上述更新过程只是示意性说明,实际应用中,还可以进行配置文件的更新。例如更新应用配置文件,则可以通过应用蓝图对应的资源索引中的resource_uri即可实现应用配置文件的重新加载,本申请实施例对此不再赘述。
表1
基于上述示例可知,本申请实施例提供的应用部署方法,对于不同的应用环境,无需开发出不同的任务脚本,只需要建立或调整对应关系即可实现环境的适配,并且不同环境中的对应关系可以复用,或相互参考,例如,上述表1中分配给部署装置Agent-02在测试环境中的对应关系可以参考分配给部署装置Agent-01在开发环境中的对应关系进行设置,两种环境中的对应关系可以相互参考,或者简单修改即可,因此,有效降低了应用部署的复杂度,提高了部署效率。
传统的面向流程的应用部署方法,由于应用部署过程中的每个动作都需要编写相应的任务脚本,因此编写脚本的周期较长,尤其是涉及拷贝、传输、下载、解压或安装等过程的脚本编写。
而本申请实施例提供的应用部署方法,由于在应用蓝图后添加了可执行命令,在部署装置下载了应用资源后,即可执行可执行命令,需要技术人员做的只是在应用蓝图上配置合适的可执行命令,即可实现拷贝、传输、下载、解压或安装等过程,因此,无需专门的脚本编写,减少了脚本编写的耗时。并且,由于应用蓝图和资源索引的格式简单,也降低了编排门槛,只需要简单的基础知识,即可编写出应用部署所需对应关系。进一步的,应用关系部署过程可以做到即插即用,可快速实现应用部署。
另外,传统的面向流程的应用部署方法,需要对应不同的应用环境编写具有针对性的任务脚本,任务脚本的复用性较差。而本申请实施例提供的应用部署方法,对于一个应用,只需建立至少一个用于应用部署的对应关系,对于不同的应用环境,只需新建或调整该对应关系即可,该对应关系复用性较高。
再者,传统的面向流程的应用部署方法,如果同时要进行多个应用的部署,或者同时进行一个应用的多个任务的部署,则部署引擎需要同时向部署装置发送大量的任务脚本和应用资源,导致部署引擎的负载增大,对网络带宽需求较高,容易造成系统瓶颈。
而本申请实施例提供的应用部署方法,由于用于应用部署的对应关系实际上只是一些简单的字符串的拼接,占用的网络带宽较少,对注册中心的负载影响较小。
进一步的,本申请实施例中,应用资源可以为应用安装包、应用插件、应用配置文件、可执行文件、代码文件或应用差分包,应用资源为应用插件或应用差分资源时,可以实现应用的增量更新,减少对网络带宽的需求,提高应用部署速度。
需要说明的是,本申请实施例提供的应用部署方法方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,例如步骤201和步骤202中的部分步骤可以互换,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
图5是根据一示例性实施例示出的一种注册中心30,该注册中心可以为上述方法实施例中的注册中心,该注册中心30包括:获取模块301、建立模块302和第一发送模块303。
获取模块301,用于获取为部署装置分配的待部署应用的应用蓝图和资源索引,该应用蓝图包括资源存储路径和可执行命令,该资源索引包括资源获取地址。
建立模块302,用于基于该待部署应用的应用蓝图和资源索引,建立n组该应用蓝图、该资源索引和代理标识的对应关系,该代理标识用于唯一标识该部署装置,该n为大于或等于1的整数。
第一发送模块303,用于向该部署装置发送该部署命令,该部署命令包括n组对应关系,该部署命令用于指示该部署装置通过每组该对应关系中的该资源获取地址获取应用资源,按照该资源存储路径存储该应用资源,并在存储该应用资源后,执行该可执行命令。
综上所述,本申请实施例提供的注册中心,由于获取模块获取的应用蓝图和资源索引的格式简单,只需要简单的基础知识,即可迅速编写出应用部署所需对应关系,无需再编写复杂的任务脚本,降低了编排门槛,因此,降低了应用部署的复杂度,提高了应用部署的效率。
可选的,如图6所示,获取模块301,包括:第一接收子模块3011、第二接收子模块3012和获取子模块3013。
第一接收子模块3011,用于接收待部署应用的m个资源索引,该m个资源索引所对应的应用资源组成该待部署应用在指定应用环境的完整待部署资源,该m为大于或等于1的整数。
第二接收子模块3012,用于接收该待部署应用的p个应用蓝图,该p个应用蓝图的存储路径与该m个资源索引对应。
获取子模块3013,用于在接收该部署装置的订阅指令后,当该部署装置为该指定应用环境中的装置时,获取该m个资源索引中的至少一个资源索引作为为该部署装置分配的该待部署应用的资源索引,并获取该p个应用蓝图作为为该部署装置分配的该待部署应用的应用蓝图。
相应的,该获取子模块3013,可以用于确定用于在该指定应用环境部署该完整待部署资源的至少一个目标部署装置,该至少一个目标部署装置包括该部署装置,并在该m个资源索引中,为每个该目标部署装置分配资源索引,在该p个应用蓝图中,为每个该目标部署装置分配应用蓝图。
图7是根据一示例性实施例示出的一种注册中心30,该注册中心30可以包括:获取模块301、建立模块302、第一发送模块303和第二发送模块304。
第二发送模块304,用于当第一对应关系中的任一元素产生变化,向该部署装置发送第一更新命令,该第一更新命令包括:第二对应关系,该第二对应关系为更新后的该第一对应关系,该第一对应关系和该第二对应关系中的应用蓝图标识相同,该第一对应关系为该n组对应关系中的任意一组。
图8是根据一示例性实施例示出的一种注册中心30,该注册中心30包括:获取模块301、建立模块302、第一发送模块303、第二发送模块304、接收模块305、分配模块306和第三发送模块307。
接收模块305,用于在获取为部署装置分配的应用蓝图和资源索引之前,接收该部署装置发送的注册请求。
分配模块306,用于根据该注册请求为该部署装置分配该代理标识。
第三发送模块307,用于向该部署装置发送注册请求响应,该注册请求响应包括该代理标识。
可选的,该第一发送模块303,可以用于通过该注册中心的第一应用程序编程接口,向该部署装置发送该部署命令。
在本申请实施例中,该应用资源可以包括:应用安装资源、应用配置文件、可执行文件、代码文件或应用差分包。
图9是根据一示例性实施例示出的一种部署装置40,该部署装置40可以包括:第一接收模块401和第一获取模块402。
第一接收模块401,用于接收该注册中心发送的部署命令,该部署命令包括:n组应用蓝图、资源索引和代理标识的对应关系,该代理标识用于唯一标识该部署装置,该应用蓝图包括资源存储路径和可执行命令,该资源索引包括资源获取地址。
第一获取模块402,用于通过每组该对应关系中的该资源获取地址获取应用资源,按照该资源存储路径存储该应用资源,并在存储该应用资源后,执行该可执行命令。
图10是根据一示例性实施例示出的一种部署装置40,其中,该应用蓝图还包括应用蓝图标识,该注册中心分配的应用蓝图标识与资源服务器所存储的应用资源一一对应,该部署装置40可以包括:第一接收模块401、第一获取模块402、第二接收模块403、检测模块404和执行模块405。
第二接收模块403,用于接收该注册中心发送的第一更新命令,该第一更新命令是该注册中心在检测到第一对应关系中的任一元素产生变化后,向该部署装置发送的命令,该第一更新命令包括:第二对应关系,该第一对应关系为该n组对应关系中的任意一组,该第二对应关系为更新后的该第一对应关系,该第一对应关系和该第二对应关系中的应用蓝图标识相同。
检测模块404,用于检测该第二对应关系中产生变化的目标元素。
执行模块405,用于按照该第二对应关系,执行该目标元素所对应的动作。
第一方面,该执行模块405可以用于:
当该目标元素包括资源获取地址和/或资源存储路径时,通过该第二对应关系中的资源获取地址获取应用资源,并在按照该第二对应关系中的资源存储路径存储该应用资源后,执行该第二对应关系中的可执行命令;当该目标元素为可执行命令时,执行该第二对应关系中的可执行命令。
第二方面,该执行模块405可以用于:
当该目标元素包括资源存储路径时,按照该第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照该第二对应关系中的第二资源存储路径再次存储该应用资源;并采用该第二对应关系替换本地存储的该第一对应关系。
图11是根据一示例性实施例示出的一种部署装置40,该部署装置40包括:第一接收模块401、第一获取模块402、第二接收模块403、检测模块404、执行模块405、第一记录模块406、第三接收模块407、第二获取模块408、第三获取模块409和第一更新模块410。
第一记录模块406,用于在该按照该第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照该第二对应关系中的第二资源存储路径再次存储该应用资源之后,记录该第一资源存储路径和该第二资源存储路径的对应关系。
第三接收模块407,用于接收该注册中心发送的回退指令,该回退指令用于指示将应用资源的存储状态回退至上一存储状态。
第二获取模块408,用于从当前存储的第二对应关系中获取该第二资源存储路径。
第三获取模块409,用于基于该第一资源存储路径和该第二资源存储路径的对应关系,获取该第一资源存储路径。
第一更新模块410,用于将该当前存储的第二对应关系中该第二资源存储路径更新为该第一资源存储路径。
图12是根据一示例性实施例示出的一种部署装置40,该部署装置40可以包括:第一接收模块401、第一获取模块402、第二接收模块403、检测模块404、执行模块405、第二记录模块411,第四接收模块412和第二更新模块413。
第二记录模块411,用于在所述按照所述第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照所述第二对应关系中的第二资源存储路径再次存储所述应用资源之后,记录所述第一资源存储路径和所述第二资源存储路径的对应关系;
第四接收模块412,用于接收该注册中心发送的第二更新命令,该第二更新命令是该注册中心在检测到该第二对应关系中的任一元素产生变化后,向该部署装置发送的命令,该更新命令包括:第三对应关系,该第三对应关系为更新后的该第二对应关系。
第二更新模块413,用于当该第三对应关系与该第二对应关系只有资源存储路径不同,且该第三对应关系中的资源存储路径与该对应关系中记录的第一资源存储路径相同,将该第二对应关系中该第二资源存储路径更新为该第一资源存储路径。
图13是根据一示例性实施例示出的一种部署装置40,该部署装置40可以包括:第一接收模块401、第一获取模块402、发送模块414和第五接收模块415。
发送模块414,用于在所接收该注册中心发送的部署命令之前,向该注册中心发送注册请求。
第五接收模块415,用于接收该注册中心发送的注册请求响应,该注册请求响应包括该代理标识。
可选的,该发送模块414,用于:获取配置信息,该配置信息包含该注册中心的第一应用程序编程接口的信息。通过该注册中心的第一应用程序编程接口向该注册中心发送注册请求。
该第一接收模块401,用于:通过该注册中心的第一应用程序编程接口,接收该注册中心发送的部署命令。
综上所述,本申请实施例提供的部署装置,由于第一接收模块接收的应用蓝图和资源索引的格式简单,只需要简单的基础知识,即可迅速编写出应用部署所需对应关系,无需再编写复杂的任务脚本,降低了编排门槛,因此,降低了应用部署的复杂度,提高了应用部署的效率。
本申请实施例提供一种部署系统,其特征在于,所述系统包括:上述任一注册中心30和上述任一部署装置40。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参考图14,其示出了本申请实施例提供的一种控制器500的结构示意图,参见图14,该控制器500包括:处理器510、通信接口520和存储器530,通信接口520和存储器530分别与处理器510相连,示例地,如图14所示,通信接口520和存储器530通过总线540与处理器510相连。
其中,处理器510可以为中央处理器(CPU),处理器510包括一个或者一个以上处理核心。处理器510通过运行软件程序,从而执行各种功能应用以及数据处理。
其中,通信接口520可以为多个,该通信接口520用于控制器500与外部设备进行通信,该外部设备例如显示器、第三方设备(例如,存储设备、移动终端等)等。
其中,存储器530可以包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、快闪存储器、光存储器。该存储器530负责信息存储,例如,该存储器530用于存储软件程序。
可选地,该控制器500还可以包括:输入/输出(I/O)接口(图14中未示出)。I/O接口与处理器510、通信接口520以及存储器530连接。
I/O接口例如可以为通用串行总线(USB)。
在本申请实施例中,处理器510被配置为执行存储器530中存储的指令,处理器530通过执行指令来实现图3实施实施例提供的应用部署方法。
其中,处理器510可以用于执行上述步骤201、步骤205和步骤208,例如:
获取为部署装置分配的待部署应用的应用蓝图和资源索引,所述应用蓝图包括资源存储路径和可执行命令,所述资源索引包括资源获取地址;
基于所述待部署应用的应用蓝图和资源索引,建立n组所述应用蓝图、所述资源索引和代理标识的对应关系,所述代理标识用于唯一标识所述部署装置,所述n为大于或等于1的整数;
向所述部署装置发送所述部署命令,所述部署命令包括n组对应关系,所述部署命令用于指示所述部署装置通过每组所述对应关系中的所述资源获取地址获取应用资源,按照所述资源存储路径存储所述应用资源,并在存储所述应用资源后,执行所述可执行命令。
或者,处理器510可以用于执行上述步骤201、202、203、204和207,例如:
接收所述注册中心发送的部署命令,所述部署命令包括:n组应用蓝图、资源索引和代理标识的对应关系,所述代理标识用于唯一标识所述部署装置,所述应用蓝图包括资源存储路径和可执行命令,所述资源索引包括资源获取地址;
通过每组所述对应关系中的所述资源获取地址获取应用资源,按照所述资源存储路径存储所述应用资源,并在存储所述应用资源后,执行所述可执行命令。
需要说明的是:上述实施例提供的应用部署装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用部署装置与应用部署方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (33)
1.一种应用部署方法,其特征在于,所述方法应用于注册中心,所述方法包括:
获取为部署装置分配的待部署应用的应用蓝图和资源索引,所述应用蓝图包括用于唯一指示所述应用蓝图的应用蓝图标识、资源存储路径和可执行命令,所述资源索引包括资源获取地址和用于唯一指示所述资源索引的资源索引标识;所述资源获取地址为应用资源的获取地址;
基于所述待部署应用的应用蓝图和资源索引,建立n组所述应用蓝图、所述资源索引和代理标识的对应关系,所述代理标识用于唯一标识所述部署装置,所述n为大于或等于1的整数;
向所述部署装置发送部署命令,所述部署命令包括n组对应关系,所述部署命令用于指示所述部署装置通过每组所述对应关系中的所述资源获取地址获取应用资源,按照所述资源存储路径存储所述应用资源,并在存储所述应用资源后,执行所述可执行命令。
2.根据权利要求1所述的方法,其特征在于,
所述获取为部署装置分配的待部署应用的应用蓝图和资源索引,包括:
接收待部署应用的m个资源索引,所述m个资源索引所对应的应用资源组成所述待部署应用在指定应用环境的完整待部署资源,所述m为大于或等于1的整数;
接收所述待部署应用的p个应用蓝图,所述p个应用蓝图的存储路径与所述m个资源索引对应;
在接收所述部署装置的订阅指令后,当所述部署装置为所述指定应用环境中的装置时,获取所述m个资源索引中的至少一个资源索引作为为所述部署装置分配的所述待部署应用的资源索引,并获取所述p个应用蓝图作为为所述部署装置分配的所述待部署应用的应用蓝图。
3.根据权利要求2所述的方法,其特征在于,
所述当所述部署装置为所述指定应用环境中的装置时,获取所述m个资源索引中的至少一个资源索引作为为所述部署装置分配的所述待部署应用的资源索引,并获取所述p个应用蓝图作为为所述部署装置分配的所述待部署应用的应用蓝图,包括:
确定用于在所述指定应用环境部署所述完整待部署资源的至少一个目标部署装置,所述至少一个目标部署装置包括所述部署装置;
在所述m个资源索引中,为每个所述目标部署装置分配资源索引;
在所述p个应用蓝图中,为每个所述目标部署装置分配应用蓝图。
4.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
当第一对应关系中的任一元素产生变化,向所述部署装置发送第一更新命令,所述第一更新命令包括:第二对应关系,所述第二对应关系为更新后的所述第一对应关系,所述第一对应关系和所述第二对应关系中的应用蓝图标识相同,所述第一对应关系为所述n组对应关系中的任意一组。
5.根据权利要求1至3任一所述的方法,其特征在于,在所述获取为部署装置分配的应用蓝图和资源索引之前,所述方法还包括:
接收所述部署装置发送的注册请求;
根据所述注册请求为所述部署装置分配所述代理标识;
向所述部署装置发送注册请求响应,所述注册请求响应包括所述代理标识。
6.根据权利要求1至3任一所述的方法,其特征在于,
所述向所述部署装置发送部署命令,包括:
通过所述注册中心的第一应用程序编程接口,向所述部署装置发送所述部署命令。
7.根据权利要求1至3任一所述的方法,其特征在于,所述应用资源包括:应用安装资源、应用配置文件、可执行文件、代码文件或应用差分包。
8.一种应用部署方法,其特征在于,所述方法应用于部署装置,所述方法包括:
接收注册中心发送的部署命令,所述部署命令包括:n组应用蓝图、资源索引和代理标识的对应关系,所述代理标识用于唯一标识所述部署装置,所述应用蓝图包括用于唯一指示所述应用蓝图的应用蓝图标识、资源存储路径和可执行命令,所述资源索引包括资源获取地址和用于唯一指示所述资源索引的资源索引标识;所述资源获取地址为应用资源的获取地址;
通过每组所述对应关系中的所述资源获取地址获取应用资源,按照所述资源存储路径存储所述应用资源,并在存储所述应用资源后,执行所述可执行命令。
9.根据权利要求8所述的方法,其特征在于,所述注册中心分配的应用蓝图标识与资源服务器所存储的应用资源一一对应,所述方法还包括:
接收所述注册中心发送的第一更新命令,所述第一更新命令是所述注册中心在检测到第一对应关系中的任一元素产生变化后,向所述部署装置发送的命令,所述第一更新命令包括:第二对应关系,所述第一对应关系为n组所述对应关系中的任意一组,所述第二对应关系为更新后的所述第一对应关系,所述第一对应关系和所述第二对应关系中的应用蓝图标识相同;
检测所述第二对应关系中产生变化的目标元素;
按照所述第二对应关系,执行所述目标元素所对应的动作。
10.根据权利要求9所述的方法,其特征在于,
所述按照所述第二对应关系,执行所述目标元素所对应的动作,包括:
当所述目标元素包括资源获取地址和/或资源存储路径时,通过所述第二对应关系中的资源获取地址获取应用资源,并在按照所述第二对应关系中的资源存储路径存储所述应用资源后,执行所述第二对应关系中的可执行命令;
当所述目标元素为可执行命令时,执行所述第二对应关系中的可执行命令。
11.根据权利要求9所述的方法,其特征在于,
所述按照所述第二对应关系,执行所述目标元素所对应的动作,包括:
当所述目标元素包括资源存储路径时,按照所述第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照所述第二对应关系中的第二资源存储路径再次存储所述应用资源;
采用所述第二对应关系替换本地存储的所述第一对应关系。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在所述按照所述第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照所述第二对应关系中的第二资源存储路径再次存储所述应用资源之后,记录所述第一资源存储路径和所述第二资源存储路径的对应关系;
接收所述注册中心发送的回退指令,所述回退指令用于指示将应用资源的存储状态回退至上一存储状态;
从当前存储的第二对应关系中获取所述第二资源存储路径;
基于所述第一资源存储路径和所述第二资源存储路径的对应关系,获取所述第一资源存储路径;
将所述当前存储的第二对应关系中所述第二资源存储路径更新为所述第一资源存储路径。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在所述按照所述第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照所述第二对应关系中的第二资源存储路径再次存储所述应用资源之后,记录所述第一资源存储路径和所述第二资源存储路径的对应关系;
接收所述注册中心发送的第二更新命令,所述第二更新命令是所述注册中心在检测到所述第二对应关系中的任一元素产生变化后,向所述部署装置发送的命令,所述更新命令包括:第三对应关系,所述第三对应关系为更新后的所述第二对应关系;
当所述第三对应关系与所述第二对应关系只有资源存储路径不同,且所述第三对应关系中的资源存储路径与所述对应关系中记录的第一资源存储路径相同,将所述第二对应关系中所述第二资源存储路径更新为所述第一资源存储路径。
14.根据权利要求8至13任一所述的方法,其特征在于,在所述接收注册中心发送的部署命令之前,所述方法还包括:
向所述注册中心发送注册请求;
接收所述注册中心发送的注册请求响应,所述注册请求响应包括所述代理标识。
15.根据权利要求14所述的方法,其特征在于,所述向所述注册中心发送注册请求,包括:
获取配置信息,所述配置信息包含所述注册中心的第一应用程序编程接口的信息;
通过所述注册中心的第一应用程序编程接口向所述注册中心发送注册请求;
所述接收注册中心发送的部署命令,包括:
通过所述注册中心的第一应用程序编程接口,接收所述注册中心发送的部署命令。
16.一种注册中心,其特征在于,所述注册中心包括:
获取模块,用于获取为部署装置分配的待部署应用的应用蓝图和资源索引,所述应用蓝图包括用于唯一指示所述应用蓝图的应用蓝图标识、资源存储路径和可执行命令,所述资源索引包括资源获取地址和用于唯一指示所述资源索引的资源索引标识;所述资源获取地址为应用资源的获取地址;
建立模块,用于基于所述待部署应用的应用蓝图和资源索引,建立n组所述应用蓝图、所述资源索引和代理标识的对应关系,所述代理标识用于唯一标识所述部署装置,所述n为大于或等于1的整数;
第一发送模块,用于向所述部署装置发送部署命令,所述部署命令包括n组对应关系,所述部署命令用于指示所述部署装置通过每组所述对应关系中的所述资源获取地址获取应用资源,按照所述资源存储路径存储所述应用资源,并在存储所述应用资源后,执行所述可执行命令。
17.根据权利要求16所述的注册中心,其特征在于,
所述获取模块,包括:
第一接收子模块,用于接收待部署应用的m个资源索引,所述m个资源索引所对应的应用资源组成所述待部署应用在指定应用环境的完整待部署资源,所述m为大于或等于1的整数;
第二接收子模块,用于接收所述待部署应用的p个应用蓝图,所述p个应用蓝图的存储路径与所述m个资源索引对应;
获取子模块,用于在接收所述部署装置的订阅指令后,当所述部署装置为所述指定应用环境中的装置时,获取所述m个资源索引中的至少一个资源索引作为为所述部署装置分配的所述待部署应用的资源索引,并获取所述p个应用蓝图作为为所述部署装置分配的所述待部署应用的应用蓝图。
18.根据权利要求17所述的注册中心,其特征在于,
所述获取子模块,用于:
确定用于在所述指定应用环境部署所述完整待部署资源的至少一个目标部署装置,所述至少一个目标部署装置包括所述部署装置;
在所述m个资源索引中,为每个所述目标部署装置分配资源索引;
在所述p个应用蓝图中,为每个所述目标部署装置分配应用蓝图。
19.根据权利要求16至18任一所述的注册中心,其特征在于,所述注册中心还包括:
第二发送模块,用于当第一对应关系中的任一元素产生变化,向所述部署装置发送第一更新命令,所述第一更新命令包括:第二对应关系,所述第二对应关系为更新后的所述第一对应关系,所述第一对应关系和所述第二对应关系中的应用蓝图标识相同,所述第一对应关系为所述n组对应关系中的任意一组。
20.根据权利要求16至18任一所述的注册中心,其特征在于,所述注册中心还包括:
接收模块,用于在所述获取为部署装置分配的应用蓝图和资源索引之前,接收所述部署装置发送的注册请求;
分配模块,用于根据所述注册请求为所述部署装置分配所述代理标识;
第三发送模块,用于向所述部署装置发送注册请求响应,所述注册请求响应包括所述代理标识。
21.根据权利要求16至18任一所述的注册中心,其特征在于,
所述第一发送模块,用于通过所述注册中心的第一应用程序编程接口,向所述部署装置发送所述部署命令。
22.根据权利要求16至18任一所述的注册中心,其特征在于,所述应用资源包括:应用安装资源、应用配置文件、可执行文件、代码文件或应用差分包。
23.一种部署装置,其特征在于,所述部署装置包括:
第一接收模块,用于接收注册中心发送的部署命令,所述部署命令包括:n组应用蓝图、资源索引和代理标识的对应关系,所述代理标识用于唯一标识所述部署装置,所述应用蓝图包括用于唯一指示所述应用蓝图的应用蓝图标识、资源存储路径和可执行命令,所述资源索引包括资源获取地址和用于唯一指示所述资源索引的资源索引标识;所述资源获取地址为应用资源的获取地址;
第一获取模块,用于通过每组所述对应关系中的所述资源获取地址获取应用资源,按照所述资源存储路径存储所述应用资源,并在存储所述应用资源后,执行所述可执行命令。
24.根据权利要求23所述的部署装置,其特征在于,所述注册中心分配的应用蓝图标识与资源服务器所存储的应用资源一一对应,所述部署装置还包括:
第二接收模块,用于接收所述注册中心发送的第一更新命令,所述第一更新命令是所述注册中心在检测到第一对应关系中的任一元素产生变化后,向所述部署装置发送的命令,所述第一更新命令包括:第二对应关系,所述第一对应关系为n组所述对应关系中的任意一组,所述第二对应关系为更新后的所述第一对应关系,所述第一对应关系和所述第二对应关系中的应用蓝图标识相同;
检测模块,用于检测所述第二对应关系中产生变化的目标元素;
执行模块,用于按照所述第二对应关系,执行所述目标元素所对应的动作。
25.根据权利要求24所述的部署装置,其特征在于,
所述执行模块,用于:
当所述目标元素包括资源获取地址和/或资源存储路径时,通过所述第二对应关系中的资源获取地址获取应用资源,并在按照所述第二对应关系中的资源存储路径存储所述应用资源后,执行所述第二对应关系中的可执行命令;
当所述目标元素为可执行命令时,执行所述第二对应关系中的可执行命令。
26.根据权利要求24所述的部署装置,其特征在于,
所述执行模块,用于:
当所述目标元素包括资源存储路径时,按照所述第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照所述第二对应关系中的第二资源存储路径再次存储所述应用资源;
采用所述第二对应关系替换本地存储的所述第一对应关系。
27.根据权利要求26所述的部署装置,其特征在于,所述部署装置还包括:
第一记录模块,用于在所述按照所述第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照所述第二对应关系中的第二资源存储路径再次存储所述应用资源之后,记录所述第一资源存储路径和所述第二资源存储路径的对应关系;
第三接收模块,用于接收所述注册中心发送的回退指令,所述回退指令用于指示将应用资源的存储状态回退至上一存储状态;
第二获取模块,用于从当前存储的第二对应关系中获取所述第二资源存储路径;
第三获取模块,用于基于所述第一资源存储路径和所述第二资源存储路径的对应关系,获取所述第一资源存储路径;
第一更新模块,用于将所述当前存储的第二对应关系中所述第二资源存储路径更新为所述第一资源存储路径。
28.根据权利要求26所述的部署装置,其特征在于,所述部署装置还包括:
第二记录模块,用于在所述按照所述第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照所述第二对应关系中的第二资源存储路径再次存储所述应用资源之后,记录所述第一资源存储路径和所述第二资源存储路径的对应关系;
第四接收模块,用于接收所述注册中心发送的第二更新命令,所述第二更新命令是所述注册中心在检测到所述第二对应关系中的任一元素产生变化后,向所述部署装置发送的命令,所述更新命令包括:第三对应关系,所述第三对应关系为更新后的所述第二对应关系;
第二更新模块,用于当所述第三对应关系与所述第二对应关系只有资源存储路径不同,且所述第三对应关系中的资源存储路径与所述对应关系中记录的第一资源存储路径相同,将所述第二对应关系中所述第二资源存储路径更新为所述第一资源存储路径。
29.根据权利要求23至28任一所述的部署装置,其特征在于,所述部署装置还包括:
发送模块,用于在所述接收注册中心发送的部署命令之前,向所述注册中心发送注册请求;
第五接收模块,用于接收所述注册中心发送的注册请求响应,所述注册请求响应包括所述代理标识。
30.根据权利要求29所述的部署装置,其特征在于,所述发送模块,用于:
获取配置信息,所述配置信息包含所述注册中心的第一应用程序编程接口的信息;
通过所述注册中心的第一应用程序编程接口向所述注册中心发送注册请求;
所述第一接收模块,用于通过所述注册中心的第一应用程序编程接口,接收所述注册中心发送的部署命令。
31.一种部署系统,其特征在于,所述系统包括:权利要求16至22任一所述的注册中心和权利要求23至30任一所述的部署装置。
32.一种控制器,其特征在于,所述控制器包括:处理器、通信接口和存储器,所述通信接口和所述存储器分别与所述处理器连接,所述处理器被配置为执行所述存储器中存储的指令,所述处理器通过执行所述指令实现权利要求1至7任一所述的应用部署方法,或者,实现权利要求8至15任一所述的应用部署方法。
33.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在处理组件上运行时,使得所述处理组件执行权利要求1至7任一所述的应用部署方法,或者,执行权利要求8至15任一所述的应用部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011581815.5A CN112732273A (zh) | 2017-09-19 | 2017-09-19 | 应用部署方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/102331 WO2019056187A1 (zh) | 2017-09-19 | 2017-09-19 | 应用部署方法、装置及系统 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011581815.5A Division CN112732273A (zh) | 2017-09-19 | 2017-09-19 | 应用部署方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110463162A CN110463162A (zh) | 2019-11-15 |
CN110463162B true CN110463162B (zh) | 2021-01-05 |
Family
ID=65810284
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011581815.5A Pending CN112732273A (zh) | 2017-09-19 | 2017-09-19 | 应用部署方法、装置及系统 |
CN201780088614.1A Active CN110463162B (zh) | 2017-09-19 | 2017-09-19 | 应用部署方法、装置及系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011581815.5A Pending CN112732273A (zh) | 2017-09-19 | 2017-09-19 | 应用部署方法、装置及系统 |
Country Status (6)
Country | Link |
---|---|
US (3) | US11249744B2 (zh) |
EP (2) | EP3672199B1 (zh) |
CN (2) | CN112732273A (zh) |
HU (1) | HUE059370T2 (zh) |
PL (1) | PL3672199T3 (zh) |
WO (1) | WO2019056187A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
PL3672199T3 (pl) * | 2017-09-19 | 2022-09-12 | Huawei Technologies Co., Ltd. | Sposób, aparat i system do wdrażania aplikacji |
CN113821214A (zh) * | 2020-06-19 | 2021-12-21 | 中兴通讯股份有限公司 | 应用部署方法、应用蓝图生成方法、平台、终端和介质 |
CN111813439B (zh) * | 2020-07-17 | 2024-03-29 | 前海人寿保险股份有限公司 | 发布材料质量控制方法、装置、设备和计算机存储介质 |
CN112286545B (zh) * | 2020-09-21 | 2023-05-05 | 长沙市到家悠享网络科技有限公司 | 数据更新方法、装置、设备和存储介质 |
CN111897660B (zh) * | 2020-09-29 | 2021-01-15 | 深圳云天励飞技术股份有限公司 | 模型部署方法、模型部署装置及终端设备 |
CN112597057B (zh) * | 2021-01-04 | 2023-10-20 | 网易(杭州)网络有限公司 | 一种蓝图数据的差异化处理方法和装置 |
CN113590169B (zh) * | 2021-09-30 | 2021-12-21 | 武汉四通信息服务有限公司 | 应用部署方法、应用部署系统和计算机可读存储介质 |
CN114492846B (zh) * | 2022-04-06 | 2022-08-26 | 天聚地合(苏州)科技股份有限公司 | 基于可信执行环境的跨域联邦学习方法及系统 |
CN116501335B (zh) * | 2023-06-28 | 2023-09-19 | 北京安锐卓越信息技术股份有限公司 | 一种一站式建站系统的部署方法、装置及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455346A (zh) * | 2013-08-19 | 2013-12-18 | 北京京东尚科信息技术有限公司 | 应用程序部署方法、部署主控机、部署客户端和集群 |
CN105760199A (zh) * | 2016-02-23 | 2016-07-13 | 腾讯科技(深圳)有限公司 | 一种应用资源加载方法及其设备 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110126197A1 (en) * | 2009-11-25 | 2011-05-26 | Novell, Inc. | System and method for controlling cloud and virtualized data centers in an intelligent workload management system |
US8495570B2 (en) * | 2010-12-23 | 2013-07-23 | Microsoft Corporation | Resource deployment based on conditions |
CN103197952B (zh) * | 2012-01-09 | 2017-08-25 | 华为技术有限公司 | 基于云基础设施的针对应用系统维护部署的管理系统和方法 |
US9052961B2 (en) * | 2012-03-02 | 2015-06-09 | Vmware, Inc. | System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint |
US9047133B2 (en) * | 2012-03-02 | 2015-06-02 | Vmware, Inc. | Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment |
US8914768B2 (en) * | 2012-03-28 | 2014-12-16 | Bmc Software, Inc. | Automated blueprint assembly for assembling an application |
US20150304175A1 (en) | 2012-12-03 | 2015-10-22 | Hewlett-Packard Development Company, L.P. | Binding of application and infrastructure blueprints |
US9667746B2 (en) * | 2013-01-16 | 2017-05-30 | Oracle International Corporation | Executing a debugging operation during deployment of a blueprint within a cloud system |
CN103631623A (zh) | 2013-11-29 | 2014-03-12 | 浪潮(北京)电子信息产业有限公司 | 一种集群系统中部署应用软件的方法及装置 |
US9678731B2 (en) * | 2014-02-26 | 2017-06-13 | Vmware, Inc. | Methods and apparatus to generate a customized application blueprint |
US20150347170A1 (en) | 2014-05-27 | 2015-12-03 | Vmware, Inc. | Grouping virtual machines in a cloud application |
US9244669B2 (en) * | 2014-06-26 | 2016-01-26 | Vmware, Inc. | Deploying an application across multiple deployment environments |
US9645805B2 (en) * | 2014-06-26 | 2017-05-09 | Vmware, Inc. | Application blueprints based on service templates to deploy applications in different cloud environments |
US9948746B2 (en) * | 2015-06-15 | 2018-04-17 | International Business Machines Corporation | Request processing according to degradation monitoring |
US10200246B1 (en) * | 2015-09-01 | 2019-02-05 | Vmware, Inc. | Importing parameters from nested information-technology blueprints |
EP3494687B1 (en) * | 2016-08-03 | 2021-12-15 | Schneider Electric Industries SAS | Industrial software defined networking architecture for deployment in a software defined automation system |
US10949903B2 (en) * | 2017-05-05 | 2021-03-16 | Servicenow, Inc. | System, computer-readable medium, and method for blueprint-based cloud management |
PL3672199T3 (pl) * | 2017-09-19 | 2022-09-12 | Huawei Technologies Co., Ltd. | Sposób, aparat i system do wdrażania aplikacji |
-
2017
- 2017-09-19 PL PL17925815.7T patent/PL3672199T3/pl unknown
- 2017-09-19 EP EP17925815.7A patent/EP3672199B1/en active Active
- 2017-09-19 EP EP22171803.4A patent/EP4060481A1/en not_active Withdrawn
- 2017-09-19 WO PCT/CN2017/102331 patent/WO2019056187A1/zh unknown
- 2017-09-19 CN CN202011581815.5A patent/CN112732273A/zh active Pending
- 2017-09-19 HU HUE17925815A patent/HUE059370T2/hu unknown
- 2017-09-19 CN CN201780088614.1A patent/CN110463162B/zh active Active
-
2020
- 2020-03-18 US US16/822,765 patent/US11249744B2/en active Active
-
2022
- 2022-01-25 US US17/583,660 patent/US11513789B2/en active Active
- 2022-05-11 US US17/741,913 patent/US20220276854A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455346A (zh) * | 2013-08-19 | 2013-12-18 | 北京京东尚科信息技术有限公司 | 应用程序部署方法、部署主控机、部署客户端和集群 |
CN105760199A (zh) * | 2016-02-23 | 2016-07-13 | 腾讯科技(深圳)有限公司 | 一种应用资源加载方法及其设备 |
Also Published As
Publication number | Publication date |
---|---|
US20220276854A1 (en) | 2022-09-01 |
WO2019056187A1 (zh) | 2019-03-28 |
HUE059370T2 (hu) | 2022-11-28 |
EP3672199A4 (en) | 2020-08-05 |
EP4060481A1 (en) | 2022-09-21 |
EP3672199B1 (en) | 2022-06-22 |
EP3672199A1 (en) | 2020-06-24 |
US11513789B2 (en) | 2022-11-29 |
US20200218528A1 (en) | 2020-07-09 |
CN112732273A (zh) | 2021-04-30 |
US20220229652A1 (en) | 2022-07-21 |
CN110463162A (zh) | 2019-11-15 |
US11249744B2 (en) | 2022-02-15 |
PL3672199T3 (pl) | 2022-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110463162B (zh) | 应用部署方法、装置及系统 | |
CN108551487B (zh) | PaaS平台的应用部署方法、装置、服务器及存储介质 | |
CN108830720B (zh) | 智能合约运行方法、装置、系统和计算机可读存储介质 | |
CN108829409B (zh) | 一种分布式系统快速部署方法及系统 | |
EP3454213B1 (en) | Function library build architecture for serverless execution frameworks | |
CN105657191B (zh) | 一种基于Android系统的应用增量升级方法及系统 | |
CN104063239B (zh) | 移动终端的应用程序更新方法及服务器、客户端 | |
CN102622241B (zh) | 一种软件升级方法及装置 | |
CN108847950B (zh) | 电子装置、云系统软件自动部署方法及存储介质 | |
CN111651178A (zh) | 容器配置更新方法、装置、计算机设备和存储介质 | |
JP2014038610A (ja) | 仮想ディスク使用によるクラスタシステム構築の高速自動化方法 | |
CN104750555A (zh) | 一种Android程序中的进程管理方法和装置 | |
CN106126273A (zh) | 一种升级bios的方法 | |
CN104750528A (zh) | 一种Android程序中的组件管理方法和装置 | |
CN112328262A (zh) | 操作系统的部署方法、系统、装置及电子设备 | |
CN105516154A (zh) | 应用于SEAndroid系统的安全策略配置方法及装置 | |
CN114546588A (zh) | 任务的部署方法、装置、存储介质及电子装置 | |
CN110045998A (zh) | 加载动态库的方法及装置 | |
JP2015099547A (ja) | ソフトウェア更新方法、ソフトウェア更新装置、ソフトウェア更新プログラム、及びソフトウェア更新システム | |
CN106445599B (zh) | 应用程序的升级方法、升级装置和终端 | |
CN113031977A (zh) | 一种软件批量化安装方法以及相关装置 | |
US11425203B2 (en) | Commissioning a virtualized network function | |
CN112667350A (zh) | 配置调度方法、装置及系统 | |
CN111427603A (zh) | 应用程序的升级方法及装置 | |
CN114500268B (zh) | chart资源的部署方法、装置、服务器及存储介质 |
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 |