应用部署方法、装置及系统与流程

文档序号:24872087发布日期:2021-04-30 12:44阅读:62来源:国知局
本申请涉及云计算领域,特别涉及一种应用部署方法、装置及系统。
背景技术
::应用部署指的是将打包好的应用资源,按一系列编排好的任务流程部署到指定服务器的过程,该过程包括代码打包、环境创建、上下文准备、资源拷贝、应用启动、运行配置、系统加固等过程。目前的应用部署是面向流程的,相应的应用部署系统包括部署引擎、资源服务器和部署装置(英文:agent),部署引擎启动后加载任务脚本和存储在资源服务器中的应用资源。部署引擎在接收到人工或第三方触发的部署指令后,向部署装置发送任务脚本和应用资源,由部署装置基于该任务脚本和应用资源进行应用部署。但是,由于在应用部署时,需要技术人员开发出相应的任务脚本,而任务脚本的编写复杂,编写周期较长,因此,导致应用部署的复杂度较高,部署效率较低。技术实现要素:本申请提供了一种应用部署方法、装置及系统,可以解决应用部署的复杂度较高,部署效率较低的问题。该技术方案如下:第一方面,提供一种应用部署方法,所述方法应用于注册中心,所述方法包括:获取为部署装置分配的待部署应用的应用蓝图和资源索引,所述应用蓝图包括资源存储路径和可执行命令,所述资源索引包括资源获取地址;基于所述待部署应用的应用蓝图和资源索引,建立n组所述应用蓝图、所述资源索引和代理标识的对应关系,所述代理标识用于唯一标识所述部署装置,所述n为大于或等于1的整数;向所述部署装置发送部署命令,所述部署命令包括n组对应关系,所述部署命令用于指示所述部署装置通过每组所述对应关系中的所述资源获取地址获取应用资源,按照所述资源存储路径存储所述应用资源,并在存储所述应用资源后,执行所述可执行命令。由于应用蓝图和资源索引的格式简单,只需要简单的基础知识,即可迅速编写出应用部署所需对应关系,无需再编写复杂的任务脚本,降低了编排门槛,因此,降低了应用部署的复杂度,提高了应用部署的效率。部署装置在每次执行完一组对应关系中的可执行命令后,可以将相应的执行结果通过部署响应反馈给注册中心,或者,部署装置在执行完多组对应关系中的可执行命令后,将该多组可执行命令的执行结果通过同一部署响应反馈给注册中心。相应的,注册中心在接收该部署响应后,可以根据该部署响应携带的执行结果来确定后续操作。这样可以减少注册中心和部署装置交互过程中出现的问题。则可选的,所述方法还包括:注册中心接收所述部署装置发送的部署响应,所述部署响应包括所述部署装置执行所述可执行命令得到的执行结果。可选的,在不同的应用环境中,待部署应用需要部署的完整待部署资源(也即是需要部署的所有资源)不同,该完整待部署资源根据实际的部署场景不同和/或应用的环境不同,可能部署在一个或多个部署装置中,基于此,对于一个部署装置而言,所述获取为部署装置分配的待部署应用的应用蓝图和资源索引,包括:接收待部署应用的m个资源索引,所述m个资源索引所对应的应用资源组成所述待部署应用在指定应用环境的完整待部署资源,所述m为大于或等于1的整数;接收所述待部署应用的p个应用蓝图,所述p个应用蓝图的存储路径与所述m个资源索引对应;在接收所述部署装置的订阅指令后,当所述部署装置为所述指定应用环境中的装置时,获取所述m个资源索引中的至少一个资源索引作为为所述部署装置分配的所述待部署应用的资源索引,并获取所述p个应用蓝图作为为所述部署装置分配的所述待部署应用的应用蓝图。可选的,所述当所述部署装置为所述指定应用环境中的装置时,获取所述m个资源索引中的至少一个资源索引作为为所述部署装置分配的所述待部署应用的资源索引,并获取所述p个应用蓝图作为为所述部署装置分配的所述待部署应用的应用蓝图,包括:确定用于在所述指定应用环境部署所述完整待部署资源的至少一个目标部署装置,所述至少一个目标部署装置包括所述部署装置;在所述m个资源索引中,为每个所述目标部署装置分配资源索引;在所述p个应用蓝图中,为每个所述目标部署装置分配应用蓝图。可选的,由于部署场景的不同和/或应用环境的变化(如应用环境的升级或回退)等因素,n组对应关系中的一些元素可能产生变化,相应的,注册中心会向部署装置发送更新命令。则该应用部署方法还包括:当第一对应关系中的任一元素产生变化,向所述部署装置发送第一更新命令,所述第一更新命令包括:第二对应关系,所述第二对应关系为更新后的所述第一对应关系,所述第一对应关系和所述第二对应关系中的应用蓝图标识相同,所述第一对应关系为所述n组对应关系中的任意一组。在实际应用中,各个部署装置需要先在注册中心进行注册,才能由注册中心进行后续的管理与应用部署过程,则可选的,在所述获取为部署装置分配的应用蓝图和资源索引之前,所述方法还包括:接收所述部署装置发送的注册请求;根据所述注册请求为所述部署装置分配所述代理标识;向所述部署装置发送注册请求响应,所述注册请求响应包括所述代理标识。可选的,注册中心还可以配置第一应用程序编程接口和第二应用程序编程接口,该第一应用程序编程接口为用于与部署装置交互的接口,该第二应用程序编程接口为用于与控制端交互的接口。需要说明的是,注册中心还可以通过指定操作页面与控制端交互,该指定操作页面可以为超级文本标记语言(英文:hypertextmarkuplanguage;简称: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用于存储待部署的应用资源,该应用资源可以包括:应用安装资源、应用插件、应用配置文件、数据库配置文件、可执行文件、代码文件或应用差分包等运行应用所需的资源,其中,应用安装资源可以包括应用本体、数据库(英文:database;简称:db)资源和/或负载均衡(英文:loadbalancing;简称:lb)资源等,进一步的,应用本体可以包括该应用的安装包或者压缩包。注册中心110和部署装置120之间可以通过有线网络或无线网络建立连接。进一步的,如图2所示,注册中心110可以获取为部署装置120分配的待部署应用的应用蓝图(英文:blueprint)和资源索引(英文:index),并基于待部署应用的应用蓝图和资源索引,建立n组应用蓝图、资源索引和代理标识(英文:identification;简称:id)的对应关系,代理标识(英文:agentid)用于唯一标识部署装置,n为大于或等于1的整数,在注册中心110将该n组对应关系分配给相应的部署装置120后,该部署装置120即可根据该n组对应关系在资源服务器130中获取应用资源,并进行相应的资源部署。其中,应用蓝图至少包括:资源存储路径和可执行命令(英文:executablecommand或instruction),该资源存储路径用于指示应用资源被获取后所存储的路径,例如,“c:\programfiles\appx”。该可执行命令是部署装置120在按照应用蓝图中的资源存储路径存储获取的应用资源后,需要执行的命令,其可以包括系统更新命令、重启命令(英文:restartcommand)、关机命令、安装命令(英文:installcommand)和/或运行应用命令等等。该可执行命令可以是控制端输入的,该控制端可以为人工或者第三方系统(例如运行在一服务器上的控制系统)。由于部署装置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。资源索引至少包括:资源获取地址,该资源获取地址用于指示获取应用资源的地址,该资源获取地址可以为统一资源标识符(英文:uniformresourceidentifier;简称:uri),其中,uri的格式通常由两部分组成:第一部分是资源获取协议(或称为服务方式),如超文本传输协议(英文:hypertexttransferprotocol;简称:http)、文件传输协议(英文:filetransferprotocol;简称:ftp)或网络文件系统(英文:networkfilesystem;简称:nfs)协议;第二部分是资源获取的具体地址,该资源获取的具体地址包括存有应用资源的主机的互联网协议(英文:internetprotocol;简称:ip)地址(有时也包括接口号),以及主机中应用资源的具体地址,如目录和文件名等,一些场景下该主机中应用资源的具体地址可以为空。例如,资源获取地址为“http:/appx.com/”。进一步的,为了准确识别资源索引,资源索引还可以包括用于唯一标识该资源索引的资源索引标识(英文:index_id),该资源索引标识可以为一个字符串,如名称、代码、序列号或者预设字符(如数字)的组合等,如index_001。由上可知,资源索引可以包括至少一个元素,当其包括至少两个元素时,每两个元素可以采用预设的分隔符分隔,该分隔符可以为下划线、分号、冒号或空格等。例如,假设资源索引包括资源索引标识和资源获取地址,资源索引标识为index_id,资源获取地址为resource_uri,分隔符为冒号,则该资源索引的格式可以为:index_id:resource_uri。进一步的,注册中心110还可以配置第一应用程序编程接口和第二应用程序编程接口,该第一应用程序编程接口为用于与部署装置120交互的接口,该第二应用程序编程接口为用于与控制端交互的接口。需要说明的是,注册中心110还可以通过指定操作页面与控制端交互,该指定操作页面可以为超级文本标记语言(英文:hypertextmarkuplanguage;简称:html)页面,如html5页面。在本申请实施例中,注册中心110通过该第二应用程序编程接口或指定操作页面来获取控制端提供的应用蓝图和资源索引,注册中心110还可以通过第一应用程序编程接口向部署装置120提供包含应用蓝图和资源索引的对应关系。需要说明的是,上述应用蓝图、资源索引和对应关系等均可以由人工编排后输入至注册中心。本申请实施例提供一种应用部署方法,应用于图1和图2所示的应用部署系统,假设应用蓝图包括应用蓝图标识、资源存储路径和可执行命令,资源索引包括:资源索引标识和资源获取地址,如图3所示,本申请实施例中以注册中心为一个部署装置进行应用部署为例进行说明,其他部署装置的应用部署过程可以参考该一个部署装置,该应用部署方法包括:步骤201、部署装置在注册中心进行注册。在本申请实施例中,各个部署装置需要先在注册中心进行注册,才能由注册中心进行后续的管理与应用部署过程,可选的,如图4所示,部署装置在注册中心的注册过程可以包括:步骤2011、部署装置向注册中心发送注册请求。部署装置向注册中心发送该注册请求后,相应的,注册中心接收部署装置发送的注册请求。可选的,部署装置可以先获取配置信息,该配置信息包含注册中心的第一应用程序编程接口的信息,例如,该第一应用程序编程接口的信息可以为第一应用程序编程接口的标识;然后部署装置通过注册中心的第一应用程序编程接口向注册中心发送注册请求。相应的,注册中心通过该第一应用程序编程接口,接收部署装置发送的注册请求。其中,该第一应用程序编程接口是注册中心提供的与部署装置进行通信的接口,配置信息可以是预先配置在部署装置所安装的代理软件中,在部署装置上电后,部署装置即可自动从代理软件中获取该配置信息。步骤2012、注册中心根据注册请求为部署装置分配代理标识(英文:agent_id)。实际应用中,注册请求中可以携带有标识部署装置的序列号,如ip地址或媒体访问控制(英文:mediaaccesscontrol或者mediumaccesscontrol;简称:mac)地址(mac地址也称为物理地址或硬件地址),注册中心根据该序列号识别该部署装置,并为该部署装置分配唯一标识部署装置的代理标识。需要说明的是,该唯一标识指的是该标识在注册中心所管理的多个部署装置中能够唯一标识一个部署装置,也即是在应用部署系统中该代理标识不重复,该代理标识可以为一个字符串,如名称、代码、序列号或者预设字符(如数字)的组合等,例如该代理标识可以为agent_001。可选的,注册请求中还可以携带该部署装置的端口号等等信息。注册中心可以根据部署装置携带的序列号确定该部署装置所属的应用环境。例如,根据部署装置的ip地址确定该部署装置为生产环境中的部署装置。步骤2013、注册中心向部署装置发送注册请求响应,该注册请求响应包括代理标识。当部署装置接收到注册中心发送的注册请求响应时,注册过程完成。实际应用中,部署装置还可以在接收到注册请求响应后回复注册中心一个携带有代理标识的响应信息,以告知注册中心该部署装置成功接收到代理标识,注册完成。这样可以减少注册中心和部署装置交互过程中出现的问题。当部署装置在注册中心注册完成后,注册中心才能对部署装置进行管理,并进行后续的应用资源部署。步骤202、注册中心获取为部署装置分配的待部署应用的应用蓝图和资源索引,该应用蓝图包括资源存储路径和可执行命令,该资源索引包括资源获取地址。在不同的应用环境中,待部署应用需要部署的完整待部署资源(也即是需要部署的所有资源)不同,例如应用环境可以包括开发环境(英文:developmentenvironment)、测试环境(英文:testenvironment)、集成环境(英文:acceptancetestingenvironment)或生产环境(英文:productionenvironment),待部署应用在这几种应用环境中的完整待部署资源不同。其中,开发环境是专门用于开发应用的服务器环境或隔离环境等,其配置与相应的需要开发的应用匹配,开发环境是一个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:\programfiles\appx:install_cmd&run_cmd,其中,install_cmd代表安装命令,run_cmd代表运行命令,资源索引为:index_001:http:/appx.com/。则部署命令中携带的对应关系可以为appxblueprint_001:index_001:agent_001,资源获取地址为“http:/appx.com/”,资源存储路径为“c:\programfiles\appx”,可执行命令为安装命令和运行命令。部署装置通过“http:/appx.com/”获取appx002安装包,并将appx002安装包存储在文件夹“c:\programfiles\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:\programfiles\appx:install_cmd&run_cmd,资源索引为:index_002:http:/appx2.com/。则第二对应关系相对于第一对应关系产生变化的元素为资源获取地址:“http:/appx2.com/”,以及资源存储路径:“d:\programfiles\appx”,则部署装置通过“http:/appx2.com/”重新获取appx002安装包,并将appx002安装包存储在文件夹“d:\programfiles\appx”中,在存储完成后,执行对appx002安装包的安装命令和运行命令。第二种可实现方式,当目标元素包括可执行命令时,部署装置执行第二对应关系中的可执行命令。例如,参考上述步骤205的例子,第二对应关系为appxblueprint_001:index_001:agent_001,应用蓝图为:appxblueprint_001:c:\programfiles\appx:update_cmd,其中,“update_cmd”为更新命令,资源索引为:index_001:http:/appx.com/。则第二对应关系相对于第一对应关系产生变化的元素为可执行命令:“update_cmd”,则部署装置只需执行对appx002安装包的更新命令即可。采用上述第一种可实现方式和第二种可实现方式的提供的方式所执行的动作较上述第一种方式中直接执行第二对应关系所对应的动作所执行的动作较少,效率较高。在本申请实施例中,应用资源更新包括多种场景,例如应用升级、应用资源回退和配置文件更新等,本申请实施例以应用升级和应用资源回退为例进行说明:采用上述第一种方式和第二种方式中的第一种可实现方式,可以实现应用升级,应用的升级是指对于同一类型的应用资源,采用高版本的应用资源替换低版本的应用资源的过程。具体的,当需要进行应用升级时,控制端针对资源服务器中更新后的应用资源(该应用资源的版本比更新前的应用资源的版本高),可以更新第一对应关系中的应用蓝图和/或资源索引,得到第二对应关系,然后采用上述第一种方式或第二种方式的第一种可实现方式执行第二对应关系对应的动作即可。例如,仍然参考上述步骤205的例子,假设升级后的应用资源为appx003(即appx的第三版)安装包,可选的,控制端可以将资源获取地址为“http:/appx.com/”所对应的应用资源appx002安装包替换为appx003安装包,然后将应用蓝图中的资源存储路径由“c:\programfiles\appx”更新为“d:\programfiles\appx”得到第二对应关系,部署装置获取该第二对应关系后,部署装置通过“http:/appx.com/”获取appx003安装包,并将appx003安装包存储在文件夹“d:\programfiles\appx”中,在存储完成后,执行对appx003安装包的安装命令和运行命令。以实现appx应用的升级。可选的,控制端还可以将资源索引中的资源获取地址“http:/appx.com/”更新为“http:/appx3.com/”,对应的应用资源为appx003安装包,然后将应用蓝图中的资源存储路径由“c:\programfiles\appx”更新为“d:\programfiles\appx”得到第二对应关系,部署装置获取该第二对应关系后,通过“http:/appx3.com/”获取appx003安装包,并将appx003安装包存储在文件夹“d:\programfiles\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:\programfiles\appx”更新为“d:\programfiles\appx”得到第二对应关系,部署装置获取该第二对应关系后,部署装置通过“http:/appx.com/”获取appx001安装包,并将appx001安装包存储在文件夹“d:\programfiles\appx”中,在存储完成后,执行对appx001安装包的安装命令和运行命令。以实现appx应用的回退。可选的,控制端还可以将资源索引中的资源获取地址“http:/appx.com/”更新为“http:/appx1.com/”,对应的应用资源为appx001安装包,然后将应用蓝图中的资源存储路径由“c:\programfiles\appx”更新为“d:\programfiles\appx”得到第二对应关系,部署装置获取该第二对应关系后,通过“http:/appx1.com/”获取appx001安装包,并将appx001安装包存储在文件夹“d:\programfiles\appx”中,在存储完成后,执行对appx001安装包的安装命令和运行命令。以实现appx应用的回退。可选的,控制端还可以将资源索引中的资源获取地址“http:/appx.com/”更新为“http:/appx1.com/”得到第二对应关系,部署装置获取该第二对应关系后,通过“http:/appx1.com/”获取appx001安装包,并将appx001安装包存储在文件夹“c:\programfiles\appx”中,在存储完成后,执行对appx001安装包的安装命令和运行命令。以实现appx应用的回退。需要说明的是,当目标元素包括资源存储路径,部署装置可以采用上述第一种可实现方式来执行相应的动作,也可以采用以下第三种可实现方式来执行相应的动作:第三种可实现方式,当目标元素包括资源存储路径时,部署装置按照第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照第二对应关系中的第二资源存储路径再次存储该应用资源;然后,部署装置采用第二对应关系替换本地存储的第一对应关系,也即是采用第二对应关系覆盖第一对应关系。例如,参考上述步骤205的例子,第二对应关系为appxblueprint_001:index_001:agent_001,应用蓝图为:appxblueprint_001:d:\programfiles\appx:install_cmd&run_cmd,资源索引为:index_001:http:/appx.com/。则第二对应关系相对于第一对应关系产生变化的元素为资源存储路径:“d:\programfiles\appx”,则第一资源存储路径为“c:\programfiles\appx”,第二资源存储路径为:“d:\programfiles\appx”,部署装置可以通过“c:\programfiles\appx”获取appx002安装包,并将appx002安装包存储在文件夹“d:\programfiles\appx”中,然后采用第二对应关系替换第一对应关系。采用该第三种可实现方式的提供的方式所执行的动作较上述第一种可实现方式中执行的动作少,效率较高。进一步的,采用该第三种可实现方式将第二对应关系替换第一对应关系之后,可以删除通过第一对应关系所下载的应用资源,例如,在步骤205中,根据第一对应关系将appx002安装包存储在“c:\programfiles\appx”中,在采用上述第三种可实现方式将上述appx002安装包存储在“d:\programfiles\appx”后,将“c:\programfiles\appx”存储的appx002安装包删除。但是,如果保留通过第一对应关系所下载的应用资源,在后续过程中,还可以实现资源快速回退。该资源快速回退过程可以包括以下两种实现方式:第一种实现方式,该快速回退过程包括:步骤a1、在按照第一对应关系中的第一资源存储路径获取本地存储的应用资源,按照第二对应关系中的第二资源存储路径再次存储应用资源之后,部署装置记录第一资源存储路径和第二资源存储路径的对应关系。例如,第一资源存储路径为:c:\programfiles\appx,第二资源存储路径为:d:\programfiles\appx,相应记录的第一资源存储路径和第二资源存储路径的对应关系为c:\programfiles\appx-d:\programfiles\appx,当然,上述对应关系还可以有其他记录方式,本申请实施例对此不作限定。步骤a2、部署装置接收注册中心发送的回退指令,该回退指令用于指示将应用资源的存储状态回退至上一存储状态。在本申请实施例中,在需要进行快速回退时,控制端可以触发注册中心创建回退指令,该回退指令用于指示将应用资源的存储状态回退至上一存储状态。该回退指令是针对上述对应关系中只变化了资源存储路径的情况所产生的指令。步骤a3、部署装置从当前存储的第二对应关系中获取第二资源存储路径。步骤a4、部署装置基于第一资源存储路径和第二资源存储路径的对应关系,获取第一资源存储路径。步骤a5、部署装置将当前存储的第二对应关系中第二资源存储路径更新为第一资源存储路径。例如,第一对应关系可以为appxblueprint_001:index_001:agent_001,资源获取地址为“http:/appx.com/”,资源存储路径为“c:\programfiles\appx”,可执行命令为安装命令和运行命令。部署装置接收到回退指令后,在第二对应关系中获取第二资源存储路径“d:\programfiles\appx”,查询第一资源存储路径和第二资源存储路径的对应关系c:\programfiles\appx-d:\programfiles\appx,得到第一资源存储路径:“c:\programfiles\appx”,然后将第二对应关系中第二资源存储路径更新为第一资源存储路径,得到第一对应关系为appxblueprint_001:index_001:agent_001,应用蓝图为:appxblueprint_001:d:\programfiles\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.application.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这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1