一种基于容器的应用程序发布方法及装置与流程

文档序号:18141745发布日期:2019-07-10 11:09阅读:229来源:国知局
一种基于容器的应用程序发布方法及装置与流程

本申请涉及计算机以及云平台技术领域,尤其涉及一种基于容器的应用程序发布方法及装置。



背景技术:

随着云平台的迅速发展,基于容器的云平台技术也得到了迅速发展,为在基于容器的应用程序发布的过程中,提高资源利用率,提升系统发布效率,缩短系统故障恢复时间,以及降低虚拟化成本,通常采用数据中心操作系统(datacenteroperatingsystem,dcos)管理平台对应用程序进行发布,即采用docker将应用程序以及运行环境封装到一个镜像中,然后,运行镜像,实现基于容器的应用程序发布,其中,docs管理平台包括资源管理模块,镜像管理模块,,应用发布模块,监控模块,镜像仓库,以及各个下属(slave)资源节点。

其中,docker是一个开源的应用容器引擎。开发者可以通过docker,将指定的应用程序以及依赖文件包打包到一个可移植的镜像中,然后,就可以将上述镜像发布到任意linux设备,并可以实现虚拟化。

参阅图1a所示,为现有技术下基于docs管理平台的应用发布示意图,现有技术下,docs管理平台对应用程序进行发布时,主要采用以下方式:

首先,docs管理平台选择待生成的基础镜像,并下载创建上述基础镜像所需的镜像运行依赖环境,以及基于上述镜像运行依赖环境和编写的相应dockerfile脚本文件,生成基础镜像。

然后,docs管理平台根据待发布的应用程序,对基础镜像进行应用环境配置和封装,并将应用程序包在配置后的基础镜像进行部署和提交,生成应用镜像,以及将应用镜像推送到镜像仓库中。

最后,docs管理平台确定对上述应用程序进行发布时,对应用发布环境进行配置后,将镜像仓库中的应用镜像推送到各个下属(slave)资源节点,并通过slave资源节点运行上述应用镜像,完成指定的基于容器的应用程序发布,其中,slave资源节点是docs管理平台的一个计算节点。

但是,采用这种方式,首先,对应用程序进行更新时,需要重新生成更新后的应用程序对应的应用镜像,这会造成大量的重复工作,其次,随着应用程序的版本的增多,应用镜像的也相应的增多,这会提高镜像维护的难度。进一步地,每次应用程序更新时,都需要从镜像仓库下载相应的应用镜像,这会占用大量的网络宽带,提高了数据中心网络的维护难度。



技术实现要素:

本申请实施例提供一种基于容器的应用程序发布方法及装置,用于在通过镜像对应用程序进行发布时,简化应用程序发布的繁琐步骤,减少占用的网络宽带,降低维护难度。

本申请实施例提供的具体技术方案如下:

第一方面,一种基于容器的应用程序发布方法,包括:

容器化云平台确定对待发布的应用程序进行发布,并且应用程序为非初次发布时,将设置的程序包仓库中存储的应用程序的程序包,推送到slave资源节点,并通过slave资源节点,对应用程序包解压,获得应用程序;

通过slave资源节点直接获取存储的应用程序对应的专用镜像,其中,专用镜像中未部署应用程序;

通过slave资源节点,按照预设的启动脚本,启动专用镜像以及挂载在专用镜像上的应用程序,对应用程序进行发布。

较佳的,在确定对待发布的应用程序进行发布,并且应用程序为非初次发布之前,进一步包括:

确定对待发布的应用程序进行发布,并且应用程序为初次发布时,确定应用程序对应的基础镜像的类型;

基于基础镜像的类型,生成基础镜像,并对基础镜像进行应用环境的配置和封装后,直接进行提交,生成应用程序的专用镜像,以及将专用镜像推送到镜像仓库中;

将程序包仓库中存储的程序包推送至slave资源节点,以及通过slave资源节点,对应用程序包进行解压,获得应用程序;

将镜像仓库中的专用镜像推送至slave资源节点;

通过slave资源节点,对专用镜像和应用程序进行启动,对应用程序进行发布。

较佳的,对基础镜像进行应用环境的配置和封装后,直接进行提交,生成应用程序的专用镜像,包括:

