应用程序的自动化部署方法及装置与流程

文档序号:20162898发布日期:2020-03-24 21:12阅读:294来源:国知局
应用程序的自动化部署方法及装置与流程

本发明涉及计算机技术领域,更具体地,涉及一种应用程序的自动化部署方法及装置。



背景技术:

随着互联网的快速发展,用户对应用程度的要求也在同步提高,从而导致了应用程度更新迭代的速度越来越快,应用的种类越来越多,应用部署的频率也越来越高。

在应用程序的开发阶段,可能在短时间需要进行多次部署到测试环境、开发环境。人工手动去完成程序部署,需要进行大量的重复性操作,消耗大量时间。为了减少人力、物力的消耗,互联网行业提出了很多应用程序的自动化部署的方法。应用自动部署旨在简化部署的配置,将重复性动作通过程序代替,只需要输入关键信息即可。但由于应用程序的多样性、以及运行应用程序所依赖的环境的复杂性,现有自动化部署方法只适用于单一应用和对运行应用程序所依赖的环境(即应用程序的运行环境)没有要求的情况。因此,能适用于复杂运行环境的应用程序的自动化部署成为目前业界亟待解决的课题。



技术实现要素:

本发明实施例提供一种应用程序的自动化部署方法及装置,用以解决或者至少部分地解决现有技术存在的难以对运行环境复杂的应用程序进行自动化部署的缺陷。

第一方面,本发明实施例提供一种应用程序的自动化部署方法,包括:

检测目标计算机是否已安装目标应用程序所需的运行环境;

若否,则获取所述运行环境的安装包,根据所述运行环境的安装包,将所述运行环境安装到所述目标计算机上;

获取所述目标应用程序的安装包和配置信息,根据所述目标应用程序的安装包,将所述目标应用程序安装到所述目标计算机上,根据所述目标应用程序的配置信息对安装好的所述目标应用程序进行配置。

优选地,所述检测目标计算机是否已安装目标应用程序所需的运行环境之后,还包括:

若是,则获取所述目标应用程序的安装包和配置信息,根据所述目标应用程序的安装包,将所述目标应用程序安装到所述目标计算机上,根据所述目标应用程序的配置信息对安装好的所述目标应用程序进行配置。

优选地,所述运行环境包括所述目标应用程序引用的数据库和/或开发工具。

优选地,所述检测目标计算机是否已安装目标应用程序所需的运行环境之前,还包括:

若判断获知满足预设的部署条件,则触发检测目标计算机是否已安装目标应用程序所需的运行环境的操作。

优选地,所述获取所述目标应用程序的安装包和配置信息之后还包括:

获取部署日志。

优选地,所述获取所述目标应用程序的安装包和配置信息之后还包括:

获取所述目标计算机的负载;

若判断获知所述目标计算机的负载达到预设的阈值,则发出告警信息。

优选地,获取所述目标应用程序的安装包的具体步骤包括:

获取所述目标应用程序的源文件;

调用所述源文件对应的插件,根据所述源文件,生成所述目标应用程序的安装包。

第二方面,本发明实施例提供一种应用程序的自动化部署装置,包括:

环境检测模块,用于检测目标计算机是否已安装目标应用程序所需的运行环境;

环境安装模块,用于获取所述运行环境的安装包,根据所述运行环境的安装包,将所述运行环境安装到所述目标计算机上;

应用部署模块,获取所述目标应用程序的安装包和配置信息,根据所述目标应用程序的安装包,将所述目标应用程序安装到所述目标计算机上,根据所述目标应用程序的配置信息对安装好的所述目标应用程序进行配置。

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,执行所述程序时实现如第一方面的各种可能的实现方式中任一种可能的实现方式所提供的应用程序的自动化部署方法的步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面的各种可能的实现方式中任一种可能的实现方式所提供的应用程序的自动化部署方法的步骤。

本发明实施例提供的应用程序的自动化部署方法及装置,通过检测获知目标计算机未安装目标应用程序的运行环境时,将目标应用程序的运行环境安装到目标计算机上,将目标应用程序部署到目标计算机上,能实现在对运行环境复杂的应用程序进行自动化部署。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明实施例提供的应用程序的自动化部署方法的流程示意图;

