应用部署方法和装置与流程

文档序号:12718922阅读:197来源:国知局
应用部署方法和装置与流程

本申请涉及网络通信技术,特别涉及应用部署方法和装置。



背景技术:

随着信息化技术的发展,目前常用的方式是使用现成的不同服务程序组合来构建和装配应用程序并使用虚拟机部署应用程序。这相比之前由开发人员编写应用程序,大大节省开发人员工作量。

然而,随着用户应用数量和规模的不断增长,伴随的是操作系统、数据库、应用程序越来越多,单纯使用虚拟机部署应用程序会出现部署周期长、成本高、效率低等缺陷。



技术实现要素:

本申请提供了应用部署方法和装置,以防止单纯使用虚拟机部署应用程序带来的缺陷。

本申请提供的技术方案包括:

一种应用部署方法,该方法包括:

将待部署的应用对应的应用信息转换成容器描述文件;

基于所述容器描述文件构建容器镜像;

在部署所述应用时,检测所述应用运行的网络设备是否包含所述容器镜像运行的容器运行引擎,

如果是,基于所述网络设备上的所述容器运行引擎运行所述容器镜像以实现所述应用的部署;

如果否,在所述网络设备上加载所述容器镜像运行的容器运行引擎,基于加载的容器运行引擎运行所述容器镜像以实现所述应用的部署。

一种应用部署装置,该装置包括:

应用转置模块,用于将待部署的应用对应的应用信息转换成容器描述文件;

镜像服务模块,用于基于所述容器描述文件构建容器镜像;

应用部署模块,用于在部署所述应用时,检测所述应用运行的网络设备是否包含所述容器镜像运行的容器运行引擎,如果是,基于所述网络设备上的所述容器运行引擎运行所述容器镜像以实现所述应用的部署;如果否,在所述网络设备上加载所述容器镜像运行的容器运行引擎,基于加载的容器运行引擎运行所述容器镜像以实现所述应用的部署。

由以上技术方案可以看出,本发明中,通过基于容器运行引擎运行容器镜像实现应用的部署,实现了以容器化技术进行应用部署,能够大大减短应用部署周期,甚至做到秒级部署,提高应用部署效率、大大降低应用部署成本,防止单纯使用虚拟机部署应用程序带来的缺陷。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1为本发明提供的方法流程图;

图2为本发明提供的应用管理界面的截图;

图3本发明提供的配置应用模板界面截图;

图4为本发明提供的装置结构示意图。

具体实施方式

本发明采用容器化技术进行应用部署,相比于单纯使用虚拟机进行应用部署,能够减短应用部署周期、提高应用部署效率、降低应用部署成本。

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

参见图1,图1为本发明提供的方法流程图。如图1所示,该流程可包括以下步骤:

步骤101,将待部署的应用对应的应用信息转换成容器描述文件。

本步骤101中将待部署的应用对应的应用信息转换成容器描述文件能够实现从应用(也称原生应用)至容器(也称容器化应用)的自动转置。容器,完全使用沙箱机制,相互之间不会有任何接口,几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,容器不依赖于任何语言、框架或包装系统。在本发明中,按照步骤101,能够实现部署不同应用时不同应用之间相互隔离,防止因应用之间的抵御和依赖而增加应用部署的难度。

步骤102,基于容器描述文件构建容器镜像并存储。

步骤103,在部署应用时,检测应用运行的网络设备是否包含所述容器镜像运行的容器运行引擎,如果是,执行步骤104,如果否,执行步骤105。

步骤104,基于所述网络设备上的所述容器运行引擎运行所述容器镜像以实现所述应用的部署。

步骤105,在所述网络设备上加载所述容器镜像运行的容器运行引擎,基于加载的容器运行引擎运行所述容器镜像以实现所述应用的部署。

通过步骤104至步骤105可以看出,本发明在部署应用时是基于容器运行引擎运行容器镜像实现的,实现了以容器化技术进行应用部署。如上描述的容器的优点,则相比于单纯使用虚拟机进行应用部署,本发明提供的以容器化技术进行应用部署能够大大减短应用部署周期,甚至做到秒级部署,提高应用部署效率、大大降低应用部署成本。