对基础镜像进行应用环境配置,并将配置后的基础镜像进行封装;

将封装后的基础镜像进行提交,生成应用程序的专用镜像。

较佳的,在通过程序包仓库将程序包推送至slave资源节点之前,进一步包括:

对应用发布环境进行配置,其中,应用发布环境至少包括以下参数中的任意一种或任意组合:

镜像规格,网络配置,映射端口以及启动路径。

第二方面,一种基于容器的应用程序发布装置,包括:

解压单元,用于确定对待发布的应用程序进行发布,并且应用程序为非初次发布时,将设置的程序包仓库中存储的应用程序的程序包,推送到slave资源节点,并通过slave资源节点,对应用程序包解压,获得应用程序;

获取单元,用于通过slave资源节点直接获取存储的应用程序对应的专用镜像,其中,专用镜像中未部署应用程序;

发布单元,用于通过slave资源节点,按照预设的启动脚本,启动专用镜像以及挂载在专用镜像上的应用程序,对应用程序进行发布。

较佳的,在确定对待发布的应用程序进行发布,并且应用程序为非初次发布之前,解压单元还用于:

确定对待发布的应用程序进行发布,并且应用程序为初次发布时,确定应用程序对应的基础镜像的类型;

基于基础镜像的类型,生成基础镜像,并对基础镜像进行应用环境的配置和封装后,直接进行提交,生成应用程序的专用镜像,以及将专用镜像推送到镜像仓库中;

将程序包仓库中存储的程序包推送至slave资源节点,以及通过slave资源节点,对应用程序包进行解压,获得应用程序;

将镜像仓库中的专用镜像推送至slave资源节点;

通过slave资源节点,对专用镜像和应用程序进行启动,对应用程序进行发布。

较佳的,对基础镜像进行应用环境的配置和封装后,直接进行提交,生成应用程序的专用镜像时,解压单元还用于:

对基础镜像进行应用环境配置,并将配置后的基础镜像进行封装;

将封装后的基础镜像进行提交,生成应用程序的专用镜像。

较佳的,在通过程序包仓库将程序包推送至slave资源节点之前,解压单元还用于:

对应用发布环境进行配置,其中,应用发布环境至少包括以下参数中的任意一种或任意组合:

镜像规格,网络配置,映射端口以及启动路径。

第三方面,一种电子设备,包括:一个或多个处理器;以及

一个或多个计算机可读介质,可读介质上存储有用于基于容器的应用程序发布程序,其中,程序被一个或多个处理器执行时,实现上述第一方面中任一项的方法的步骤。

第四方面,一个或多个计算机可读介质,可读介质上存储有用于基于容器的应用程序发布程序,其中,程序被一个或多个处理器执行时,使得通信设备执行上述第一方面中任一项的方法。

本申请实施例中,容器化云平台确定对待发布的应用程序进行发布,并且应用程序为非初次发布时,将设置的程序包仓库中存储的应用程序的程序包,推送到slave资源节点,并通过slave资源节点,对应用程序包解压,获得应用程序;通过slave资源节点直接获取存储的应用程序对应的专用镜像,其中,专用镜像中未部署应用程序;通过slave资源节点,按照预设的启动脚本,启动专用镜像以及挂载在专用镜像上的应用程序,对应用程序进行发布。这样,避免了每次应用程序发布都要生成相应镜像的繁琐步骤,减少了频繁制作镜像耗费的工作量以及镜像版本的数量,将应用程序与镜像分离,简化了应用程序发布的繁琐步骤,提高了效率,非初次发布时,不需要下载专用镜像,减少了占用的网络宽带,降低了镜像以及数据中心网络的维护难度。

附图说明

图1a为现有技术下基于docs管理平台的应用发布示意图;

图1b为本申请实施例中基于容器管理平台的应用发布示意图;

图1c为本申请实施例中应用程序初次发布的方法流程图;

图1d为本申请实施例中应用程序初次发布的流程示意图;

图2为本申请实施例中应用程序非初次发布方法的流程图;

图3为本申请实施例中基于容器的应用程序发布装置的结构示意图。

具体实施方式

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