图2为根据本发明实施例提供的应用程序的自动化部署装置的结构示意图;

图3为根据本发明实施例提供的应用程序的自动化部署装置的结构示意图;

图4为根据本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了克服现有技术的上述问题,本发明实施例提供一种应用程序的自动化部署方法及装置,其发明构思是,通过检测目标计算机是否已安装目标应用程序所需的运行环境,在未安装运行环境时,先安装运行环境,再部署目标应用程序,能实现在对运行环境复杂的应用程序进行自动化部署,能保证在部署目标应用程序之后,就可以在运行环境中运行该目标应用程序。

图1为根据本发明实施例提供的应用程序的自动化部署方法的流程示意图。如图1所示,该方法包括:步骤s101、检测目标计算机是否已安装目标应用程序所需的运行环境。

需要说明的是,本发明实施例提供的应用程序的自动化部署方法的执行主体为应用程序的自动化部署装置(可以简称为“部署装置”)。

步骤s101之前,用户可以通过用户终端,将用于部署目标应用程序的配置文件发送至该部署装置。该部署装置接收该配置文件之后,可以存储该配置文件。

该配置文件可以携带有目标计算机的地址、每一服务器上需要部署的目标应用程序、每一目标应用程序的安装包的获取地址、每一目标应用程序的配置信息和在目标计算机上的部署路径、每一目标应用程序所需的运行环境的信息。

目标计算机可以为一个或多个。目标计算机通常为服务器。

目标应用程序可以为一个或多个。

该部署装置根据该配置文件,可以获取每一目标计算机及该目标计算机上需要部署的每一目标应用程序的信息。

对于该目标计算机,该部署装置根据需要部署的每一目标应用程序的运行环境的信息,检测该目标计算机是否已安装该目标应用程序的运行环境。

目标应用程序的运行环境,指该目标应用程序的运行所依赖的软件环境。如果未安装目标应用程序的运行环境,该目标应用程序不能正常启动和运行。

步骤s102、若否,则获取运行环境的安装包,根据运行环境的安装包,将运行环境安装到目标计算机上。

具体地,若检测结果为该目标计算机未安装该目标应用程序的运行环境,则根据该目标应用程序的运行环境的信息,获取该运行环境的安装包。

可以理解的时,如果该运行环境包括多种软件,未安装的是其中的一部分,则可以只获取未安装的部分运行环境的安装包。

运行环境包括的软件,一般为通用的操作系统、数据库、开发工具、插件等,因此,该部署装置可以预先获取并存储运行环境的安装包,或者可以通过预先获知的运行环境的安装包的下载地址,直接获取运行环境的安装包。

运行环境的安装支持离线和在线两种方式。在线方式,指该部署装置可以直接运行该运行环境的安装包,将该运行环境安装到该目标计算机上;离线方式,指该部署装置将该运行环境的安装包发送至该目标计算机,向该目标计算机发送指令,以驱动该目标计算机运行该运行环境的安装包,将该运行环境安装到该目标计算机上。

步骤s103、获取目标应用程序的安装包和配置信息,根据目标应用程序的安装包,将目标应用程序安装到目标计算机上,根据目标应用程序的配置信息对安装好的目标应用程序进行配置。

具体地,目标应用程序的部署可以包括两个阶段:安装阶段和配置阶段。

安装阶段的具体步骤包括:

该目标应用程序所需的运行环境安装完成之后,可以根据该目标应用程序的安装包的获取地址,获取该目标应用程序的安装包和在目标计算机上的部署路径。

获取该目标应用程序的安装包之后,可以将该目标应用程序的安装包发送至该目标计算机,通过在该目标计算机上运行该目标应用程序的安装包,将该目标应用程序安装到该目标计算机的该部署路径上。

配置阶段的步骤包括:

该目标应用程序所需的运行环境安装完成之后,可以获取目标应用程序的配置信息;

该目标应用程序的安装阶段完成之后,根据该目标应用程序的配置信息,对运行该目标应用程序所需的参数进行设置。

通过对执行上述步骤,可以将每一目标计算机需要安装的目标应用程序,安装到该目标计算机上,并更改各自的配置,完成目标应用程序的部署,从而能将通过服务器脚本技术和程序相结合实现简化实际复杂的部署行为,将所有的可替代和重复性的工作均由程序代替完成,使部署能更高效、准确地进行。

