部署应用程序运行环境的方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及互联网技术领域,尤其涉及一种部署应用程序运行环境的方法、装置及系统。
【背景技术】
[0002]在企业内网中,服务端常常会向客户端部署杀毒软件、管理软件等各种应用程序。应用程序一般是在服务端一侧开发、在客户端一侧运行。由于企业内网中客户端使用的操作系统是多种多样的(例如Linux、Windows、Ubuntu、Aix、Radhat等),因此当向客户端部署应用程序时,首先需要在客户端上部署对应客户端操作系统的运行环境。例如当部署PHP时,如果客户端的操作系统为Ubuntu,那么就需要在客户端上部署Ubuntu版本的PHP运行环境,而如果客户端的操作系统为Windows,则需要在客户端上部署Windows版本的PHP运行环境。
[0003]现有技术中主要通过人工配置的方式部署运行环境。服务端开发应用程序时需要针对不同的操作系统给出一个部署运行环境的操作文档,网络管理员根据对应客户端操作系统的操作文档,在客户端上手动安装对应客户端操作系统的运行环境安装包。
[0004]现有部署运行环境的方式比较耗时,一般情况下,对中等规模企业内网进行环境部署会耗费2天到3天的时间,部署效率极低。而且当在隔离网环境下时,如果环境部署过程缺失某个配置文件或安装包,那么由于无法连接外网直接下载,因此网络管理员还需要使用移动式存储介质从外网进行拷贝,由此进一步降低了环境部署的效率。
【发明内容】
[0005]本发明提供了一种部署应用程序运行环境的方法、装置及系统,能够解决现有技术中部署运行环境效率低下的问题。
[0006]为解决上述问题,第一方面,本发明提供了一种部署应用程序运行环境的方法,该方法应用于服务端,包括:
[0007]获取目标应用程序,该目标应用程序基于服务端的操作系统开发;
[0008]将目标应用程序的运行环境添加到容器文件中,运行环境为对应服务端操作系统的运行环境;
[0009]将容器文件发送给客户端,以使得客户端启动容器引擎程序运行容器文件,从而在客户端的操作系统中加载运行环境。
[0010]第二方面,本发明还提供了一种部署应用程序运行环境的方法,该方法应用于客户端,包括:
[0011 ]接收服务端发送的容器文件,容器文件中包含服务端基于自身操作系统开发的目标应用程序的运行环境,运行环境为对应服务端操作系统的运行环境;
[0012]启动容器引擎程序;
[0013]运行容器文件,在客户端的操作系统中加载运行环境。
[0014]第三方面,本发明还提供了一种部署应用程序运行环境的装置,该装置位于服务端侧,包括:
[0015]获取单元,用于获取目标应用程序,该目标应用程序基于服务端的操作系统开发;
[0016]环境添加单元,用于将目标应用程序的运行环境添加到容器文件中,运行环境为对应服务端操作系统的运行环境;
[0017]发送单元,用于将容器文件发送给客户端,以使得客户端启动容器引擎程序运行容器文件,从而在客户端的操作系统中加载运行环境。
[0018]第四方面,本发明还提供了一种部署应用程序运行环境的装置,该装置位于客户端侧,包括:
[0019]接收单元,用于接收服务端发送的容器文件,容器文件中包含服务端基于自身操作系统开发的目标应用程序的运行环境,运行环境为对应服务端操作系统的运行环境;
[0020]启动单元,用于启动容器引擎程序;
[0021]运行单元,用于运行容器文件,在客户端的操作系统中加载运行环境。
[0022]第五方面,本发明还提供了一种部署应用程序运行环境的系统,该系统包括服务端和客户端,其中,
[0023]服务端包括上述第三方面所指的装置;
[0024]客户端包括上述第四方面所指的装置。
[0025]本发明提供的部署应用程序运行环境的方法、装置及系统,能够由服务端获取基于自身的操作系统开发目标应用程序,并将目标应用程序的运行环境添加到容器文件中,该运行环境为对应服务端操作系统的运行环境;然后将容器文件发送给客户端。客户端在接收到容器文件后启动容器引擎程序,运行容器文件,在客户端的操作系统中加载运行环境。本发明能够通过容器技术在客户端侧直接加载目标应用程序的运行环境,加载过程无需区分操作系统,无论该运行环境是基于何种操作系统开发的,也无论客户端使用何种操作系统,均能够在客户端侧成功加载运行环境。与现有技术相比,本发明可以使服务端侧的运行环境通用于客户端侧的任何操作系统,无需针对客户端的操作系统部署特定版本的运行环境,由此能够大大提高运行环境的部署效率。
[0026]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0027]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0028]图1示出了本发明实施例提供的第一种部署应用程序运行环境的方法流程图;
[0029]图2示出了本发明实施例提供的第二种部署应用程序运行环境的方法流程图;
[0030]图3示出了本发明实施例提供的第三种部署应用程序运行环境的方法流程图;
[0031]图4示出了本发明实施例提供的第一种部署应用程序运行环境的装置的组成框图;
[0032]图5示出了本发明实施例提供的第二种部署应用程序运行环境的装置的组成框图;
[0033]图6示出了本发明实施例提供的第三种部署应用程序运行环境的装置的组成框图;
[0034]图7示出了本发明实施例提供的第四种部署应用程序运行环境的装置的组成框图;
[0035]图8示出了本发明实施例提供的一种部署应用程序运行环境的系统框图。
【具体实施方式】
[0036]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0037]本发明实施例提供了一种部署应用程序运行环境的方法,该方法应用于服务端一侧,如图1所示,该方法包括:
[0038]101、获取目标应用程序。
[0039]服务端基于自身的操作系统开发目标应用程序,在部署运行环境时,服务端获取目标应用程序。所述目标应用程序为后续需要部署到客户端上的应用程序。服务端的操作系统可以但不限于是:Linux、Windows、Ubuntu、Aix、Radhat ο
[0040]102、将目标应用程序的运行环境添加到容器文件中。
[0041 ]该运行环境为对应服务端操作系统的运行环境,即能够使目标应用程序能够在服务端操作系统上运行的运行环境。例如,当服务端操作系统为Windows时,该运行环境为Windows版本的运行环境。
[0042]实际应用中,运行环境以运行环境安装包的形式存在。服务端将运行环境安装包添加到容器文件。所述容器文件用于客户端通过容器引擎程序执行,在容器中加载运行环境。
[0043]本实施例中,容器文件的文件类型为“tar”格式。
[0044]103、将容器文件发送给客户端。
[0045]服务端将容器文件发送给客户端,以使得客户端启动容器引擎程序运行容器文件,从而在客户端的操作系统中加载运行环境。
[0046]客户端一侧需要预先安装容器引擎软件,客户端操作系统的版本和配置应当能够支持容器引擎软件的版本。
[0047]本实施例中,服务端将对应自身操作系统的运行环境添加到容器文件中发送给客户端,而无需开发和添加对应其他操作系统的运行环境。客户端在进程容器中加载该运行环境,由于进程容器能够对底层方法进行虚拟化实现,因此可以不受特定操作系统的限制。无论终端使用何种操作系统均可以成功运行服务端发送的运行环境。
[0048]此外,本实施例中的运行环境为与服务端操作系统对应的运行环境,实际应用中,服务端可以开发针对其他操作系统的运行环境并通过步骤102和步骤103将其发送给客户端进行加载,能够达到相同的效果。实际上,本实施例的本质在于:只要为客户端提供基于某一操作系统的运行环境,客户端通过进程容器就可以将其成功运行,与该运行环境是否对应服务端操作系统,以及客户端采用何种操作系统无关。
[0049]最后,本实施例是以向容器文件中添加一个运行环境为例进行的说明。实际应用中,针对一款目标应用程序,服务端也可以开发出两个以上的运行环境(分别对应不同的操作系统),由客户端自由选择其中一个运行环境进行加载。
[0050]本发明实施例提供的部署应用程序运行环境的方法,能够由服务端获取基于自身的操作系统开发目标应用程序,并将目标应用程序的运行环境添加到容器文件中,该运行环境为对应服务端操作系统的运行环境;然后将容器文件发送给客户端。客户端在接收到容器文件后启动容器引擎程序,运行容器文件,在客户端的操作系统中加载运行环境。本发明实施例能够通过容器技术在客户端侧直接加载目标应用程序的运行环境,加载过程无需区分操作系统,无论该运行环境是基于何种操作系统开发的,也无论客户端使用何种操作系统,均能够在客户端侧成功加载运行环境。与现有技术相比,本发明实施例可以使服务端侧的
运行环境通用于客户端侧的任何操作系统,无需针对客户端的操作系统部署特定版本的运行环境,由此能够大大提高运行环境的部署效率。
[0051]进一步的,本发明实施例还提供了一种部署应用程序运行环境的方法,该方法应用于客户端一侧,如图2所示,该方法包括:
[0052 ] 201、接收服务端发送的容器文件。
[0053]客户端侧预先安装有容器引擎程序,该程序用于建立进程容器加载服务端发送的运行环境。由于运行环境是在容器中运行的,因此不受客户端操作系统限制。
[0054]实际应用中,容器引擎程序的版本应当与客户端操作系统的版本相适应,以使得客户端操作系统的配置能够正常运行容器引擎程序。
[0055]客户端接收服务端发送的tar格式的容器文件,该容器文件中包含服务端基于自身操作系统开发的目标应用程序的运行环境安装包,该运行环境为对应服务端操作系统的运行环境。即服务端基于自身操作系统开发目标应用程序,并将该目标应用程序在服务端操作系统中的运行环境添加到容器文件中发送给客户端。
[0056]本实施例中,容器文件中的运行环境的版本与服务端操作系统相对应,实际应用中,当容器文件中添加有对应其他操作系统的运行环境时,客户端也可以通过图2所示流程成功运行之。
[0057]202、启动容器引擎程序。
[0058]实际应用中,可以由网络管理员或用户选择时机手动启动容器引擎程序,也可以由客户端在接收到镜像容器文件后自动启动容器引擎程序。对于后者方式,服务端可以在发送镜像容器文件的同时向客户端发送启动容器引擎程序的指令,或者客户端在接收到镜像容器文件自动启动容器引擎程序。
[0059]203、运行容器文件,在客户端的操作系统中加载运行环境。
[0060]客户端启动容器引擎程序,建立进程容器。然后运行服务端发送的容器文件,在本地运行服务端侧的运行环境。
[0061]本发明实施例提供的部署应用程序运行环境的方法,能够由服务端获取基于自身的操作系统开发目标应用程序,并将目标应用程序的运行环境添加到容器文件中,该运行环境为对应服务端操作系统的运行环境;然后将容器文件发送给客户端。客户端在接收到容器文件后启动容器引擎程序,运行容器文件,在客户端的操作系统中加载运行环境。本发明实施例能够通过容器技术在客户端侧直接加载目标应用程序的运行环境,加载过程无需区分操作系统,无论该运行环境是基于何种操作系统开发的,也无论客户端使用何种操作系统,均能够在客户端侧成功加载运行环境。与现有技术相比,本发明实施例可以使服务端侧的运行环境通用于客户端侧的任何操作系统,无需针对客户端的操作系统部署特定版本的运行环境,由此能够大大提高运行环境的部署效率。
[0062]进一步的,作为对图1及图2所示方法的细化,本发明还提供了一种部署应用程序运行环境的方法,该方法涉及服务端及客户端两侧。如图3所示,该方法包括:
[0063]301、服务端获取目标应用程序。
[0064]本步骤的实现方式与图1步骤101的实现方式相同,此处不再赘述。
[0065]302、服务端在容器脚本中添加命令行语句。
[0066]容器脚本部署在服务端一侧,用于将运行环境添加到容器文件中。容器脚本中添加有编辑有命令行语句,该命令行语句包括运行环境的配置参数,通过执行命令行语句可以将运行环境添加到容器文件中。
[0067]实际应用中,命令行语句可以添加到容器脚本的结尾处,服务端可以根据外部的配置需求自动添加不同运行环境的命令行语句,也可以为网络管理员提供编辑命令行语句的交互界面,接收网络管理员手动输入的命令行语句。
[0068]本实施例中,不同版本的容器引擎程序对应的命令行语句在格式结构上有所不同,服务端需要根据客户端侧容器引擎程序的版本添加对应格式的命令行语句。
[0069]在本实施例的一种实现方式中,服务端一侧可以部署一个配置文件,该配置文件中记录有客户端标识与容器引擎程序版本号的对应关系。在写入命令行语句时,服务端根据查找该配置文件获知客户端侧部署的容器引擎程序的版本号,然后将与该版本号对应的命令行语句写入到容器脚本中。此外,服务端还可以通过接收心跳包的方式获取客户端一侧最新的容器引擎程序的版本号,并以此对配置文件进行更新。
[0070]当网络中不同客户端的容器引擎程序的版本不同时,为便于一次性写入命令行语句,减少服务端资源开销,服务端还可以在配置文件中查找最新的版本号,并通知所有版本号低于此最新版本号的客户端更新容器引擎程序的版本。必要时服务端还可以为客户端提供最新版本的容器引擎程序更新包。
[0071]303、服务端执行容器脚本中的命令行语句,根据配置参数查找运行环境。
[0072]304、服务端生成运行环境的镜像容器文件。
[0073]本实施例中,命令行语句中的变量值为运行环境的配置参数,不同操作系统的运行环境的配置参数各有差异。通过配置参数可以查找获得需要发送给客户端的运行环境。
[0074]实际应用中,运行环境的配置参数包括但不限于对如下参数进行定量限制:操作系统版本(WindowsXPJista等),CPU性能(例如CPU核数),显卡型号,声卡型号,最小内存要求,最小磁盘要求。
[0075]如前所述,运行环境是以运行环境安装包的形式存在于服务端一侧,在本实施例的另一种实现方式中,命令行语句中也可以记录运行环境安装包的名称、存储路径等信息,用以唯一标识一个运行环境安装包。
[0076]除了配置参数外,命令行语句中还包括有生成镜像文件的命令语句,通过执行该命令语句,服务端生成运行环境的镜像容器文件。
[0077]305、服务端将镜像容器文件发送给客户端。
[0078]与镜像容器文件一同发送的还包括容器脚本。
[0079]306、客户端接收服务端发送的运行环境的镜像容器文件。
[0080]307、客户端启动容器引擎程序。
[0081]在执行镜像容器文件之前,客户端首先需要启动容器引擎程序。实际应用中,可以由网络管理员或用户选择时机手动启动容器引擎程序,也可以由客户端在接收到镜像容器文件后自动启动容器引擎程序。对于后者方式,服务端可以在发送镜像容器文件的同时向客户端发送启动容器引擎程序的指令,或者客户端在接收到镜像容器文件自动启动容器引擎程序。
[0082]本实施例中,容器引擎程序本质上通过实现一种操作系统级的虚拟化方式实现运行环境的加载。这种方式对系统底层的资源和命名空间进行了封装。在生成进程容器之前,客户端需要调用封装的底层接口为进程容器分配运行资源,所述资源包括但不限于是内存空间、磁盘空间、CPU处理线程。
[0083]实际应用中,容器引擎程序对底层的资源进行了权限控制方法的封装以及资源控制方法的封装,通过调用这两类方法的接口可以为进程容器分配运行资源。本实施例中,容器脚本中的命令行语句中写有为进程容器分配资源的配置参数。容器引擎程序执行该命令语句,按照该配置参数为进程容器分配资源。
[0084]此外,当容器脚本中的命令行语句中没有记录为进程容器分配资源的配置参数时,容器引擎程序也可以根据本地配置的默认参数为进程容器分配资源。
[0085]308、客户端根据镜像容器文件启动虚拟环境。
[0086]在分配资源后,客户端运行镜像容器文件,为镜像容器文件启动一个虚拟环境。如前所述,该虚拟环境是一种操作系统级的虚拟环境。与JAVA虚拟机相比,该虚拟环境由于是基于Linux容器的轻量化虚拟环境,未像JAVA虚拟机一样真正对物理机的硬件资源进行隔离分配,因此具有启动快、资源占用小的特点。
[0087]容器引擎程序使用LXC启动一个Linux类型的进程容器,不同的进程容器拥有自己独立的命名空间,包括:PID进程,丽T文件系统,NET网络,IPC,UTS主机名等。本实施例中,容器引擎程序是LXC的一个高级封装,提供了各种辅助工具和标准接口以便使用LXC。实际使用中,一般无需关心底层LXC的细节。
[0088]309、客户端执行容器脚本中的命令行语句,在进程容器中加载运行环境。
[0089]本实施例中所述的命令行语句格式具体可以是CMD格式语句,本实施例对此不作限制。
[0090]在运行时,容器引擎程序启动一个程序执行该容器脚本,在虚拟环境下将镜像容器文件加载到进程容器中,完成运行环境的部署。本实施例中,命令行语句还可以规定使用哪个进程容器加载运行环境,通过命令行语句的执行,建立进程容器加载运行环境。
[0091]进一步的,为了加快运行速度,减少内存和磁盘占用,容器引擎程序还可以进行image重用。进程容器运行时所构造的运行环境,可以由具有依赖关系的多个Layer组成。例如,apache的运行环境可能是在基础的rootfs image的基础上,叠加了包含例如Emacs等各种工具的image,再叠加包含apache及其相关依赖library的image,这些image由AUFS文件系统加载合并到统一路径中,以只读的方式存在,最后再叠加加载一层可写的空白的Layer用作记录对当前运行环境所作的修改。
[0092]下面给出本实施例的一个应用场景:
[0093]在本应用场景中,基于Linux操作系统的服务端需要将NEGIX、PHP两个应用部署到客户端上,服务端拥有两个应用的Linux运行环境。服务端将两个应用的命令行语句写入到容器脚本中,生成NEGIX和PHP的镜像容器文件,并将两个镜像容器文件发送给基于Redhat操作系统的客户端。
[0094]客户端接收到镜像容器文件及容器脚本后,启动容器引擎程序,通过执行容器脚本中的命令行语句完成两个应用的运行环境部署。
[0095]此外,在本应用场景中,服务端也
可以针对两个应用分别生成一个容器脚本,并将两个应用运行环境的命令行语句分别写入到不同的容器脚本中。通过分别执行两个容器脚本中的命令行语句,获得两个应用的镜像容器文件。
[0096]下面给出本实施例的另一个应用场景:
[0097]在本场景中,客户端使用Docker容器引擎部署运行环境。Docker是一个基于LXC的高级容器引擎,允许开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何客户端上。Docker容器完全使用沙箱机制,容器之间不会有任何接口 C3Docker可以实现基于操作系统级的轻量级虚拟化,几乎没有资源开销,可以很容易地在客户端上运行。
[0098]由于Docker具有轻量级虚拟化的特点,相比基于内核的虚拟机(Kernel-basedVirtual Machine,简称KVM)而言最明显的特点就是启动快,资源占用小。因此对于构建隔离的标准化的运行环境、自动化测试和持续集成环境,以及一切可以横向扩展的应用具有明显优势。此外,在LXC的基础上,Docker额外提供的Feature还包括:标准统一的打包部署运行方案,历史版本控制,Image的重用,Image共享发布等。
[0099]本场景中,客户端安装有Docker容器引擎,服务端在部署应用的运行环境时,将运行环境的命令行语句写入到DockerfiIe文件中,然后执行Dockerf iIe文件中的命令行语句生成镜像容器文件,并将镜像容器文件发送给客户端。
[0100]客户端启动Docker容器引擎,调用封装的底层功能,通过命名空间建立进程容器,通过权限控制和资源控制为进程容器分配资源。然后根据镜像容器文件启动虚拟环境,并执行Dockerfile文件中的命令行语句,在进程容器中加载运行环境。
[0101]进一步的,作为对图1及图3所示方法的实现,本发明实施例还提供了一种部署应用程序运行环境的装置。该装置位于服务端一侧,可以在服务端中,也可以独立于服务端但是与服务端建立有数据交互关系。如图4所示,该装置包括:获取单元41、环境添加单元42以及发送单元43,其中:
[0102]获取单元41,用于获取目标应用程序,该目标应用程序基于服务端的操作系统开发;
[0103]环境添加单元42,用于将目标应用程序的运行环境添加到容器文件中,运行环境为对应服务端操作系统的运行环境;
[0104]发送单元43,用于将容器文件发送给客户端,以使得客户端启动容器引擎程序运行容器文件,从而在客户端的操作系统中加载运行环境。[0?05]进一步的,如图5所示,该装置还包括:
[0106]语句添加单元44,用于在将目标应用程序的运行环境添加到容器文件中之前,在容器脚本中添加命令行语句,容器脚本用于将运行环境添加到容器文件中,命令行语句包括运行环境的配置参数。
[0107]进一步的,语句添加单元44用于将与容器引擎程序版本对应的命令行语句,添加到容器脚本中。
[0108]进一步的,如图5所示,环境添加单元42,包括:
[0109]执行模块421,用于执行容器脚本中的命令行语句,根据配置参数查找运行环境;
[0110]生成模块422,用于生成运行环境的镜像容器文件。
[0111]进一步的,发送单元43用于将镜像容器文件发送给客户端。
[0112]进一步的,作为对图2及图3所示方法的实现,本发明实施例还提供了一种部署应用程序运行环境的装置。该装置位于客户端一侧,可以在客户端中,也可以独立于客户端但是与客户端建立有数据交互关系。如图6所示,该装置包括:接收单元61、启动单元62以及运行单元63,其中:
[0113]接收单元61,用于接收服务端发送的容器文件,容器文件中包含服务端基于自身操作系统开发的目标应用程序的运行环境,运行环境为对应服务端操作系统的运行环境;
[0114]启动单元62,用于启动容器引擎程序;
[0115]运行单元63,用于运行容器文件,在客户端的操作系统中加载运行环境。
[0116]进一步的,接收单元61用于接收服务端发送的运行环境的镜像容器文件。
[0117]进一步的,启动单元62用于根据预先封装的底层接口分配运行资源。
[0118]进一步的,如图7所示,运行单元63,包括:
[0119]启动模块631,用于根据镜像容器文件启动虚拟环境;
[0120]加载模块632,用于执行容器脚本中的命令行语句,在进程容器中加载运行环境。
[0121]进一步的,作为对图1至图3所示方法的实现,本发明实施例还提供了一种部署应用程序运行环境的系统。如图8所示,该系统包括服务端81及客户端82。其中,服务端81包括图4或图5所示的装置,或者独立于该装置但是与该装置建立有数据交互关系,用于实现图1及图3所示的方法;客户端82包括图6或图7所示的装置,或者独立于该装置但是与该装置建立有数据交互关系,用于实现图2及图3所示的方法。
[0122]本发明实施例提供的部署应用程序运行环境的装置及系统,能够由服务端获取基于自身的操作系统开发目标应用程序,并将目标应用程序的运行环境添加到容器文件中,该运行环境为对应服务端操作系统的运行环境;然后将容器文件发送给客户端。客户端在接收到容器文件后启动容器引擎程序,运行容器文件,在客户端的操作系统中加载运行环境。本发明实施例能够通过容器技术在客户端侧直接加载目标应用程序的运行环境,加载过程无需区分操作系统,无论该运行环境是基于何种操作系统开发的,也无论客户端使用何种操作系统,均能够在客户端侧成功加载运行环境。与现有技术相比,本发明实施例可以使服务端侧的运行环境通用于客户端侧的任何操作系统,无需针对客户端的操作系统部署特定版本的运行环境,由此能够大大提高运行环境的部署效率。
[0123]本发明的实施例公开了:
[0124]Al、一种部署应用程序运行环境的方法,所述方法应用于服务端,其特征在于,所述方法包括:
[0125]获取目标应用程序,所述目标应用程序基于服务端的操作系统开发;
[0126]将所述目标应用程序的运行环境添加到容器文件中,所述运行环境为对应所述服务端操作系统的运行环境;
[0127]将所述容器文件发送给客户端,以使得所述客户端启动容器引擎程序运行所述容器文件,从而在客户端的操作系统中加载所述运行环境。
[0128]A2、根据Al所述的方法,其特征在于,在所述将所述目标应用程序的运行环境添加到容器文件中之前,所述方法进一步包括:
[0129]在容器脚本中添加命令行语句,所述容器脚本用于将所述运行环境添加到所述容器文件中,所述命令行语句包括所述运行环境的配置参数。
[0130]A3、根据A2所述的方法,其特征在于,所述在容器脚本中添加命令行语句,包括:
[0131]将与所述容器引擎程序版本对应的命令行语句,添加到所述容器脚本中。
[0132]A4、根据A2或3所述的方法,其特征在于,所述将所述目标应用程序的运行环境添加到容器文件中,包括:
[0133]执行所述容器脚本中的命令行语句,根据所述配置参数查找所述运行环境;
[0134]生成所述运行环境的镜像容器文件。
[0135]A5、根据A4所述的方法,其特征在于,所述将所述容器文件发送给客户端,包括:
[0136]将所述镜像容器文件发送给所述客户端。
[0137]B6、一种部署应用程序运行环境的方法,所述方法应用于客户端,其特征在于,所述方法包括:
[0138]接收服务端发送的容器文件,所述容器文件中包含所述服务端基于自身操作系统开发的目标应用程序的运行环境,所述运行环境为对应所述服务端操作系统的运行环境;
[0139]启动容器引擎程序;
[0140]运行所述容器文件,在客户端的操作系统中加载所述运行环境。
[0141]B7、根据B6所述的方法,其特征在于,所述接收服务端发送的容器文件,包括:
[0142]接收所述服务端发送的所述运行环境的镜像容器文件。
[0143]B8、根据B7所述的方法,其特征在于,所述启动容器引擎程序,包括:
[0144]根据预先封装的底层接口分配运行资源。
[0145]B9、根据B8所述的方法,其特征在于,所述运行所述容器文件,包括:
[0146]根据所述镜像容器文件启动虚拟环境;
[0147]执行容器脚本中的命令行语句,在进程容器中加载所述运行环境。
[0148]ClO、一种部署应用程序运行环境的装置,所述装置位于服务端侧,其特征在于,所述装置包括:
[0149]获取单元,用于获取目标应用程序,所述目标应用程序基于服务端的操作系统开发;
[0150]环境添加单元,用于将所述目标应用程序的运行环境添加到容器文件中,所述运行环境为对应所述服务端操作系统的运行环境;
[0151]发送单元,用于将所述容器文件发送给客户端,以使得所述客户端启动容器引擎程序运行所述容器文件,从而在客户端的操作系统中加载所述运行环境。
[0152]C11、根据ClO所述的装置,其特征在于,所述装置还包括:
[0153]语句添加单元,用于在将所述目标应用程序的运行环境添加到容器文件中之前,在容器脚本中添加命令行语句,所述容器脚本用于将所述运行环境添加到所述容器文件中,所述命令行语句包括所述运行环境的配置参数。
[0154]C12、根据Cll所述的装置,其特征在于,所述语句添加单元用于将与所述容器引擎程序版本对应的命令行语句,添加到所述容器脚本中。
[0155]C13、根据Cll或12所述的装置,其特征在于,所述环境添加单元,包括:<
br>[0156]执行模块,用于执行所述容器脚本中的命令行语句,根据所述配置参数查找所述运行环境;
[0157]生成模块,用于生成所述运行环境的镜像容器文件。
[0158]C14、根据C13所述的装置,其特征在于,所述发送单元用于将所述镜像容器文件发送给所述客户端。
[0159]D15、一种部署应用程序运行环境的装置,所述装置位于客户端侧,其特征在于,所述装置包括:
[0160]接收单元,用于接收服务端发送的容器文件,所述容器文件中包含所述服务端基于自身操作系统开发的目标应用程序的运行环境,所述运行环境为对应所述服务端操作系统的运行环境;
[0161]启动单元,用于启动容器引擎程序;
[0162]运行单元,用于运行所述容器文件,在客户端的操作系统中加载所述运行环境。
[0163]D16、根据D15所述的装置,其特征在于,所述接收单元用于接收所述服务端发送的所述运行环境的镜像容器文件。
[0164]D17、根据D16所述的装置,其特征在于,所述启动单元用于根据预先封装的底层接口分配运行资源。
[0165]D18、根据D17所述的装置,其特征在于,所述运行单元,包括:
[0166]启动模块,用于根据所述镜像容器文件启动虚拟环境;
[0167]加载模块,用于执行容器脚本中的命令行语句,在进程容器中加载所述运行环境。
[0168]E19、一种部署应用程序运行环境的系统,所述系统包括服务端和客户端;
[0169]所述服务端包括如ClO至C14中任一项所述的装置;
[0170]所述客户端包括如D15至D18中任一项所述的装置。
[0171 ]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0172]可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
[0173]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0174]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0175]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0176]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0177]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0178]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0179]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0180]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
【主权项】
1.一种部署应用程序运行环境的方法,所述方法应用于服务端,其特征在于,所述方法包括: 获取目标应用程序,所述目标应用程序基于服务端的操作系统开发; 将所述目标应用程序的运行环境添加到容器文件中,所述运行环境为对应所述服务端操作系统的运行环境; 将所述容器文件发送给客户端,以使得所述客户端启动容器引擎程序运行所述容器文件,从而在客户端的操作系统中加载所述运行环境。2.根据权利要求1所述的方法,其特征在于,在所述将所述目标应用程序的运行环境添加到容器文件中之前,所述方法进一步包括: 在容器脚本中添加命令行语句,所述容器脚本用于将所述运行环境添加到所述容器文件中,所述命令行语句包括所述运行环境的配置参数。3.根据权利要求2所述的方法,其特征在于,所述在容器脚本中添加命令行语句,包括: 将与所述容器引擎程序版本对应的命令行语句,添加到所述容器脚本中。4.根据权利要求2或3所述的方法,其特征在于,所述将所述目标应用程序的运行环境添加到容器文件中,包括: 执行所述容器脚本中的命令行语句,根据所述配置参数查找所述运行环境; 生成所述运行环境的镜像容器文件。5.根据权利要求4所述的方法,其特征在于,所述将所述容器文件发送给客户端,包括: 将所述镜像容器文件发送给所述客户端。6.一种部署应用程序运行环境的方法,所述方法应用于客户端,其特征在于,所述方法包括: 接收服务端发送的容器文件,所述容器文件中包含所述服务端基于自身操作系统开发的目标应用程序的运行环境,所述运行环境为对应所述服务端操作系统的运行环境; 启动容器引擎程序; 运行所述容器文件,在客户端的操作系统中加载所述运行环境。7.根据权利要求6所述的方法,其特征在于,所述接收服务端发送的容器文件,包括: 接收所述服务端发送的所述运行环境的镜像容器文件。8.一种部署应用程序运行环境的装置,所述装置位于服务端侧,其特征在于,所述装置包括: 获取单元,用于获取目标应用程序,所述目标应用程序基于服务端的操作系统开发;环境添加单元,用于将所述目标应用程序的运行环境添加到容器文件中,所述运行环境为对应所述服务端操作系统的运行环境; 发送单元,用于将所述容器文件发送给客户端,以使得所述客户端启动容器引擎程序运行所述容器文件,从而在客户端的操作系统中加载所述运行环境。9.一种部署应用程序运行环境的装置,所述装置位于客户端侧,其特征在于,所述装置包括: 接收单元,用于接收服务端发送的容器文件,所述容器文件中包含所述服务端基于自身操作系统开发的目标应用程序的运行环境,所述运行环境为对应所述服务端操作系统的运行环境;启动单元,用于启动容器引擎程序;运行单元,用于运行所述容器文件,在客户端的操作系统中加载所述运行环境。10.—种部署应用程序运行环境的系统,所述系统包括服务端和客户端;所述服务端包括如权利要求8所述的装置;所述客户端包括如权利要求9所述的装置。
【专利摘要】本发明公开了一种部署应用程序运行环境的方法、装置及系统,涉及互联网技术领域,为解决现有技术中部署运行环境效率低下的问题而发明。本发明的方法包括:服务端获取目标应用程序,该目标应用程序基于服务端的操作系统开发,将目标应用程序的运行环境添加到容器文件中并将容器文件发送给客户端,其中,该运行环境为对应服务端操作系统的运行环境;客户端接收服务端发送的容器文件,启动容器引擎程序并运行容器文件,在客户端的操作系统中加载运行环境。本发明主要应用于在企业内网中部署应用程序的过程中。
【IPC分类】H04L29/06, H04L29/08, H04L12/24
【公开号】CN105490860
【申请号】CN201510989530
【发明人】温铭
【申请人】北京奇虎科技有限公司, 北京奇安信科技有限公司
【公开日】2016年4月13日
【申请日】2015年12月24日