为了在通过镜像对应用程序进行发布时,简化应用程序发布的繁琐步骤,减少占用的网络宽带,降低维护难度,本申请实施例中,设计了一种基于容器的应用程序发布方法,该方法为容器化云平台确定对待发布的应用程序进行发布,并且应用程序为非初次发布时,将设置的程序包仓库中存储的应用程序的程序包,推送到slave资源节点,并通过slave资源节点,对应用程序包解压,获得应用程序;通过slave资源节点直接获取存储的应用程序对应的专用镜像;通过slave资源节点,按照预设的启动脚本,启动专用镜像以及挂载在专用镜像上的应用程序,对应用程序进行发布。

以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

用户确定对应用程序进行发布时,先在本地编写好应用程序后,将应用程序进行打包,并将打包后的应用程序包上传至容器化云平台的应用程序仓库中。本申请实施例中,根据应用程序是否为通过容器化云平台初次进行发布,分别通过两个应用场景对基于容器的应用程序发布进行说明。

其中,容器化云平台为基于容器的云平台,如,docs管理平台,用于将应用程序以及运行环境封装到一个镜像中,通过运行镜像,实现基于容器的应用程序发布。

参阅图1b所示,为本申请实施例中基于容器管理平台的应用发布示意图,容器化管理平台包括:资源管理模块,镜像管理模块,应用发布模块,监控模块,镜像仓库,程序包仓库以及各个slave资源节点。

应用发布模块:主要用于对应用发布环境进行配置、应用程序包上传、应用程序发布过程控制等。应用程序发布过程控制包括:应用程序的启动,挂载等参数的配置等。

程序包仓库:主要用于对应用程序包进行管理,包括对应用程序包进行增删等操作。应用程序包从本地上传至程序包仓库,程序包仓库统一存储所有项目的应用程序包,并支持所有项目对各自的应用程序包进行管理,包括版本管理,应用程序包的增删等管理操作。

镜像仓库:主要用于对应用程序的镜像进行保存以及管理。如,镜像制作、更新以及增删等功能。其中,应用程序依赖容器化云平台的镜像进行运行。

其中,镜像制作是针对应用程序,下载镜像运行依赖环境,如,中间件,jdk等组件,生成该应用程序对应的专用镜像,供应用程序进行发布时使用。镜像管理指可以对镜像进行调整更新,确定有新需求时增加新的镜像,以及确定镜像过多或者过期时,对镜像进行删除等。

最后,容器化管理平台中设置docklet组件用于将应用程序包推送到各计算节点,即slave资源节点,以及对各slave资源节点的应用程序包进行更新和解压等。应用程序发布时,需要将应用程序包拉取到相应的slave资源节点,然后,对应用程序包进行解压,这样应用程序才可以在镜像启动时被挂载上,才能完成应用程序的启动,才可以提供业务支持。进一步地,容器化管理平台中的设置的registry组件用于将镜像推送到slave资源节点。

第一个应用场景为:容器化云平台对应用程序进行初次发布。参阅图1c所示,为应用程序的初次发布的方法流程图,本申请实施例中,对应用程序进行初次发布的具体流程如下:

步骤100:容器化云平台确定对待发布的应用程序进行发布,并且应用程序为初次发布时,确定应用程序对应的基础镜像的类型。

具体的,执行步骤100时,容器化云平台根据用户的应用程序发布指令,确定对待发布的应用程序进行发布时,先判断该应用程序是否为初次发布。

然后,容器化云平台确定该应用程序为初次发布时,选择该应用程序需要的基础镜像的类型。

这样,就可以在后续过程中,针对应用程序,制作相应的基础镜像。

步骤101:容器化云平台基于基础镜像的类型,生成基础镜像,并对基础镜像进行应用环境的配置和封装后,直接进行提交,生成应用程序的专用镜像,以及将专用镜像推送到镜像仓库中。

具体的,首先,容器化云平台基于基础镜像的类型,下载创建上述基础镜像所需的镜像运行依赖环境,以及基于上述镜像运行依赖环境和编写的相应dockerfile脚本文件,生成基础镜像。

然后,容器化云平台针对待发布的应用程序,对基础镜像进行应用环境配置和封装,以及对封装后的基础镜像进行提交,生成应用程序对应的专用镜像。