需要说明的是,该目标应用程序部署完成后,可以直接启动该目标应用程序,而不会出现因运行环境不满足,导致该目标应用程序无法正常启动,而需要安装缺少的运行环境的情况。

本发明实施例提供的应用程序的自动化部署方法,在针对需要频繁部署和需要一次性在多台服务器上进行部署时,具有巨大的优势。

需要说明的是,本发明实施例提供的应用程序的自动化部署方法,尤其适用于在目标应用程序的开发阶段,对该目标应用程序的每一开发版本进行部署。对于不同的版本,可以仅修改配置文件。配置文件的存储路径可以预先指定。

例如,可以实际需要,对配置文件中目标应用程序的安装包的获取地址、该目标应用程序的配置信息和所需的运行环境的信息中的至少一个进行修改。

修改配置文件后,即可根据修改后的配置文件对新版本的目标应用程序进行部署。

本发明实施例通过检测获知目标计算机未安装目标应用程序的运行环境时,将目标应用程序的运行环境安装到目标计算机上,将目标应用程序部署到目标计算机上,能实现在对运行环境复杂的应用程序进行自动化部署。

基于上述各实施例的内容,检测目标计算机是否已安装目标应用程序所需的运行环境之后,还包括:若是,则获取目标应用程序的安装包和配置信息,根据目标应用程序的安装包,将目标应用程序安装到目标计算机上,根据目标应用程序的配置信息对安装好的目标应用程序进行配置。

具体地,步骤s101之前,用户还可以自定义进行环境安装,在该目标计算机上安装自定义的该目标程序所需的运行环境,此时,步骤s101的检测结果为该目标计算机已安装该目标应用程序的运行环境。

当安装的是新版本的目标应用程序时,若新旧两个版本的目标应用程序所需的运行环境相同,则步骤s101的检测结果也是该目标计算机已安装该目标应用程序的运行环境。

若步骤s101的检测结果为该目标计算机已安装该目标应用程序的运行环境,则可以根据该目标应用程序的安装包的获取地址,获取该目标应用程序的安装包,以及根据配置文件,获取该目标应用程序的配置信息和在目标计算机的该部署路径。

获取该目标应用程序的安装包之后,可以将该目标应用程序的安装包发送至该目标计算机,通过在该目标计算机上运行该目标应用程序的安装包,将该目标应用程序安装到该目标计算机的该部署路径上。

该目标应用程序的安装阶段完成之后,根据该目标应用程序的配置信息,对运行该目标应用程序所需的参数进行设置。

本发明实施例通过检测获知目标计算机已安装目标应用程序的运行环境时,将目标应用程序部署到目标计算机上,能更高效、准确地进行应用程序的自动化部署。

基于上述各实施例的内容,运行环境包括目标应用程序引用的数据库和/或开发工具。

具体地,对于任一目标应用程序,该目标应用程序所需的运行环境包括该目标应用程序引用的数据库和/或开发工具。

需要说明的是,本发明实施例提供的应用程序的自动化部署方法,尤其适用于在目标应用程序的开发阶段,对该目标应用程序的每一开发版本进行部署,以对该开发版本进行测试和调试。

因此,该目标应用程序所需的运行环境,还可以包括jdk等开发工具。

本发明实施例通过在部署目标应用程序的过程中,将引用的数据库和/或开发工具等运行环境进行一并部署,能实现目标应用程序部署完成后就能正常启动和运行,能提高应用程序的部署效率。

基于上述各实施例的内容,检测目标计算机是否已安装目标应用程序所需的运行环境之前,还包括:若判断获知满足预设的部署条件,则触发检测目标计算机是否已安装目标应用程序所需的运行环境的操作。

具体地,预设的部署条件可以包括定时部署条件、更新部署条件、轮询部署条件、条件部署条件。

定时部署条件,指当前时刻是否为预先指定的时刻。是,则满足;不是,则不满足。

预先指定的时刻,可以为具体地某一时刻,或者为与具体地某一时刻相隔某一预设的时间间隔的时刻。

更新部署条件,指目标计算机上已安装的目标应用程序是否有新版本。是,则满足;不是,则不满足。

