PaaS平台的应用部署方法、装置、服务器及存储介质与流程

文档序号:15466274发布日期:2018-09-18 19:23阅读:336来源:国知局
本申请实施例涉及PaaS平台
技术领域
,特别涉及一种PaaS平台的应用部署方法、装置、服务器及存储介质。
背景技术
:平台即服务(Platform-as-a-Service,PaaS)是一种将服务器平台或开发环境作为服务提供给应用开发商的服务模式。PssS平台提供了应用开发到上线过程中所涉及的一系列基础服务支持,降低了应用开发的难度。相关技术中,开发人员需要将当前环境对应的配置文件打包到应用发布包中,以便PaaS平台根据应用发布包部署应用。比如,在开发环境下,开发人员需要将开发环境对应的配置文件打包到应用发布包中;而在测试环境下,开发人员则需要将测试环境对应的配置文件打包到应用发布包中。技术实现要素:本申请实施例提供了一种PaaS平台的应用部署方法、装置、服务器及存储介质,可以用于解决为不同环境打包不同的应用发布包,无法保证不同环境下应用发布包一致性的问题。所述技术方案如下:第一方面,提供了一种PaaS平台的应用部署方法,所述方法用于PaaS平台中的应用服务器,所述方法包括:接收管理服务器下发的应用部署指令,所述应用部署指令用于指示所述应用服务器部署目标应用,所述应用部署指令中包含应用发布包参数和差异配置文件参数;根据所述应用发布包参数下载应用发布包,所述应用发布包中包含应用代码和统一配置文件,且不同环境下的所述应用代码和所述统一配置文件相同;基于所述应用发布包启动所述目标应用时,根据所述差异配置文件参数下载差异配置文件,其中,不同环境下的所述差异配置文件不同;加载所述差异配置文件。第二方面,提供了一种PaaS平台的应用部署装置,所述装置用于PaaS平台中的应用服务器,所述装置包括:指令接收模块,用于接收管理服务器下发的应用部署指令,所述应用部署指令用于指示所述应用服务器部署目标应用,所述应用部署指令中包含应用发布包参数和差异配置文件参数;第一下载模块,用于根据所述应用发布包参数下载应用发布包,所述应用发布包中包含应用代码和统一配置文件,且不同环境下的所述应用代码和所述统一配置文件相同;第二下载模块,用于基于所述应用发布包启动所述目标应用时,根据所述差异配置文件参数下载差异配置文件,其中,不同环境下的所述差异配置文件不同;加载模块,用于加载所述差异配置文件。第三方面,提供了一种服务器,所述服务器包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如第一方面所述的应用部署方法。第四方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如第一方面所述的应用部署方法。本申请实施例中,应用服务器接收到管理服务器下发的应用部署指令后,根据指令中的应用发布包参数下载应用发布包,并在基于应用发布包启动目标应用时,根据指令中的差异配置文件参数下载并加载差异配置文件,从而实现应用部署;通过将不同环境下保持一致的应用代码和统一配置文件,与不同环境下不同的差异配置文件分离,使得应用发布包在各种环境下能够保持一致,避免开发人员需要针对不同的环境打包不同的应用发布包,保证了不同环境下应用发布包的一致性。附图说明图1是本申请一个实施例提供的PaaS平台的架构图;图2是PaaS平台中应用部署过程的实施示意图;图3是应用服务器中Agent的结构示意图;图4示出了本申请一个示例性实施例示出的应用部署方法的流程图;图5示出了本申请另一个示例性实施例示出的应用部署方法的流程图;图6A示出了本申请另一个示例性实施例示出的应用部署方法的流程图;图6B是图6A所示的应用部署方法的实施示意图;图7示出了本申请一个实施例提供的应用部署装置的结构框图;图8示出了本申请一个实施例提供的服务器的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。为了方便理解,下面对本申请实施例中涉及的名词进行解释。环境:本申请实施例中涉及的环境指应用的部署环境。根据应用在开发过程中所处的阶段进行划分,该环境可以包括开发环境、测试环境和生产环境(或称为发布环境)等等;或者,该部署环境还可以根据应用服务器(运行该应用)所属机房的地理位置进行划分,比如,该环境可以包括北京机房环境、上海机房环境、深圳机房环境等等。统一配置文件:指应用中,在不同环境下均保持不变的配置文件。比如,由于应用在应用服务器中的端口号并不受环境影响(同一应用在开发环境、测试环境、生产环境下对应的端口号相同),因此,该统一配置文件包括端口配置文件。又比如,当应用对应的资源配置(包括硬件资源配置和网络资源配置)并不受环境影响,该统一配置文件还可以包括资源配置文件。本申请实施例并不对统一配置文件的具体类型进行限定。差异配置文件:与统一配置文件相反的,差异配置文件指因环境不同而存在差异的配置文件。比如,在测试环境下,应用使用测试数据库,而在生产环境下,应用则使用正式数据库,而测试数据库与正式数据库的路径不同,因此,用于设置数据库连接方式的数据库连接配置文件即为差异配置文件。本申请实施例并不对差异配置文件的具体类型进行限定。请参考图1,其示出了本申请一个实施例提供的PaaS平台的架构图。该PaaS平台包括若干个机房10,各个机房10设置在不同地理区域,且每个机房10中包含应用服务器11、管理服务器12、注册服务器13和存储服务器14。在一种可能的配置方式中,每个机房中设置有两台管理服务器12、三台注册服务器13以及三台存储服务器14。本申请实施例并不对机房中各种服务器的配置数量进行限定。应用服务器11是运行有应用进程的服务器。其中,不同的应用进程用于提供不同的服务,且应用进程直接运行在应用服务器11的操作系统上,或,应用进程运行在应用服务器11内部的容器中,以便进行资源(包括硬件资源和网络资源)和访问权限隔离,减少应用进程间的相互影响。为了实现对应用进程的管理,本申请实施例中,应用服务器11中设置有代理(Agent),该Agent即用于对运行的各个应用进程进行管理。可选的,该Agent为应用服务器11中的独立进程,用于控制应用进程的启动和停止,并对应用进程健康检查,从而保证应用进程所提供服务的可用性。本申请各个实施例提供的应用部署方法即由应用服务器(Agent)执行。管理服务器12用于管理机房中各台服务器。可选的,管理服务器12负责应用部署、系统管理、消息队列管理、数据库管理、告警服务、搜索管理、分布式系统可靠协调管理等等。在一种可能的实施方式中,消息队列管理包括RabbitMQ管理,数据库管理包括Redis和MongoDB管理,搜索管理包括ElasticSearch管理,分布式系统可靠协调管理包括Zookeeper管理。为了保证管理的一致性,如图1所示,不同机房中的管理服务器12之间进行双向同步,并保持完全对等。比如,当机房A中管理服务器12的管理配置信息发生变更时,机房A中的管理服务器12即与机房B中的管理服务器12进行一次同步,以便机房B中的管理服务器12更新自身的管理配置信息。注册服务器13是用于为应用进程注册服务端口的服务器,后续终端即通过该服务端口访问相应的应用进程,从而获取应用提供的相应服务。可选的,注册服务器13为全局命名(GlobalNamingServices,GNS)服务器,且注册的服务端口为传输控制协议(TransmissionControlProtocol,TCP)端口。为了保证同一应用进程在不同机房中命名注册的一致性,如图1所示,不同机房中的注册服务器13之间进行双向同步,并保持完全对等。比如,当机房A的注册服务器13为新增应用进程注册了服务端口后,该注册服务器13即与机房B中的注册服务器13进行一次同步,确保新增应用进程在机房B中的注册服务器13完成注册,并注册相同的服务端口。存储服务器14是用于进行数据存储的服务器,可选的,该存储服务器14是分布式环境下高可用的键值(key-value)存储服务器,比如,存储服务器14为ETCD服务器或MySQL服务器。可选的,存储服务器14与注册服务器13相连,用于存储并维护应用进程与服务端口之间的对应关系;可选的,存储服务器14与管理服务器12相连,用于存储并维护不同应用进程对应的应用信息。在一种可能的应用场景下,如图2所示,当需要部署新的应用进程时,管理员登陆管理服务器12后,通过管理服务器12向应用服务器11下发应用部署指令,管理服务器12根据该指令部署应用进程,并通过注册服务器13为应用进程注册服务端口。完成应用进程部署后,管理服务器12中的Agent启动应用进程,并在完成启动后,对应用进程进行健康检查,从而确保应用进程的可用性。并且,管理服务器12和注册服务器13通过数据更新的方式,分别将新增应用进程的应用信息及其服务端口更新至存储服务器14中,并与其它机房中的管理服务器12以及注册服务器13进行双向同步。可选的,管理服务器12下发应用部署指令中包含应用规格、部署信息、环境变量、应用配置等信息。其中,应用规格包括中央处理(CentralProcessionUnit,CPU)规格、内存规格、存储容量规格以及网络上下行带宽规格中的至少一种;部署信息包括分配应用服务器标识、配置实例数量、文件目录、日志目录、部署脚本和回滚脚本中的至少一种;环境变量包括Java堆内存参数、垃圾回收(GarbageCollection,GC)参数、域名系统(DomainNameSystem,DNS)服务器信息、DNS生存周期(Time-To-Live,TTL)中的至少一种;应用配置包括应用进程标识、配置版本号等等。可选的,应用服务器11中的Agent采用插件管理模式,利用插件实现对应用进程的管理,该Agent中包含若干实现不同功能的插件以及统一的插件管理模块,并支持插件的动态安装和卸载。如图3所示,Agent中包括消息队列插件、数据库插件、应用部署插件、日志查看插件和健康检查插件。在实现插件动态安装时,插件通过管理服务器12调用应用程序编程接口(ApplicationProgrammingInterface,API)进行插件注册,完成注册后,Agent的插件管理模块通过下载、编译、加载、校验等一系列操作,完成插件安装。当接收到管理服务器12下发的指令时,Agent中的插件管理模块即将指令分发至相应的插件来执行。比如,当接收到应用部署指令时,插件管理单元即将指令分发至应用部署插件,由应用部署插件完成应用部署;在应用完成部署并启动后,插件管理模块通过健康检查插件对应用进程进行健康检查,保证应用进程的可用性。为了保证Agent的可靠性,避免因Agent宕机导致无法服务的问题,可选的,Agent在应用服务器11启动后,启动自检程序,从而通过自检程序定期检查Agent是否启动,并在检测到未启动的情况下实现重启,避免宕机。可选的,如图3所示,Agent中还包括升级管理模块,用于根据管理服务器12下发的升级指令,完成Agent自升级。为了保证升级安全性,Agent接收到升级指令后,对拉取到的升级包进行合法性检测,并在检测到升级包合法时,对当前Agent程序进行备份后进行升级。若自检程序检测到升级失败,则使用备份对Agent进行恢复重启。出于安全性考虑,管理服务器12向应用服务器11发送的指令使用私钥加密,应用服务器11接收到指令后,使用相应的公钥对指令进行解密,并在解密成功后执行指令并返回执行结果。可选的,针对不同类型的指令,管理服务器12加密时使用的私钥不同,相应的,应用服务器11进行解密时使用的公钥不同。其中,对于Agent操作指令,管理服务器12使用第一私钥对其进行加密,应用服务器11使用第一公钥对其进行解密,第一私钥和第一公钥分别存储在管理服务器12和应用服务器11本地;对于Agent升级指令,管理服务器12使用第二私钥对其进行加密,应用服务器11使用第二公钥对其进行解密,由于Agent操作指令会影响到Agent运行,因此,第二私钥由管理员保管,且不存储在管理服务器12中,而第二公钥则存储在应用服务器11本地。需要说明的是,每个机房还可以包含其它必要组件,比如用于实现服务发现、请求分流以及负载均衡的接入网关,本申请实施例并不对此构成限定。相关技术中,开发人员会将所有配置文件统一存储在配置中心(或本地),在打包阶段使用Maven构建应用发布包时,即通过-P参数来区分不同环境的配置文件。比如,在测试阶段,使用“-Ptest”来构建测试环境的应用发布包(包含应用代码和测试环境下需要的配置文件);在线上发布阶段,使用“-Pprod”构建生产环境的应用发布包(包含应用代码和生产环境下需要的配置文件)。后续应用程序即根据不同的应用发布包部署应用。显然,上述方式中,需要针对不同环境构建不同的应用发布包,无法保持不同环境下应用发布包内容的一致性,存在安全风险。比如,当应用代码在测试环境下通过测试并需要打包呈生产环境下的应用发布包以进行发布时,需要保证应用发布包中应用代码的一致性(即保证生产环境下的应用代码与测试环境下的应用代码保持一致),然而,采用上述方式构建应用发布包时,由于不同环境下的应用发布包内容不一致,因此即便应用代码被他人篡改也无法被及时发现。而本申请实施例中,应用代码以及不同环境下保持一致的统一配置文件被打包成应用发布包,并存储在发布包服务器中,而不同环境下存在差异的差异配置文件则被存储在配置文件服务器中。后续部署应用时,应用服务器分别从发布包服务器和配置文件服务器中下载应用发布包和差异配置文件,进而夹在配置文件完成应用部署。由于不同环境下的应用发布包保持一致,因此能够保证不同环境下应用代码的一致性,并能够及时发现应用代码被篡改的情况,提高了应用发布的安全性。下面采用示意性的实施例进行说明。请参考图4,其示出了本申请一个示例性实施例示出的应用部署方法的流程图。本实施例以该方法应用于图1所示的应用服务器11来举例说明。该方法包括:步骤401,接收管理服务器下发的应用部署指令,应用部署指令用于指示应用服务器部署目标应用,应用部署指令中包含应用发布包参数和差异配置文件参数。可选的,应用发布包参数用于指示目标应用对应的应用发布包的下载地址,差异配置文件参数用于指示目标应用在当前环境下对应的差异配置文件的下载地址。其中,不同环境下,同一应用对应的应用发布包参数相同;不同环境下,同一应用对应的差异配置文件参数不同。由于PaaS平台中运行有大量应用,而不同应用对应的配置不同,因此为了区分不同的应用,可选的,应用发布包参数中包含目标应用的应用标识、发布包下载地址和发布包下载密钥,差异配置文件参数中包含目标应用的应用标识、配置环境、配置版本和差异配置文件下载密钥。在其他可能的实施方式中,该应用发布包参数和差异配置文件参数中还可以包含其他参数,本申请实施例并对此进行限定。可选的,为了提高应用部署的安全性,管理服务器使用本地私钥对应用部署指令进行加密,应用服务器的Agent接收到应用部署指令后,即使用本地公钥对其进行解密,若解密成功,则确定应用部署指令安全,并提取其中包含的参数;若解密失败,则确定应用部署指令存在风险,并对其进行丢弃。步骤402,根据应用发布包参数下载应用发布包,应用发布包中包含应用代码和统一配置文件,且不同环境下的应用代码和统一配置文件相同。在一种可能的实施方式中,对于应用代码和统一配置文件,开发人员预先将其打包成应用发布包,并将应用发布包存储在发布包服务器(或称为发布包仓库)中;对于不同环境下存在差异的差异配置文件,开发人员则将其存储在不同于发布包服务器的配置文件服务器(或称为配置中心)中。相应的,接收到应用部署指令后,应用服务器的Agent即根据应用发布包参数,从发布包服务器中下载应用发布包,并基于该应用发布包启动目标应用。在一种可能的实施方式中,Agent根据应用发布包参数中的发布包下载地址,向目标发布包服务器(PaaS平台中可能包含多个发布包服务器,各个发布包服务器同步对等)发送发布包获取请求,该发布包获取请求中包含应用标识。目标发布包服务器接收到发布包获取请求后,根据应用标识查找相应的应用发布包,并将查找到的应用发布包发送给应用服务器。为了实现应用隔离,提高应用发布包的安全性,发布包服务器中的应用发布包对应各自的发布包下载密钥。相应的,应用服务器发送的发布包获取请求中还包含发布包下载密钥。当发布包获取请求中包含的发布包下载密钥与应用发布包对应的发布包下载密钥一致时,发布包服务器将查找到的应用发布包发送给应用服务器。步骤403,基于应用发布包启动目标应用时,根据差异配置文件参数下载差异配置文件,其中,不同环境下的差异配置文件不同。可选的,在启动目标应用的过程中,Agent根据应用部署指令中包含的差异配置文件参数,从相应的配置文件服务器中下载差异配置文件,以便后续加载运行该差异配置文件。步骤404,加载差异配置文件。Agent加载下载到的差异配置文件,从而完成目标应用部署。采用本申请实施例提供的方法,由于同一应用在不同环境下的应用发布包保持一致,因此同一应用发布包可以在全球各环境通用;同时,用于存储应用发布包的服务器通过简单的对比(比如哈希值或MD5值对比),即可快速确定应用发布包中的应用代码是否被篡改,从而提高应用部署的安全性。本申请实施例中,应用服务器接收到管理服务器下发的应用部署指令后,根据指令中的应用发布包参数下载应用发布包,并在基于应用发布包启动目标应用时,根据指令中的差异配置文件参数下载并加载差异配置文件,从而实现应用部署;通过将不同环境下保持一致的应用代码和统一配置文件,与不同环境下不同的差异配置文件分离,使得应用发布包在各种环境下能够保持一致,避免开发人员需要针对不同的环境打包不同的应用发布包,保证了不同环境下应用发布包的一致性。请参考图5,其示出了本申请另一个示例性实施例示出的应用部署方法的流程图。本实施例以该方法应用于图1所示的应用服务器11来举例说明。该方法包括:步骤501,接收管理服务器下发的应用部署指令,应用部署指令用于指示应用服务器部署目标应用,应用部署指令中包含应用发布包参数和差异配置文件参数。本步骤的实施方式与上述步骤401相似,本实施例在此不再赘述。本实施例以差异配置文件参数中包含目标应用的应用标识、配置中心地址、配置环境、配置版本和下载密钥为例进行说明。其中,应用标识用于唯一标识目标应用,不同应用对应的应用标识不同,比如,该应用标识为App001。配置中心地址是存储有差异配置文件的配置文件服务器的地址,比如,该配置中心地址是差异配置文件所在配置文件服务器的互联网协议(InternetProtocol,IP)地址。配置环境用于指示差异配置文件适用的环境,比如,该配置环境为生产环境。下载密钥是下载差异配置文件时使用的密钥,比如,该下载密钥为123456。步骤502,根据差异配置文件参数注册环境变量。本实施例中,Agent接收到应用部署指令后,将差异配置文件参数作为环境变量进行注册,后续应用启动过程中,即通过读取环境变量的方式从配置文件服务器中下载差异配置文件。在一种可能的注册方式中,Agent将差异配置文件参数作为环境变量写入指定脚本文件中,以便后续从该指定脚本文件中读取环境变量。如图6A所示,本步骤可以包括如下步骤。步骤502A,读取差异配置文件参数,并将差异配置文件参数作为环境变量写入环境变量脚本文件中,环境变量脚本文件位于应用启动路径下。可选的,目标应用的应用启动路径下预设有环境变量脚本文件,其中,应用启动路径下的文件在目标应用启动时运行。示意性,应用启动路径下设置有环境变量脚本文件env.sh,当接收到的差异配置文件参数中包含应用标识“App001”、配置中心地址“disconf.server.com”、配置环境“测试环境”、配置版本“1.0.0”以及下载密钥“123456”时,Agent将上述差异配置文件参数作为环境变量写入env.sh后,env.sh中包含的内容如下:步骤503,根据应用发布包参数,从发布包服务器中下载应用发布包。在一种可能的实施方式中,应用发布包参数中包含发布包仓库地址(即发布包服务器的地址)以及应用标识,Agent通过访问发布包仓库地址,从发布包服务器处下载应用标识对应的应用发布包。需要说明的是,上述步骤502和503之间并不存在严格的先后顺序,本实施例中仅以步骤502在503之前执行为例进行说明,并不对两者的执行顺序构成限定。步骤504,基于应用发布包启动目标应用时,通过运行启动脚本读取环境变量。可选的,Agent编译运行应用发布包中的应用代码,启动目标应用。启动目标应用的过程中,Agent加载应用发布包中的统一配置文件。由于应用完全启动不仅需要加载统一配置文件,还需要加载当前环境对应的差异配置文件,因此,在启动过程中,Agent还需要读取注册的环境变量,进而根据环境变量下载并加载差异配置文件。在一种可能的实施方式中,与上述步骤502A对应的,当环境变量被写入应用启动路径下的环境变量脚本文件中时,本步骤包括步骤504A。步骤504A,通过运行启动脚本,读取应用启动路径下环境变量脚本文件中包含的环境变量。示意性的,当写有环境变量的环境变量脚本文件为env.sh时,目标应用运行启动脚本时,通过“source$(dirname$0)/../../env.sh”命令读取env.sh中的环境变量。步骤505,调用目标应用内置的配置文件SDK,向配置文件服务器发送包含环境变量的配置文件获取请求。在一种可能的实施方式中,目标应用内置有配置文件SDK,该SDK即用于从配置文件服务器处下载差异配置文件。目标应用启动过程中,即通过该SDK从配置文件服务器处下载差异配置文件。如图6A所示,本步骤包括如下步骤。步骤505A,根据应用标识、配置环境、配置版本和下载密钥,生成配置文件获取请求。在实际应用场景下,配置文件服务器中存储有不同应用对应的差异配置文件,且同一应用在不同环境甚至不同版本下的差异配置文件也可能不同。在一个示意性的例子中,配置文件服务器中存储的差异配置文件如表一所示。表一应用标识配置环境配置版本差异配置文件App001开发环境(dev)1.0.0配置文件AApp001测试环境(test)1.0.0配置文件BApp001生产环境(prod)1.0.0配置文件CApp002开发环境1.0.0配置文件DApp002测试环境1.0.0配置文件EApp002生产环境1.0.0配置文件F为了确保从配置文件服务器处获取准确的差异配置文件,Agent调用目标应用的配置文件SDK,从而根据应用标识、配置环境和配置版本,生成配置文件获取请求。可选的,为了提高差异配置文件下载的安全性,配置文件服务器为差异配置文件设置对应的下载密钥。其中,不同应用对应差异配置文件的下载密钥不同。进一步的,生成的配置文件获取请求中,还包括从环境变量中读取到的下载密钥。结合步骤502A中的示例,生成的配置文件获取请求中包含应用标识“App001”、配置中心地址“disconf.server.com”、配置环境“test”、配置版本“1.0.0”以及下载密钥“123456”。步骤505B,调用配置文件SDK,向配置中心地址指示的配置文件服务器发送配置文件获取请求,配置文件服务器用于对下载密钥进行验证,并在验证通过后下发差异配置文件。由于PaaS平台中可能设置有多台配置文件服务器,因此,为了实现从指定配置文件服务器处获取差异配置文件,目标应用通过调用配置文件SDK,向配置中心地址所指示的配置文件服务器发送配置文件获取请求,其中,该配置文件获取请求可以采用超文本传输协议(HyperTextTransferProtocol,HTTP)请求。结合步骤502A中的示例,目标应用将配置文件获取请求发送至“disconf.server.com”。配置文件服务器接收到配置文件获取请求后,根据应用标识、配置环境、配置版本查询对应的差异配置文件,并检测配置文件获取请求中的下载密钥与目标应用对应的下载密钥是否一致,若两者一致,则将查询到的差异配置文件下发给应用服务器。结合表一以及步骤502A中的示例,配置文件服务器根据应用标识“App001”、配置环境“test”以及配置版本“1.0.0”,查询到差异配置文件“配置文件A”,并将“配置文件A”下发给应用服务器。步骤506,接收配置文件服务器下发的差异配置文件。相应的,应用服务器接收配置文件服务器下发的差异配置文件。步骤507,加载差异配置文件本步骤的实施方式与步骤404相似,本实施例在此不再赘述。如图6B所示,在应用服务器中部署应用的完整流程包括:1、开发人员将差异配置文件上传至配置中心(配置文件服务器);2、开发人员通过管理服务器构建应用发布包,经将应用发布包存储到发布包仓库(发布包服务器);3、管理服务器向应用服务器发送应用部署指令;4、应用服务器中的Agent根据差异配置文件参数注册环境变量;5、Agent根据应用发布包参数从发布包仓库下载应用发布包;6、Agent启动应用;7、应用进程读取环境变量;8、应用进程根据环境变量从配置中心下载差异配置文件。本实施例中,应用服务器将差异配置文件参数作为环境变量写入应用启动路径下的环境变量脚本文件中,使得目标应用在启动过程中,即可从环境变量脚本文件中读取环境变量,进而根据环境变量从配置文件服务器处下载差异配置文件,提高了下载差异配置文件的便捷性。另外,本实施例中,基于应用标识、配置环境、配置版本和下载密钥,生成配置文件获取请求,以便配置文件服务器根据配置文件获取请求反馈相应的差异配置文件,使得不同应用消费方仅能从配置文件服务器处获取到自身应用的配置文件,达到了隔离不同应用的效果,提高了PaaS平台中应用的安全性。请参考图7,其示出了本申请一个实施例提供的应用部署装置的结构框图。该应用部署装置可以通过软件、硬件或者两者的结合实现成为图1中应用服务器11的全部或一部分。该装置包括:指令接收模块710,用于接收管理服务器下发的应用部署指令,所述应用部署指令用于指示所述应用服务器部署目标应用进程,所述应用部署指令中包含应用发布包参数和差异配置文件参数;第一下载模块720,用于根据所述应用发布包参数下载应用发布包,所述应用发布包中包含应用代码和统一配置文件,且不同环境下的所述应用代码和所述统一配置文件相同;第二下载模块730,用于基于所述应用发布包启动所述目标应用时,根据所述差异配置文件参数下载差异配置文件,其中,不同环境下的所述差异配置文件不同;加载模块740,用于加载所述差异配置文件。可选的,所述第一下载模块720,用于:根据所述应用发布包参数,从发布包服务器中下载所述应用发布包;所述第二下载模块730,用于:根据所述差异配置文件参数,从配置文件服务器中下载所述差异配置文件;其中,所述发布包服务器与所述配置文件服务器是不同的服务器。可选的,所述装置还包括:注册模块,用于根据所述差异配置文件参数注册环境变量;所述第二下载模块730,包括:变量读取单元,用于通过运行启动脚本读取所述环境变量;请求发送单元,用于调用所述目标应用内置的配置文件软件开发工具包SDK,向所述配置文件服务器发送包含所述环境变量的配置文件获取请求;接收单元,用于接收所述配置文件服务器下发的所述差异配置文件。可选的,所述注册模块,用于:读取所述差异配置文件参数,并将所述差异配置文件参数作为环境变量写入环境变量脚本文件中,所述环境变量脚本文件位于应用启动路径下;所述变量读取单元,用于:通过运行所述启动脚本,读取所述应用启动路径下所述环境变量脚本文件中包含的所述环境变量。可选的,所述差异配置文件参数中包含所述目标应用的应用标识、配置中心地址、配置环境、配置版本和下载密钥中的至少一种;所述应用标识用于唯一标识所述目标应用;所述配置中心地址是存储有所述差异配置文件的所述配置文件服务器的地址;所述配置环境用于指示所述差异配置文件适用的环境;所述下载密钥是下载所述差异配置文件时使用的密钥。可选的,所述请求发送单元,用于:根据所述应用标识、所述配置环境、所述配置版本和所述下载密钥,生成所述配置文件获取请求;调用所述配置文件SDK,向所述配置中心地址指示的所述配置文件服务器发送所述配置文件获取请求,所述配置文件服务器用于对所述下载密钥进行验证,并在验证通过后下发所述差异配置文件。本申请实施例中,应用服务器接收到管理服务器下发的应用部署指令后,根据指令中的应用发布包参数下载应用发布包,并在基于应用发布包启动目标应用时,根据指令中的差异配置文件参数下载并加载差异配置文件,从而实现应用部署;通过将不同环境下保持一致的应用代码和统一配置文件,与不同环境下不同的差异配置文件分离,使得应用发布包在各种环境下能够保持一致,避免开发人员需要针对不同的环境打包不同的应用发布包,保证了不同环境下应用发布包的一致性。请参考图8,其示出了本申请一个实施例提供的服务器的结构示意图。该服务器用于实施上述实施例提供的应用部署方法。具体来讲:所述服务器800包括中央处理单元(CPU)801、包括随机存取存储器(RAM)802和只读存储器(ROM)803的系统存储器804,以及连接系统存储器804和中央处理单元801的系统总线805。所述服务器800还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)806,和用于存储操作系统813、应用程序814和其他程序模块815的大容量存储设备807。所述基本输入/输出系统806包括有用于显示信息的显示器808和用于用户输入信息的诸如鼠标、键盘之类的输入设备809。其中所述显示器808和输入设备809都通过连接到系统总线805的输入输出控制器810连接到中央处理单元801。所述基本输入/输出系统806还可以包括输入输出控制器810以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器810还提供输出到显示屏、打印机或其他类型的输出设备。所述大容量存储设备807通过连接到系统总线805的大容量存储控制器(未示出)连接到中央处理单元801。所述大容量存储设备807及其相关联的计算机可读介质为服务器800提供非易失性存储。也就是说,所述大容量存储设备807可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备807可以统称为存储器。根据本发明的各种实施例,所述服务器800还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器800可以通过连接在所述系统总线805上的网络接口单元811连接到网络812,或者说,也可以使用网络接口单元811来连接到其他类型的网络或远程计算机系统。所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集经配置以由一个或者一个以上处理器执行,以实现上述实施例中各个步骤的功能。本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的应用部署方法。本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的应用部署方法。本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1