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

文档序号:11154489阅读:735来源:国知局
本发明实施例涉及计算机
技术领域
,尤其涉及一种应用系统部署方法及装置。
背景技术
:随着运营规模和运营业务范围的不断扩展,企业对大型系统的功能、多业务支持及集成度提出了更高的要求,一个大型应用系统往往包含着数以百计的应用组件,如何快速的部署应用系统中编码完成的应用组件显得尤为重要。大型应用系统的开发,一般会使用到各种技术,如c++\java\nodejs等,也会用到各种第三方的工具,如数据库、mongodb、消息队列。在现有技术中,为了能在不同的企业部署应用系统,要考虑各种环境依赖和冲突问题。比如原来设备中已经安装了数据库,则我们自身的程序无法重复安装,只能使用原先已经安装好的数据库,而此时需咨询原先安装的数据库的账号和密码,或者当tomcat端口被占用时,需要安装tomcat后再修改配置文件等。因此,目前使用的应用系统部署方案,存在部署效率低、部署不方便的问题。技术实现要素:本发明提供一种应用系统部署方法及装置,以提高应用系统部署效率,使得应用系统部署便捷化。第一方面,本发明实施例提供了一种应用系统部署方法,包括:根据应用系统的原始镜像制定实际需要的目标镜像,所述原始镜像从容器引擎对应的数据源拉取获得;根据所述目标镜像生成目标容器,在所述目标容器中调试目标镜像对应的程序;根据调试后的程序生成配置文件和环境变量,根据所述配置文件和所述环境变量生成管理程序文件;根据所述管理程序文件在客户机上部署所述应用系统。进一步地,在所述根据应用系统的原始镜像制定实际需要的目标镜像之前,还包括:将所述应用系统拆分成至少一个单进程服务,所述单进程服务能够管理维护对应的子进程;所述根据应用系统的原始镜像制定实际需要的目标镜像,包括:分别根据拆分得到的各单进程服务的原始镜像制定实际需要的目标镜像;所述根据所述目标镜像生成目标容器,在所述目标容器中调试目标镜像对应的程序,包括:分别根据制定的各目标镜像生成目标容器,并分别在生成的目标容器中调试对应目标镜像的单进程服务程序。进一步地,所述在所述目标容器中调试目标镜像对应的程序,包括:在所述目标容器中调试目标镜像对应的程序,直至程序运行正常。进一步地,在根据所述配置文件和所述环境变量生成管理程序文件之后、根据所述管理程序文件在客户机上部署所述应用系统之前,还包括:依据所述管理程序文件的启动指令启动目标容器,如果启动不成功,则调试修改所述配置文件,根据修改后的配置文件重新生成管理程序文件并依据重新生成的管理程序文件的启动指令启动目标容器,直至启动成功;将启动成功时的管理程序文件打包为管理程序文件压缩包。进一步地,所述根据所述管理程序文件在客户机上进行部署,包括:在客户机上安装所述容器引擎;解压所述管理程序文件压缩包,安装并运行管理程序文件;判断所述应用系统对应的通信协议端口是否被占用,若所述通信协议端口被占用,则修改所述管理程序文件的防火墙例外端口并重新运行管理程序文件。第二方面,本发明实施例还提供了一种应用系统部署装置,包括:目标镜像制定模块,用于根据应用系统的原始镜像制定实际需要的目标镜像,所述原始镜像从容器引擎对应的数据源拉取获得;目标容器生成模块,用于根据所述目标镜像生成目标容器,在所述目标容器中调试目标镜像对应的程序;配置文件和环境变量生成模块,用于根据调试后的程序生成配置文件和环境变量,根据所述配置文件和所述环境变量生成管理程序文件;应用系统部署模块,用于根据所述管理程序文件在客户机上部署所述应用系统。进一步地,所述应用系统部署装置还包括:单进程服务拆分模块,用于将所述应用系统拆分成至少一个单进程服务,所述单进程服务能够管理维护对应的子进程;所述目标镜像制定模块具体用于:分别根据拆分得到的各单进程服务的原始镜像制定实际需要的目标镜像;所述目标容器生成模块具体用于:分别根据制定的各目标镜像生成目标容器,并分别在生成的目标容器中调试对应目标镜像的单进程服务程序。进一步地,所述目标容器生成模块用于:在所述目标容器中调试目标镜像对应的程序,直至程序运行正常。进一步地,所述应用系统部署装置还包括:目标容器启动模块,用于依据所述管理程序文件的启动指令启动目标容器,如果启动不成功,则调试修改所述配置文件,根据修改后的配置文件重新生成管理程序文件并依据重新生成的管理程序文件的启动指令启动目标容器,直至启动成功;压缩包打包模块,用于将启动成功时的管理程序文件打包为管理程序文件压缩包。进一步地,所述应用系统部署模块具体用于:在客户机上安装所述容器引擎;解压所述管理程序文件压缩包,安装并运行管理程序文件;判断所述应用系统对应的通信协议端口是否被占用,若所述通信协议端口被占用,则修改所述管理程序文件的防火墙例外端口并重新运行管理程序文件。本发明实施例通过将从容器引擎对应的数据源拉取获得的应用系统的原始镜像制定实际需要的目标镜像,再根据该目标镜像生成目标容器,并在目标容器中调试目标镜像对应的程序,然后根据调试后的程序生成配置文件和环境变量,再根据配置文件和环境变量生成管理程序文件,最后根据管理程序文件在客户机上部署应用系统。本发明实施例中利用容器引擎的隔离原理,使得应用系统在部署时不需考虑环境依赖和冲突问题,提高应用系统部署效率,使得应用系统部署便捷化。附图说明图1是本发明实施例一中的一种应用系统部署方法的流程图;图2是本发明实施例二中的一种应用系统部署方法的流程图;图3是本发明实施例三中的一种应用系统部署方法的流程图;图4是本发明实施例四中的一种应用系统部署方法的流程图;图5是本发明实施例五中的一种应用系统部署装置的结构示意图。具体实施方式下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。实施例一图1为本发明实施例一提供的一种应用系统部署方法的流程图,本实施例可以适用于开发的应用系统在不同的企业中进行部署的场景,该方法可以由服务器来执行。如图1所示,该方法具体包括如下步骤:S110,根据应用系统的原始镜像制定实际需要的目标镜像,该原始镜像从容器引擎对应的数据源拉取获得。其中,应用系统可以是操作系统如DOS、Window或Linux等,或者是企业管理系统,企业管理系统能够体现企业管理的大部分职能包括决策、计划、组织、领导、监控和分析等,能够提供实时、相关、准确及完整的数据,为企业管理者提供决策依据的一种软件。原始镜像可以是未被第三方修改过的系统安装文件或者由官网直接提供的原始软件安装文件,如带有mysql、java、nodejs服务的各种镜像,或是最小化的centos镜像。容器引擎可以是开源的应用容器引擎,在本应用场景下,可选择具有隔离原理的Docker应用容器引擎或者Rocket应用容器引擎,其中,Docker是一个开源的应用容器引擎,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,Rocket和Docket类似,是一款容器引擎,帮助开发者打包应用和依赖包到可移植容器中,可简化搭建环境等部署工作。容器引擎对应的数据源可以是原始镜像所在的官网、刻有原始镜像数据的光盘或者存储原始镜像数据的外部存储装置如U盘、移动硬盘等等。在本应用场景下,根据应用系统的原始镜像制定实际需要的目标镜像的基本过程可以是:在原始镜像的临时目录下建立临时目录和文件系统;使用软件管理器安装与实际需要相关的软件包;根据应用系统实际需要对软件包进行信息定制,如配置文件和环境变量等;将定制好的软件包进行打包,从而制定出实际需要的目标镜像。可选的,例如,java原始镜像默认的软件数据开发包(JavaDevelopmentKit,JDK)只支持128位的高级加密标准(AdvancedEncryptionStandard,AES)加密,而开发的项目需要256位加密,就需要通过dockerfile构建出新的镜像,替换java原生的几个jar包。又比如c++编写服务依赖一些第三方的动态库,如protobuf、xml解析库等,此时需要将这些库放在指定目录,并修改linux的环境变量LD_LIBRARY_PATH,然后制定出相关的镜像,方便后续重用。S120,根据目标镜像生成目标容器,在目标容器中调试目标镜像对应的程序。其中,容器使用沙箱机制,各个容器之间不会有任何接口,容器为运行程序提供一个运行环境。示例性的,在Docker应用场景下,根据目标镜像生成目标容器的基本过程可以是:根据一个镜像新建对应的容器,包括容器的名字、ID等;利用dockerrun命令启动新建后的容器;进入容器并查看已经启动的容器;停止容器,将容器导出至当前目录下。在目标容器中调试目标镜像对应的程序的基本过程可以是:利用手工或编译程序的方法对目标镜像对应的程序进行测试,测试其是否具有语法错误和逻辑错误,若出现语法错误或逻辑错误,需及时进行纠正,再继续测试,如此反复进行,直到目标镜像对应的程序不再有语法错误和逻辑错误,可运行成功为止。优选的,在目标容器中调试目标镜像对应的程序,直至程序运行正常。在本实施例中的技术方案,在目标容器中调试目标镜像对应的程序,直至程序运行正常,可保证应用系统的正确性,在部署到客户机上后可正常运行。S130,根据调试后的程序生成配置文件和环境变量,根据配置文件和环境变量生成管理程序文件。其中,配置文件是根据应用系统的实际需要或者与企业业务内容相关而进行配置的文件,例如可以是系统的初始登录密码、系统的地址访问域名及系统的使用权限及系统窗户大小位置等等。环境变量一般指应用系统用来指定应用系统运行环境的一些参数,例如可以是临时文件夹位置、系统文件夹位置等,环境变量可帮助用户更好的运行程序进程。管理程序文件可以用来管理容器中程序的运行或停止,例如在Docker应用场景下,管理程序文件是docker-compose文件,其作用是用来管理Docker中各个容器的启动或停止。在本应用场景下,生成配置文件的基本过程可以是:根据应用系统的实际需要自定义一些规则,如系统的初始登录密码、系统的地址访问域名及系统的使用权限及系统窗户大小位置等等;将这些自定义规则分别进行编程并写入文件中;运行编译好的程序,系统会自动加载这些文件以及文件中的配置。生成环境变量的基本过程可以是在保存个性化设置的文件夹中添加环境变量,如HOSTNAME、IP、PLUGIN_ENABLED、PLUGIN_DIR、PLUGIN_GIT、PLUGIN_LOGS等。根据上述各种配置文件和环境变量的参数,编写应用系统实际需要的程序管理文件。S140,根据管理程序文件在客户机上部署所述应用系统。在本应用场景下,在客户机上部署应用系统的基本过程可以是,首先在客户机上安装容器引擎和管理程序文件,然后运行管理程序文件,并判断应用系统对应的通信协议端口是否被占用,若通信协议端口被占用,则修改所述管理程序文件的防火墙例外端口并重新运行管理程序文件,直至部署的应用系统可正常启动为止。本实施例的技术方案,通过将从容器引擎对应的数据源拉取获得的应用系统的原始镜像制定实际需要的目标镜像,再根据该目标镜像生成目标容器,并在目标容器中调试目标镜像对应的程序,然后根据调试后的程序生成配置文件和环境变量,再根据配置文件和环境变量生成管理程序文件,最后根据管理程序文件在客户机上部署应用系统。本发明实施例中利用容器引擎的隔离原理,使得应用系统在部署时不需考虑环境依赖和冲突问题,提高应用系统部署效率,使得应用系统部署便捷化。实施例二图2为本发明实施例二提供的一种应用系统部署方法的流程图,以上述实施例为基础,如图2所示,在S110之前,还包括:S210,将应用系统拆分成至少一个单进程服务,单进程服务能够管理维护对应的子进程。其中,单进程服务是基于微服务构架的思想,将大型应用系统拆分为一个个单独的单进程或者能自己管理维护子进程的单进程,在设计时尽可能使各个单进程间低耦合。将应用系统拆分为单进程服务时,可以按照实现功能的不同来进行拆分。示例性的,表1为本实施例提供的一种应用系统的拆分表,该列表中每一行对应一单进程服务,以及单进程服可以实现的功能。表1单进程功能单进程A功能A单进程B功能B单进程C功能C单进程D功能D如表1所示,该保险业务应用系统被拆分为单程A、单进程B、单进程C和单进程D四个单进程服务,每个单进程服务实现各自对应的功能,可选的,每个单进程服务可同时实现多个功能。相应的,S110包括:S111,分别根据拆分得到的各单进程服务的原始镜像制定实际需要的目标镜像。在本应用场景下,示例性的,从容器引擎对应的数据源分别拉取单进程A、单进程B、单进程C和单进程D的对应的原始镜像A、原始镜像B、原始镜像C和原始镜像D,根据实际需要根据每个单进程的原始镜像制定各自对应的目标镜像A、目标镜像B、目标镜像C和目标镜像D。相应的,S120包括:S121,分别根据制定的各目标镜像生成目标容器,并分别在生成的所述目标容器中调试对应目标镜像的单进程服务程序。在本应用场景下,示例性的,根据目标镜像A、目标镜像B、目标镜像C和目标镜像D分别生成目标容器A、目标容器B、目标容器C和目标容器D,然后在每个单独的目标容器中单独调试目标镜像对应的单进程服务程序。本实施例提供的技术方案,通过将应用系统拆分成至少一个单进程服务,然后分别根据拆分得到的各单进程服务的原始镜像制定实际需要的目标镜像,最后分别根据制定的各目标镜像生成目标容器,并分别在生成的所述目标容器中调试对应目标镜像的单进程服务程序。将应用系统拆分为单进程服务,使得应用系统在部署时,可灵活的应对不同的用户、设备和特殊应用场景。实施例三图3为本发明实施例三提供的一种应用系统部署方法的流程图,以上述实施例为基础,如图4所示,在S130之后、S140之前还包括:S310,依据管理程序文件的启动指令启动目标容器。在本应用场景下,在点击管理程序文件的启动指令后,服务器会根据管理程序文件中的程序指令逐个启动每个目标容器,启动目标容器后,相应的,运行目标容器中目标镜像对应的单进程服务程序。S320,判断目标容器是否启动成功。S330,如果启动不成功,则调试修改配置文件,根据修改后的配置文件重新生成管理程序文件并依据重新生成的管理程序文件的启动指令启动目标容器,直至启动成功。示例性的,如果目标容器C启动不成功,则修改配置文件,并根据修改后配置文件重新生成管理程序文件,然后根据新的管理程序文件的启动指令重新启动目标容器,直到所有的目标容器能够成功启动。S340,将启动成功时的管理程序文件打包为管理程序文件压缩包。将管理程序文件打包为管理程序文件压缩包后,可以将该压缩包通过挂载磁盘的方式挂在于外部存储设备中,例如可以是U盘、移动硬盘等,这样可以能最大化的共用镜像,也不需要每次更新程序时都要重新更新镜像。同时,将每个程序的日志以磁盘挂载的方式挂载到管理程序文件后缀为.yml文件夹下,方便后续维护,不需要每次都进入目标容器内部查看,使得更新安装包时方便快捷。本实施例提供的技术方案,依据管理程序文件的启动指令启动目标容器并判断目标容器是否启动成功,如果启动不成功,则调试修改配置文件,根据修改后的配置文件重新生成管理程序文件并依据重新生成的管理程序文件的启动指令启动目标容器,直至启动成功,最后将启动成功时的管理程序文件打包为管理程序文件压缩包。通过在应用系统部署前启动调试目标容器,可保证部署系统的成功率。实施例四图4为本发明实施例四提供的一种应用系统部署方法的流程图,以上述实施例为基础,如图4所示,S140包括:S141,在客户机上安装容器引擎。S142,解压管理程序文件压缩包,安装并运行管理程序文件。在本应用场景下,在将应用系统部署于客户机器上时,需要首先在客户机上安装容器引擎,然后减压打包好的管理程序文件压缩包,再安装并运行管理程序文件。示例性的,在Docker应用场景下,在客户机上部署应用系统时,各单程服务间相的互依赖通过容器间互通的方式实现,提供对外服务的容器绑定0.0.0.0的网卡地址,这样不管企业服务器ip是多少,都不需要修改任何网络相关的配置,直接启动已经制作好的管理程序文件即可S143,判断所述应用系统对应的通信协议端口是否被占用。其中,通信协议端口可以是传输控制协议(TransmissionControlProtocol,TCP)端口或者用户数据报协议(UserDatagramProtocol,UDP),每个应用系统有唯一与之对应的通信协议端口,若应用系统设置的通信协议端口已被其他应用系统或软件占用,则应用系统不能启动成功。S144,若通信协议端口被占用,则修改管理程序文件的防火墙例外端口并重新运行管理程序文件。S145,部署成功。本实施例提供的技术方案,在客户机上安装容器引擎,然后解压管理程序文件压缩包,安装并运行管理程序文件,并判断所述应用系统对应的通信协议端口是否被占用,若通信协议端口被占用,则修改管理程序文件的防火墙例外端口并重新运行管理程序文件,直至部署成功。通过直接安装容器引擎和管理程序文件完成应用系统的部署,实现了一键部署应用系统,使得部署安装应用系统快速便捷。实施例五图5为本发明实施例五提供的一种应用系统部署装置的结构示意图,如图5所示,该应用系统部署装置包括:单进程服务拆分模块510,目标镜像制定模块520,目标容器生成模块530,配置文件和环境变量生成模块540,目标容器启动模块550,压缩包打包模块560和应用系统部署模块570。目标镜像制定模块520,用于根据应用系统的原始镜像制定实际需要的目标镜像,原始镜像从容器引擎对应的数据源拉取获得;目标容器生成模块530,用于根据目标镜像生成目标容器,在目标容器中调试目标镜像对应的程序;配置文件和环境变量生成模块540,用于根据调试后的程序生成配置文件和环境变量,根据配置文件和环境变量生成管理程序文件;应用系统部署模块570,用于根据管理程序文件在客户机上部署所述应用系统。优选的,该应用系统部署装置还包括:单进程服务拆分模块510,用于将应用系统拆分成至少一个单进程服务,单进程服务能够管理维护对应的子进程;目标镜像制定模块520具体用于:分别根据拆分得到的各单进程服务的原始镜像制定实际需要的目标镜像;目标容器生成模块530具体用于:分别根据制定的各目标镜像生成目标容器,并分别在生成的目标容器中调试对应目标镜像的单进程服务程序。优选的,所述目标容器生成模块530具体用于:在所述目标容器中调试目标镜像对应的程序,直至程序运行正常。优选的,该系统部署装置还包括:目标容器启动模块550,用于依据管理程序文件的启动指令启动目标容器,如果启动不成功,则调试修改所述配置文件,根据修改后的配置文件重新生成管理程序文件并依据重新生成的管理程序文件的启动指令启动目标容器,直至启动成功;压缩包打包模块560,用于将启动成功时的管理程序文件打包为管理程序文件压缩包。优选的,应用系统部署模块570具体用于:在客户机上安装容器引擎;解压管理程序文件压缩包,安装并运行管理程序文件;判断应用系统对应的通信协议端口是否被占用,若通信协议端口被占用,则修改管理程序文件的防火墙例外端口并重新运行管理程序文件。上述装置可执行本发明实施例一、实施例二、实施例三和实施例四所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例一、实施例二、实施例三和实施例四所提供的方法。注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1