作为本发明的一个实施例,这里,步骤105中在所述网络设备上加载所述容器镜像运行的容器运行引擎可包括:

若所述网络设备为物理服务器,则通过裸金属架构置备所述容器镜像运行的容器运行引擎;这里,裸金属架构为现有方式,不再赘述;

若所述网络设备为虚拟机,通过虚拟化镜像模板方式置备所述容器镜像运行的容器运行引擎;这里,虚拟化镜像模板方式为现有方式,不再赘述。

至此,完成图1所示的流程。

作为一个实施例,步骤101中将待部署的应用对应的应用信息转换成容器描述文件可包括:

步骤a1,获取所述应用对应的应用信息。

这里,所述应用信息至少包含所述应用的应用软件包、所述应用运行的操作系统类别、所述应用对应的参数项、应用安装脚本。

作为一个实施例,步骤a1中获取所述应用对应的应用信息可包括:

步骤a11,获取管理员在应用管理界面上传的自定义软件,自定义软件包含:所述应用的应用软件包、所述应用运行的操作系统类别、应用安装脚本。这里,应用软件包至少包含软件定义和软件程序。软件定义包含如软件名称、软件描述等。

步骤a12,在应用管理界面上获取所述应用所需的参数项。

图2示出了应用管理界面的截图。需要说明的是,步骤a12获取的参数项是管理员基于应用的需求在应用管理界面设置的,但并没有被具体赋值,比如图2所示的用户名(Username)、密码(Passeord)。

通过步骤a11至步骤a12实现了步骤a1中获取所述应用对应的应用信息的操作。

步骤a2,按照设定的容器描述文件格式将所述应用信息转换生成容器描述文件。

Docker、Rocket/rkt、openVZ/Odin等是目前常用的基于LXC(Linux Container)或其它资源隔离的应用容器化技术方案,基于此,这里的设定的容器描述文件格式可为目前常用的应用容器化技术方案中的格式,比如Docker对应的Dockerfile格式等,本发明并不具体限定。

至此,通过步骤a1至步骤a2实现了步骤101中将待部署的应用对应的应用信息转换成容器描述文件的操作。

作为一个实施例,本发明中,为保证所述应用部署,在部署所述应用之前,需进一步执行以下步骤b1至步骤b3:

步骤b1,在已定义的配置应用模板界面为所述应用创建对应的应用模板。

这里,步骤b1创建应用模板的方式类似现有应用模板创建方式,不再赘述。

步骤b2,确定用户在配置应用模板界面选择所述应用需部署至的网络设备,当所述网络设备为网络中已有的物理服务器,则将所述应用拖拽至所述物理服务器,当所述网络设备为网络中未有的虚拟机,则新建虚拟机,并将所述应用拖拽至所述虚拟机。

图3举例示出了配置应用模板界面截图。如图3所示,用户在配置应用模板界面选择所述应用需部署至的网络设备可以是应用模板界面显示的物理服务器(实质也是网络中已有的物理服务器),也可以选择网络中未有的虚拟机,这种情况下,需要采用虚拟机技术创建虚拟机。

步骤b3,为所述应用对应的参数项设置参数值,基于参数值、所述应用部署至的网络设备的信息生成应用部署模板。

假如所述应用对应的参数项为图2所示的用户名(Username)、密码(Passeord),则执行到步骤b3时,则为用户名(Username)、密码(Passeord)赋值。

通过步骤b1至步骤b3最终实现了应用部署模板。

如此,本发明中,步骤103中的部署应用实际是基于所述应用部署模板执行的,这能够实现应用的实际软件安装部署。具体地,不管是步骤104中基于所述应用运行的网络设备包含的容器运行引擎运行所述容器镜像,还是步骤105中基于在网络设备上加载的容器运行引擎运行所述容器镜像,最终,所述容器镜像基于对应的容器运行引擎并按照应用部署模板内的参数值在所述网络设备运行以实现所述应用的部署。