轮询部署条件,指通过依次询问每一目标计算机,获知该目标计算机是否需要进行目标应用程序的部署。是,则满足;不是,则不满足。

条件部署条件,指上述定时部署条件、更新部署条件、轮询部署条件之外的某一条件。

满足预设的部署条件时,可以通过运行预设的脚本,触发并执行步骤s101。

本发明实施例根据预设部署条件,触发目标应用程序的部署,能更灵活地对目标应用程序进行自动化部署。

基于上述各实施例的内容,获取目标应用程序的安装包和配置信息之后还包括:获取部署日志。

具体地,在获取目标应用程序的安装包和配置信息之后,可以实时获取该目标应用程序的部署日志。

该目标应用程序的部署日志,记录了在该目标计算机上部署该目标程序的部署过程中产生的日志。

获取该部署日志之后,可以将该部署日志进行输出,发送至用户终端。

用户可以通过用户终端查看该部署日志,获知自动部署执行到哪一步,也可以在部署失败时及时获知失败原因。

部署日志,可以包括运行日志、目标计算机的登录日志和操作日志中的至少一种。

部署日志记录了部署的全过程,任何环节出现问题都可以通过该部署日志反映出来。

部署日志,还可以记录目标应用程序每次更新的内容。

还可以通过用户终端对部署日志进行分析,获知部署失败的原因,或者通过该部署装置对部署日志进行分析,获知部署失败的原因,将携带部署失败的原因的分析结果也发送至用户终端。

本发明实施例通过获取部署日志,能更方便地获知目标应用程序的部署进度;还能更方便地获知部署失败的原因,从而能及时排除导致部署失败的原因,提高部署成功率。

基于上述各实施例的内容,获取目标应用程序的安装包和配置信息之后还包括:获取目标计算机的负载。

具体地,在获取目标应用程序的安装包和配置信息之后,可以实时监测目标计算机的负载,对目标应用程序的部署过程中,该目标计算机的运行状态进行实时监控,使得用户能够及时地对目标计算机进行维护,能够大量减少运维人员的工作量,提升工作效率。

负载可以包括cpu使用率和内存占用率等。

若判断获知目标计算机的负载达到预设的阈值,则发出告警信息。

具体地,获取目标计算机的负载之后,判断目标计算机的负载是否达到预设的阈值。

例如:内存占用率的阈值为85%,当目标计算机的实时内存占用率为88%时,则达到该阈值。

可以理解的是,若负载包括多个参数,当任一参数的实时值大于该参数预设的阈值,则发出告警信息。

告警信息,可以通过调用邮件服务发送邮件、调用某一带有消息发送功能的软件发送消息等方式实现。

本发明实施例通过对目标计算机的负载进行监测并报警,能更及时地对目标计算机进行维护,能够大量减少运维人员的工作量,提升工作效率。

基于上述各实施例的内容,获取目标应用程序的安装包的具体步骤包括:获取目标应用程序的源文件。

需要说明的是,对于任一目标应用程序,该配置文件可以不携带该目标应用程序的安装包的获取地址,而可以携带该目标应用程序的源文件的获取地址。

需要说明的是,步骤s101之前,用户还可以通过用户终端,将该配置文件所携带的源文件对应的插件发送至并该部署装置上。该部署装置接收上述插件之后,安装上述插件。

相应地,若该目标应用程序的运行环境已安装到目标计算机上,则可以获取该目标应用程序的源文件的获取地址。

根据该目标应用程序的源文件的获取地址,可以获取该目标应用程序的源文件。

调用源文件对应的插件,根据源文件,生成目标应用程序的安装包。

具体地,可以调用该源文件对应的插件,对该源文件进行编译,生成该目标应用程序的安装包。

本发明实施例通过根据目标应用程序的源文件,生成目标应用程序的安装包,目标应用程序的安装包的获取更加灵活,应用程序的自动化部署方法的适用范围更广。

图2为根据本发明实施例提供的应用程序的自动化部署装置的结构示意图。基于上述各实施例的内容,如图2所示,该装置包括环境检测模块201、环境安装模块202和应用部署模块203,其中:

环境检测模块201,用于检测目标计算机是否已安装目标应用程序所需的运行环境;