最后,容器化云平台将生成的专用镜像推送到镜像仓库中。

这样,就可以将应用程序与镜像进行分离,在制作应用程序的镜像时,并不将应用程序发布到基础镜像,直接将封装后的基础镜像进行提交,获得应用程序的专用镜像。

步骤102:容器化云平台针对待发布的应用程序,进行应用发布环境的配置。

具体的,执行步骤102时,参阅图1d所示,为本申请实施例中应用程序初次发布的流程示意图。容器化云平台通过应用发布模块对应用发布环境进行配置。

其中,应用发布环境至少包括以下参数中的任意一种或任意组合:镜像规格,网络配置,映射端口以及启动路径。

步骤103:容器化云平台将程序包仓库中存储的程序包推送至slave资源节点,以及通过slave资源节点,对应用程序包进行解压,获得应用程序。

具体的,执行步骤103时,参阅图1d所示,基于应用发布模块的应用发布指令,docklet组件将程序包仓库中的应用程序包推送至slave资源节点的相应目录,通过slave资源节点对应用程序包进行解压。

其中,程序包仓库中存储有各个用户上传的应用程序包,程序包仓库在用户上传应用程序包时,会对应用程序包进行唯一性验证,即每一个应用程序包都是唯一的。

这样,就可以通过容器化云平台中的各个slave资源节点对待发布的应用程序包进行解压,获得待发布的应用程序。

步骤104:容器化云平台将镜像仓库中待发布的应用程序的专用镜像推送至slave资源节点。

具体的,执行步骤104时,容器化云平台中的registry组件将镜像仓库中待发布的应用程序的专用镜像推送至slave资源节点。

其中,步骤103和步骤104的执行顺序并不限定,本申请实施例中,仅以先执行步骤103,然后执行步骤104为例进行说明。

步骤105:容器化云平台通过slave资源节点,对专用镜像和应用程序进行启动,对应用程序进行发布。

具体的,参阅图1d所示,slave资源节点根据设定的启动脚本,启动待发布的应用程序的专用镜像,在专用镜像启动的过程中,根据启动脚本,将挂载在专用镜像上的应用程序进行启动,实现了基于容器的应用程序发布。

这样,就可以将镜像与应用程序进行了分离,在制作镜像时,并不将应用程序推送到镜像中,从而可以在应用程序进行更新,版本升级候再次发布时,不需要重新生成镜像,减少了镜像制作的制作频率,提高了应用程序发布的效率。

第二个应用场景为:容器化云平台对应用程序进行非初次发布。参阅图2所示,为应用程序的非初次发布的方法流程图,本申请实施例中,对应用程序进行非初次发布的具体流程如下:

步骤200:容器化云平台确定对待发布的应用程序进行发布,并且应用程序为非初次发布时,将设置的程序包仓库中存储的应用程序的程序包,推送到slave资源节点,并通过slave资源节点,对应用程序包解压,获得应用程序。

这样,在应用程序非初次发布时,由于在应用程序初次发布时,已经针对应用程序制作了相应的专用镜像,并对应用发布环境进行了配置,因此,直接将待发布的应用程序包推送至slave资源节点节点就可以了。

步骤201:slave资源节点直接获取存储的应用程序对应的专用镜像。

由于在应用程序初次发布时,已经从镜像仓库中,获取了相应的专用镜像,因此,直接在本地就可以获取该专用镜像。

这样,避免了在应用程序更新后分布时,都要向slave资源节点推送专用镜像的过程,节省了更新的时间,提高了发布效率,减少了占用的网络宽带,降低了网络维护中心的维护难度。

步骤202:容器化云平台通过slave资源节点,按照预设的启动脚本,启动专用镜像以及挂载在专用镜像上的应用程序,对应用程序进行发布。

这样,首先,将应用程序包与镜像进行分离后,仅在应用程序初次进行发布时,针对应用程序生成相应的专用镜像,在应用程序版本升级后再次进行发布时,直接可以获取本地存储的上述专用镜像进行基于容器的应用程序发布,避免了镜像的频繁制作的繁琐步骤,降低了镜像制作的工作量,减少了失误,提高了应用发布的效率。