需要说明的是,在本发明中,为了防止未有应用访问权限的用户访问所述应用,还需要进一步对应用进行访问控制,以保证只有应用访问权限的用户访问应用。该访问控制可以在上述步骤b2中体现,当在应用模板界面选择应用部署至的网络设备后,不管网络设备为网络中已有的物理服务器还是网络中新建的虚拟机,如果当前的用户没有应用的访问权限,则应用模板界面是显示不出所述应用的,无法实现将所述应用拖拽至所述物理服务器或者网络中新建的虚拟机的操作,变相实现了防止未有应用访问权限的用户访问所述应用的目的。反之,如果当前的用户满足所述应用的访问权限,则可继续执行上述将应用拖拽至物理服务器或虚拟机的操作。

另外,作为一个实施例,本发明中,不管是步骤104中基于所述应用运行的网络设备包含的容器运行引擎运行所述容器镜像,还是步骤105中基于在所述网络设备上加载的容器运行引擎运行所述容器镜像,都需要进一步执行以下步骤c1至步骤c2:

步骤c1,确定基于容器运行引擎运行所述容器镜像时生成的容器实例;其中,所述容器实例与其他已有的容器实例相互隔离;

也即,所有容器实例都是相互隔离的,能够保证平台安全。

步骤c2,对所述容器实例进行生命周期管理,所述生命周期管理至少包含:容器实例启用、开始、停止、删除。

以上对本发明提供的方法进行了描述。下面对本发明提供的装置进行描述:

参见图4,图4为本发明提供的装置结构图。如图4所示,该装置包括:

应用转置模块,用于将待部署的应用对应的应用信息转换成容器描述文件;

镜像服务模块,用于基于所述容器描述文件构建容器镜像;

应用部署模块,用于在部署所述应用时,检测所述应用运行的网络设备是否包含所述容器镜像运行的容器运行引擎,如果是,基于所述网络设备上的所述容器运行引擎运行所述容器镜像以实现所述应用的部署;如果否,在所述网络设备上加载所述容器镜像运行的容器运行引擎,基于加载的容器运行引擎运行所述容器镜像以实现所述应用的部署。

优选地,所述应用转置模块将待部署的应用对应的应用信息转换成容器描述文件包括:

获取所述应用对应的应用信息,所述应用信息至少包含所述应用的应用软件包、所述应用运行的操作系统类别、所述应用对应的参数项、应用安装脚本;

按照设定的容器描述文件格式将所述应用信息转换生成容器描述文件。

优选地,该装置进一步包括:

容器管理模块,用于确定基于容器运行引擎运行所述容器镜像时生成的容器实例;其中,所述容器实例与其他已有的容器实例相互隔离;以及,

对所述容器实例进行生命周期管理,所述生命周期管理至少包含:容器实例启用、开始、停止、删除。

优选地,所述应用部署模块部署所述应用之前进一步包括:

在已定义的配置应用模板界面为所述应用创建对应的应用模板;

确定用户在所述配置应用模板界面选择所述应用需部署至的网络设备,当所述网络设备为网络中已有的物理服务器,则将所述应用拖拽至所述物理服务器,当所述网络设备为网络中未有的虚拟机,则新建虚拟机,并将所述应用拖拽至所述虚拟机;

为所述应用对应的参数项设置参数值,基于参数值、所述应用部署至的网络设备的信息生成应用部署模板;

所述应用部署模块部署应用包括:基于所述应用部署模板部署所述应用。

优选地,该装置进一步包括:

访问控制模块,用于在所述应用部署模块将应用拖拽至物理服务器或虚拟机之前,检测所述用户是否满足所述应用的访问权限,当所述用户满足所述应用的访问权限时,继续触发所述应用部署模块执行将应用拖拽至物理服务器或虚拟机的操作。

至此,完成图4所示的装置结构描述。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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