部署应用程序运行环境的方法、装置及系统的制作方法_3

文档序号:9730005阅读:来源:国知局
可以针对两个应用分别生成一个容器脚本,并将两个应用运行环境的命令行语句分别写入到不同的容器脚本中。通过分别执行两个容器脚本中的命令行语句,获得两个应用的镜像容器文件。
[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所述的装置,其特征在于,所述环境添加单元,包括:<
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1