其次,不需要针对每一个版本的应用程序均制作相应的镜像,降低了镜像管理的难度,将应用程序包与镜像进行分别管理,便于版本的控制,只需要管理应用程序的版本就可以,无需考虑镜像的版本,降低了应用程序的管理。

进一步地,避免了在应用程序更新后分布时,都要向slave资源节点推送专用镜像的过程,节省了更新的时间,提高了发布效率,减少了占用的网络宽带,降低了网络维护中心的维护难度。

本申请实施例中,一种电子设备,包括:一个或多个处理器;以及

一个或多个计算机可读介质,可读介质上存储有用于基于容器的应用程序发布的程序,其中,程序被一个或多个处理器执行时,实现上述实施例中的各个步骤。

本申请实施例中,一个或多个计算机可读介质,可读介质上存储有用于基于容器的应用程序发布的程序,其中,程序被一个或多个处理器执行时,使得通信设备可以执行上述实施例中的各个步骤。

基于上述实施例,参阅图3所示,基于容器的应用程序发布装置的结构示意图,本申请实施例中,基于容器的应用程序发布装置具体包括:

解压单元30,用于确定对待发布的应用程序进行发布,并且应用程序为非初次发布时,将设置的程序包仓库中存储的应用程序的程序包,推送到slave资源节点,并通过slave资源节点,对应用程序包解压,获得应用程序;

获取单元31,用于通过slave资源节点直接获取存储的应用程序对应的专用镜像,其中,专用镜像中未部署应用程序;

发布单元32,用于通过slave资源节点,按照预设的启动脚本,启动专用镜像以及挂载在专用镜像上的应用程序,对应用程序进行发布。

较佳的,在确定对待发布的应用程序进行发布,并且应用程序为非初次发布之前,解压单元30还用于:

确定对待发布的应用程序进行发布,并且应用程序为初次发布时,确定应用程序对应的基础镜像的类型;

基于基础镜像的类型,生成基础镜像,并对基础镜像进行应用环境的配置和封装后,直接进行提交,生成应用程序的专用镜像,以及将专用镜像推送到镜像仓库中;

将程序包仓库中存储的程序包推送至slave资源节点,以及通过slave资源节点,对应用程序包进行解压,获得应用程序;

将镜像仓库中的专用镜像推送至slave资源节点;

通过slave资源节点,对专用镜像和应用程序进行启动,对应用程序进行发布。

较佳的,对基础镜像进行应用环境的配置和封装后,直接进行提交,生成应用程序的专用镜像时,解压单元30还用于:

对基础镜像进行应用环境配置,并将配置后的基础镜像进行封装;

将封装后的基础镜像进行提交,生成应用程序的专用镜像。

较佳的,在通过程序包仓库将程序包推送至slave资源节点之前,解压单元30还用于:

对应用发布环境进行配置,其中,应用发布环境至少包括以下参数中的任意一种或任意组合:

镜像规格,网络配置,映射端口以及启动路径。

本申请实施例中,容器化云平台确定对待发布的应用程序进行发布,并且应用程序为非初次发布时,将设置的程序包仓库中存储的应用程序的程序包,推送到slave资源节点,并通过slave资源节点,对应用程序包解压,获得应用程序;通过slave资源节点直接获取存储的应用程序对应的专用镜像,其中,专用镜像中未部署应用程序;通过slave资源节点,按照预设的启动脚本,启动专用镜像以及挂载在专用镜像上的应用程序,对应用程序进行发布。这样,避免了每次应用程序发布都要生成相应镜像的繁琐步骤,减少了频繁制作镜像耗费的工作量以及镜像版本的数量,将应用程序与镜像分离,简化了应用程序发布的繁琐步骤,提高了效率,非初次发布时,不需要下载专用镜像,减少了占用的网络宽带,降低了镜像以及数据中心网络的维护难度。

本领域内的技术人员应明白,本申请实施例中的实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例中可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例中可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例中是参照根据本申请实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。

显然,本领域的技术人员可以对本申请实施例中实施例进行各种改动和变型而不脱离本申请实施例中实施例的精神和范围。这样,倘若本申请实施例中实施例的这些修改和变型属于本申请实施例中权利要求及其等同技术的范围之内,则本申请实施例中也意图包含这些改动和变型在内。

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