环境安装模块202,用于获取运行环境的安装包,根据运行环境的安装包,将运行环境安装到目标计算机上;

应用部署模块203,获取目标应用程序的安装包和配置信息,根据目标应用程序的安装包,将目标应用程序安装到目标计算机上,根据目标应用程序的配置信息对安装好的目标应用程序进行配置。

具体地,环境检测模块201分别与环境安装模块202、应用部署模块203电连接;环境安装模块202与应用部署模块203电连接。

对于每一目标计算机,环境检测模块201该目标计算机根据需要部署的每一目标应用程序的运行环境的信息,检测该目标计算机是否已安装该目标应用程序的运行环境。

若检测结果为该目标计算机未安装该目标应用程序的运行环境,则环境安装模块202根据该目标应用程序的运行环境的信息,获取该运行环境的安装包,通过离线方式或在线方式,运行该运行环境的安装包,将该运行环境安装到该目标计算机上。

应用部署模块203可以根据该目标应用程序的安装包的获取地址,获取该目标应用程序的安装包,以及根据配置文件,获取该目标应用程序的配置信息和在目标计算机的该部署路径;将该目标应用程序的安装包发送至该目标计算机,通过在该目标计算机上运行该目标应用程序的安装包,将该目标应用程序安装到该目标计算机的该部署路径上;安装完成之后,根据该目标应用程序的配置信息,对运行该目标应用程序所需的参数进行设置。

图3为根据本发明实施例提供的应用程序的自动化部署装置的结构示意图。如图3所示,该装置还可以包括:配置中心模块204、日志查看模块205和运行监控模块206。

配置中心模块204,用于接收并存储用户终端发送的配置文件。

日志查看模块205,用于获取部署日志。

运行监控模块206,用于获取目标计算机的负载;若判断获知目标计算机的负载达到预设的阈值,则发出告警信息。

本发明实施例提供的应用程序的自动化部署装置,用于执行本发明上述各实施例提供的应用程序的自动化部署方法,该应用程序的自动化部署装置包括的各模块实现相应功能的具体方法和流程详见上述应用程序的自动化部署方法的实施例,此处不再赘述。

该应用程序的自动化部署装置用于前述各实施例的应用程序的自动化部署方法。因此,在前述各实施例中的应用程序的自动化部署方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。

本发明实施例通过检测获知目标计算机未安装目标应用程序的运行环境时,将目标应用程序的运行环境安装到目标计算机上,将目标应用程序部署到目标计算机上,能实现在对运行环境复杂的应用程序进行自动化部署。

图4为根据本发明实施例提供的电子设备的实体结构示意图。基于上述实施例的内容,如图4所示,该电子设备可以包括:处理器(processor)401、存储器(memory)402和总线403;其中,处理器401和存储器402通过总线403完成相互间的通信;处理器401用于调用存储在存储器402中并可在处理器401上运行的计算机程序指令,以执行上述各方法实施例所提供的应用程序的自动化部署方法,例如包括:检测目标计算机是否已安装目标应用程序所需的运行环境;若否,则获取运行环境的安装包,根据运行环境的安装包,将运行环境安装到目标计算机上;获取目标应用程序的安装包和配置信息,根据目标应用程序的安装包,将目标应用程序安装到目标计算机上,根据目标应用程序的配置信息对安装好的目标应用程序进行配置。

本发明另一实施例公开一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的应用程序的自动化部署方法,例如包括:检测目标计算机是否已安装目标应用程序所需的运行环境;若否,则获取运行环境的安装包,根据运行环境的安装包,将运行环境安装到目标计算机上;获取目标应用程序的安装包和配置信息,根据目标应用程序的安装包,将目标应用程序安装到目标计算机上,根据目标应用程序的配置信息对安装好的目标应用程序进行配置。

此外,上述的存储器402中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明另一实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的应用程序的自动化部署方法,例如包括:检测目标计算机是否已安装目标应用程序所需的运行环境;若否,则获取运行环境的安装包,根据运行环境的安装包,将运行环境安装到目标计算机上;获取目标应用程序的安装包和配置信息,根据目标应用程序的安装包,将目标应用程序安装到目标计算机上,根据目标应用程序的配置信息对安装好的目标应用程序进行配置。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行上述各个实施例或者实施例的某些部分的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1