首页> 中国专利> 基于容器平台的应用交付方法、容器平台及应用交付系统

基于容器平台的应用交付方法、容器平台及应用交付系统

摘要

本发明实施例公开了一种基于容器平台的应用交付方法、容器平台及应用交付系统,用于减小应用交付过程中上传文件的大小。本发明实施例方法包括:预存用于应用发布的发布辅助文件;根据发布指令向应用开发平台获取目标应用的开发数据压缩文件;根据发布指令从发布辅助文件中确定与目标应用的开发数据压缩文件相匹配的目标发布辅助文件,目标发布辅助文件与目标应用的开发数据压缩文件组成目标应用的发布文件,发布文件包括目标基础容器镜像以及目标应用的配置数据和应用文件;根据部署指令对目标应用进行部署;基于目标基础容器镜像创建目标容器并启动目标容器;将目标应用的配置数据和应用文件加载到目标容器中;对目标应用进行初始化。

著录项

  • 公开/公告号CN106802807A

    专利类型发明专利

  • 公开/公告日2017-06-06

    原文格式PDF

  • 申请/专利权人 深圳市冬泉谷信息技术有限公司;

    申请/专利号CN201710090310.0

  • 发明设计人 尹婷梅;

    申请日2017-02-20

  • 分类号G06F9/44(20060101);G06F9/445(20060101);

  • 代理机构44285 深圳市深佳知识产权代理事务所(普通合伙);

  • 代理人王仲凯

  • 地址 518000 广东省深圳市前海深港合作区前湾一路1号A栋201室(入驻深圳市前海商务秘书有限公司)

  • 入库时间 2023-06-19 02:30:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-24

    授权

    授权

  • 2017-06-30

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20170220

    实质审查的生效

  • 2017-06-06

    公开

    公开

说明书

技术领域

本发明涉及容器平台技术和应用开发技术领域,具体涉及一种基于容器平台的应用交付方法、容器平台及应用交付系统。

背景技术

面对互联网+趋势带来的挑战,企业正在加快发展信息化建设,需要将越来越多的工作规范化及流程化处理,因此企业需要开发越来越多的符合自身需要的应用,包括网站、论坛、CRM系统、ERP系统和HR系统等。在应用开发平台完成应用的开发后,企业可以利用容器平台进行应用的交付。

企业利用现有的应用开发平台和容器平台向用户交付应用的过程通常是这样的:开发人员在应用开发平台完成应用的开发之后,需要打包应用的应用文件和配置数据,并编写容器文件,构建容器镜像,之后将应用文件、配置数据以及容器镜像上传到容器平台,完成目标应用在容器平台的发布,之后容器平台需要进行部署、创建容器,将应用文件、配置数据以及容器镜像加载到容器中,进行应用的初始化,启动应用,以使得目标应用交付给企业员工使用。

现有技术中,每交付一个应用,都需要将该应用的应用文件、配置数据以及容器镜像上传至容器平台,文件过大,上传时长过长,并且,由于容器平台的存储空间是有限的,交付应用的过程中上传至容器平台的文件过大,会浪费容器平台的存储空间。

发明内容

本发明提供一种基于容器平台的应用交付方法、容器平台及应用交付系统,用于解决现有技术在交付应用的过程中上传至容器平台的文件过大的问题。

本发明实施例的一方面提供了一种基于容器平台的应用交付方法,包括:

预存用于应用发布的发布辅助文件;

生成对目标应用的发布指令;

根据所述发布指令向应用开发平台获取所述目标应用的开发数据压缩文件;

根据所述发布指令从所述发布辅助文件中确定与所述目标应用的开发数据压缩文件相匹配的目标发布辅助文件,所述目标发布辅助文件与所述目标应用的开发数据压缩文件组成所述目标应用的发布文件,所述目标应用的发布文件包括目标基础容器镜像以及所述目标应用的配置数据和应用文件;

根据部署指令对所述目标应用进行部署;

基于所述目标基础容器镜像创建目标容器并启动所述目标容器;

将所述目标应用的配置数据和应用文件加载到所述目标容器中;

对所述目标应用进行初始化。

结合第一方面,在第一方面的第一种可能的实现方式中,所述发布辅助文件包括若干个基础容器镜像,所述目标发布辅助文件包括目标基础容器镜像;

所述目标应用的开发数据压缩文件包括所述目标应用的配置数据和应用文件。

结合第一方面,在第一方面的第二种可能的实现方式中,所述目标应用为模板类应用,所述应用文件为应用模板文件;

所述发布辅助文件包括若干个基础容器镜像和若干个应用模板文件,所述目标发布辅助文件包括目标基础容器镜像和目标应用模板文件;

所述开发数据压缩文件包括所述配置数据,不包括所述应用模板文件。

结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述对所述目标应用进行初始化包括:

对所述目标应用的开发数据压缩文件进行解压,得到解压后的所述目标应用的配置数据和应用文件;

对解压后的所述目标应用的配置数据和应用文件进行存储;

判断解压后的所述目标应用的配置数据的数据格式是否符合导入数据库的格式要求;

若符合,则将解压后的所述目标应用的配置数据导入所述数据库;

启动所述目标应用。

结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述对所述目标应用进行初始化包括:

对所述目标应用的开发数据压缩文件和应用模板的压缩文件进行解压,分别得到解压后的所述目标应用的配置数据和应用模板文件;

对解压后的所述目标应用的配置数据和应用模板文件进行存储;

判断所述解压后的目标应用的配置数据的数据格式是否符合导入数据库的格式要求;

若符合,则将所述解压后的目标应用的配置数据导入所述数据库;

启动所述目标应用。

本发明实施例的第二方面提供了一种容器平台,包括:

第一存储模块,用于预存用于应用发布的发布辅助文件;

生成模块,用于生成对目标应用的发布指令;

获取模块,用于根据所述发布指令向应用开发平台获取所述目标应用的开发数据压缩文件;

确定模块,用于根据所述发布指令从所述发布辅助文件中确定与所述目标应用的开发数据压缩文件相匹配的目标发布辅助文件,所述目标发布辅助文件与所述目标应用的开发数据压缩文件组成所述目标应用的发布文件,所述目标应用的发布文件包括目标基础容器镜像以及所述目标应用的配置数据和应用文件;

部署模块,用于根据部署指令对所述目标应用进行部署;

容器创建模块,用于基于所述目标基础容器镜像创建目标容器;

容器启动模块,用于启动所述目标容器;

加载模块,用于将所述目标应用的配置数据和应用文件加载到所述目标容器中;

初始化模块,用于对所述目标应用进行初始化。

结合第二方面,在第二方面的第一种可能的实现方式中,所述发布辅助文件包括若干个基础容器镜像,所述目标发布辅助文件包括目标基础容器镜像;

所述目标应用的开发数据压缩文件包括所述目标应用的配置数据和应用文件。

结合第二方面,在第二方面的第二种可能的实现方式中,所述发布辅助文件包括若干个基础容器镜像和若干个应用文件,所述目标发布辅助文件包括目标基础容器镜像和目标应用文件;

所述目标应用的开发数据压缩文件包括所述目标应用的配置数据,不包括所述应用文件;

所述目标应用为模板类应用,所述应用文件为应用模板的压缩文件。

结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述初始化模块包括:

第一解压单元,用于对所述目标应用的开发数据压缩文件进行解压,得到解压后的所述目标应用的配置数据和应用文件;

第一存储单元,用于对解压后的所述目标应用的配置数据和应用文件进行存储;

第一判断单元,用于判断解压后的所述目标应用的配置数据的数据格式是否符合导入数据库的格式要求;

第一导入单元,用于当所述第一判断单元判定解压后的所述目标应用的配置数据的数据格式符合导入数据库的格式要求时,将解压后的所述目标应用的配置数据导入所述数据库;

第一启动单元,用于启动所述目标应用。

结合第二方面的第二种可能的实现方式,在第二方面的第四种可能的实现方式中,所述初始化模块包括:

第二解压单元,用于对所述目标应用的开发数据压缩文件和应用模板的压缩文件进行解压,分别得到解压后的所述目标应用的配置数据和应用模板文件;

第二存储单元,用于对解压后的所述目标应用的配置数据和应用模板文件进行存储;

第二判断单元,用于判断所述解压后的目标应用的配置数据的数据格式是否符合导入数据库的格式要求;

第二导入单元,用于当所述第二判断单元判定解压后的所述目标应用的配置数据的数据格式符合导入数据库的格式要求时,将所述解压后的目标应用的配置数据导入所述数据库;

第二启动单元,用于启动所述目标应用。

本发明实施例的第三方面提供了一种应用交付系统,包括应用开发平台以及如权利要求6至10中任一项所述的容器平台,所述应用开发平台与所述容器平台之间具有通信连接;

所述应用开发平台用于存储应用的开发数据压缩文件,并在接收所述容器平台对目标应用的发布指令后,向所述容器平台上传所述目标应用的开发数据压缩文件。

从以上技术方案可以看出,本发明实施例具有以下优点:

应用的交付过程中需要的发布文件包括若干个基础容器镜像以及应用的配置数据和应用文件,本发明实施例中,发布文件的一部分作为发布辅助文件预存在容器平台,发布文件的另一部分作为应用的开发数据压缩文件,存储在应用开发平台,容器平台生成对目标应用的发布指令之后,只需向应用开发平台获取目标应用的开发数据压缩文件即可,再结合容器平台预存的发布辅助文件便可进行交付。和现有技术相比,本发明实施例减小了应用的发布过程中上传到容器平台的文件大小,减少了文件上传时长,节约了容器平台的存储空间。

附图说明

图1是本发明基于容器平台的应用交付方法一个实施例示意图;

图2是本发明基于容器平台的应用交付方法另一个实施例示意图;

图3是本发明基于容器平台的应用交付方法另一个实施例示意图;

图4是本发明容器平台一个实施例示意图;

图5是本发明容器平台中初始化模块一个实施例示意图;

图6是本发明应用交付系统一个实施例示意图。

具体实施方式

本发明实施例提供了一种基于容器平台的应用交付方法、容器平台及应用交付系统,用于减小应用交付过程中上传文件的大小。

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

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

随着云计算技术的发展,近年来诞生了一种新型云计算技术,即docker容器技术,通过这种新型的技术,可以实现应用的快速发布。docker容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。

为了方便企业根据自身发展需要开发和交付具有相应功能的应用,现有技术向企业提供应用开发平台和容器平台,企业利用现有的应用开发平台和容器平台向用户交付应用的过程通常是这样的(为了方便描述,将企业需要交付的应用称作目标应用):开发人员在应用开发平台完成目标应用的开发之后,需要手工打包目标应用的应用文件和配置数据,并编写容器文件,构建容器镜像,之后将应用文件、配置数据以及容器镜像上传到容器平台,完成目标应用在容器平台的发布,之后容器平台需要进行部署、创建目标容器,将应用文件、配置数据以及容器镜像加载到目标容器中,进行目标应用的初始化,启动目标应用,以使得目标应用交付给企业员工使用。

现有技术中,每交付一个应用,都需要将该应用的应用文件、配置数据以及容器镜像上传至容器平台,文件过大,上传时长通常较长,并且,由于容器平台的存储空间是有限的,交付应用的过程中上传至容器平台的文件过大,会浪费容器平台的存储空间。

为了解决上述问题,需要减小交付应用过程中上传至容器平台的文件大小。为此,本发明提供一种基于容器平台的应用交付方法,为便于理解,下面对本发明实施例中的具体流程进行描述,请参阅图1,本发明实施例中基于容器平台的应用交付方法一个实施例包括:

101、预存用于应用发布的发布辅助文件;

应用的发布文件包括若干个基础容器镜像以及应用的配置数据和应用文件,发布文件的一部分可以作为发布辅助文件预存在容器平台,发布文件的另一部分可以作为应用的开发数据压缩文件,存储在应用开发平台,

102、生成对目标应用的发布指令;

管理员可以登录容器平台,选定目标应用和发布辅助文件中的目标发布辅助文件,向容器平台下达对目标应用的发布指令,容器平台可以根据管理员的发布指令生成对目标应用的发布指令,发布指令包括目标应用和目标发布辅助文件之间的匹配关系。

103、根据发布指令向应用开发平台获取目标应用的开发数据压缩文件;

容器平台生成对目标应用的发布指令之后,可以根据发布指令向应用开发平台获取目标应用的开发数据压缩文件。

104、根据发布指令从发布辅助文件中确定与目标应用的开发数据压缩文件相匹配的目标发布辅助文件;

容器平台获取到目标应用的开发数据压缩文件之后,可以根据发布指令从发布辅助文件中确定与目标应用的开发数据压缩文件相匹配的目标发布辅助文件,目标发布辅助文件与目标应用的开发数据压缩文件便可组成目标应用的发布文件,完成目标应用的发布,目标应用的发布文件包括目标基础容器镜像以及目标应用的配置数据和应用文件。

105、根据部署指令对目标应用进行部署;

容器平台完成目标应用的发布后,可以根据管理员的部署指令对目标应用进行部署,进行容器参数配置。

106、基于目标基础容器镜像创建目标容器并启动目标容器;

容器平台对目标应用进行部署之后,可以基于目标基础容器镜像创建目标容器,并启动目标容器。

107、将目标应用的配置数据和应用文件加载到目标容器中;

容器平台启动目标容器之后,可以将目标应用的配置数据和应用文件加载到目标容器中。

108、对目标应用进行初始化。

容器平台对目标应用进行初始化,启动目标应用,供用户使用。

本发明实施例中,应用的发布文件包括若干个基础容器镜像以及应用的配置数据和应用文件,发布文件的一部分作为发布辅助文件预存在容器平台,发布文件的另一部分作为应用的开发数据压缩文件,存储在应用开发平台,容器平台生成对目标应用的发布指令之后,只需向应用开发平台获取目标应用的开发数据压缩文件即可,再结合容器平台预存的发布辅助文件便可进行交付。和现有技术相比,本发明实施例减小了应用发布过程中上传到容器平台的文件大小,减少了文件上传时长,节约了容器平台的存储空间。

为了提高应用交付过程的效率,应用的配置数据和应用文件可以为压缩文件,比如zip格式、rar格式或war格式。

在实际使用中,发布辅助文件可以包括若干个基础容器镜像,那么目标发布辅助文件包括目标基础容器镜像,目标应用的开发数据压缩文件可以包括目标应用的配置数据和应用文件,具体的,请参阅图2,本发明实施例中基于容器平台的应用交付方法另一个实施例包括:

201、容器平台预存若干个基础容器镜像;

容器平台预存有若干个基础容器镜像,比如tomcat容器镜像,或者nginx容器镜像,或者apache容器镜像,或者PHP容器镜像,其中tomcat容器镜像、nginx容器镜像和apache容器镜像是运行网页类或服务类应用的基础环境,PHP容器镜像是运行用PHP语言编写的应用的基础环境。基础容器镜像是公用的,即不被某个应用独占,任何应用都可基于基础容器镜像进行交付。

202、容器平台接收应用开发平台发送的目标应用的开发信息;

开发人员在应用开发平台完成应用开发后,通过应用开发平台对生成的应用文件和配置数据进行打包压缩,应用开发平台得到目标应用的应用压缩包,并将目标应用的开发信息发送至容器平台。目标应用的开发结果信息用于与其他开发出的模板类应用区别开,作为举例,可以包括目标应用的名称、类别、目标应用实现的功能、开发完成的时间、对应的开发人员信息等。

需要说明的是,目标应用的应用压缩包可以是zip格式,也可以是rar或war格式,此处不做具体限定。

203、容器平台生成根据目标基础容器镜像对目标应用的发布指令;

容器平台接收应用开发平台发送的目标应用的开发信息之后,管理员登录容器平台,可以选定目标应用和目标基础容器镜像,容器平台根据管理员下达的指令生成根据目标基础容器镜像对目标应用进行发布的发布指令。

204、容器平台向应用开发平台获取目标应用的应用压缩包;

容器平台生成对目标应用的发布指令之后,可以向应用开发平台获取目标应用的应用压缩包,并进行存储。

205、容器平台从预存的若干个基础容器镜像中确定与目标应用的应用压缩包相匹配的目标基础容器镜像;

容器平台接收目标应用的应用压缩包之后,可以根据发布指令从预存的若干个基础容器镜像中确定与目标应用相匹配的目标基础容器镜像,完成目标应用的发布。

206、容器平台根据部署指令对目标应用进行部署,进行容器参数配置;

容器平台完成目标应用的发布之后,可以根据用户对目标应用的部署指令进行容器参数配置,容器参数配置包括CPU、内存、环境变量等参数配置。

若目标应用对应的应用压缩包有多个版本,管理员可根据需要,指定具体的应用版本下达部署指令。

207、容器平台基于目标基础容器镜像创建目标容器并启动;

容器平台对目标应用进行部署之后,可以基于目标基础容器镜像创建目标容器,并启动目标容器。

208、容器平台将目标应用的应用压缩包加载到目标容器中;

容器平台启动目标容器之后,可以通过预置的脚本程序,将目标应用的应用压缩包加载到目标容器中。

209、容器平台对目标应用的应用压缩包进行解压;

容器平台对目标应用的应用压缩包进行解压后,可以得到解压后的目标应用的应用文件和配置数据。

为了在部署操作后提高目标应用的交付速度,步骤209可以在步骤205之后,步骤206之前执行,这样,步骤208中可以直接将解压后的目标应用的应用文件和配置数据加载目标容器中,之后不必再进行解压操作,从而提高交付速度。

210、容器平台对目标应用的应用文件和配置数据进行存储;

容器平台将目标应用的应用文件和配置数据进行存储,比如可以存储在目标容器的应用系统目录中,比如若目标容器为tomcat容器,则可以存储到tomcat的ROOT目录下。

211、容器平台判断目标应用的配置数据的数据格式是否符合导入数据库的格式要求,若是,则执行步骤212,若否,则执行步骤214;

容器平台对目标应用的应用压缩包进行解压后,可以校验解压后的配置数据的数据格式是否符合导入数据库的格式要求。

212、容器平台将目标应用的配置数据导入应用数据库;

若容器平台判定目标应用的配置数据的数据格式符合导入数据库的格式要求,则容器平台将配置数据导入应用数据库。应用数据库可以和应用在同一个容器中运行,也可以在单独的一个容器中运行。

213、容器平台启动目标应用;

容器平台将目标应用的配置数据导入应用数据库之后,可以启动目标应用,完成目标应用的初始化,使目标应用和基础容器镜像分离,完成目标应用的交付,供用户访问并使用目标应用。

214、执行其他操作。

若容器平台判定目标应用的配置数据的数据格式不符合导入数据库的格式要求,则不将配置数据导入应用数据库,而是执行其他操作,比如输出格式错误的提示信息。

本发明实施例中,容器平台预存若干个基础容器镜像,交付应用时容器平台不需像现有技术一样向应用开发平台获取容器镜像,只需获取包括应用文件和配置数据的应用压缩包,再结合容器平台预存的基础容器镜像便可进行交付。和现有技术相比,本发明实施例减小了应用发布过程中上传到容器平台的文件大小,节约了容器平台的存储空间。这种将应用压缩包与基础容器镜像分离的交付模式,使上传的文件大小由原来的百兆级别减小到十兆甚至几兆级别,节省了容器平台的存储空间,缩短了文件的上传时长,提高了交付效率。同时简化了操作、提高了用户体验,由普通运维人员也可以进行应用交付。

另外,通过应用压缩包和基础容器镜像的分离,可以方便建立应用压缩包与基础容器镜像的多对一匹配关系,方便实现目标应用的多版本交付管理。本发明通过建立应用压缩包与基础容器镜像的多对一的匹配关系,实现应用交付的多版本管理,即可以基于同一个基础容器镜像,发布多个不同版本的应用压缩包,并且可以根据需要指定某个版本进行部署,从而实现应用的多版本交付管理。

需要说明的是,在实际使用中,对于一些应用,容器平台上预存的基础容器镜像可根据实际需要用于直接部署,容器平台只需通过预存的基础容器镜像便可以实现这些应用的交付,而不一定要从应用开发平台获取应用文件和配置数据文件。作为举例,可以直接部署tomcat容器镜像,创建容器并启动后就完成了一个tomcat应用的发布;或者,也可直接部署mysql容器镜像,创建容器并启动后就完成了一个mysql数据库的发布。

企业常用的应用包括模板类应用,模板类应用是指通过改变配置数据,结合应用模板,比如前端UI界面模板,便可以组成完整功能的一类应用系统,常见的模板类应用包括网站、论坛、CRM系统、ERP系统和HR系统等。模板类应用的应用压缩包通常包括应用模板文件和配置数据,因为模板类应用的前端UI界面通常是不用改动的,而是通过改动配置数据来实现应用功能的变化,基于图2对应的实施例中应用压缩包和基础镜像分离的交付过程,对于模板类应用,可以进一步将应用压缩包中的配置数据和应用模板进行分离,将应用模板当成固定的模板,容器平台除了预存若干个基础容器镜像,还预存应用模板压缩包,通过发布不同版本的配置数据来实现不同版本的模板类应用的快速交付。若目标应用为模板类应用,应用文件可以为应用模板文件,发布辅助文件可以包括基础容器镜像和应用模板文件,那么目标发布辅助文件可以包括目标基础容器镜像和目标应用模板文件,开发数据压缩文件可以包括配置数据,而不包括应用模板文件,具体的,请参阅图2,本发明实施例中基于容器平台的应用交付方法另一个实施例包括:

301、容器平台预存应用模板压缩包和若干个基础容器镜像;

容器平台预存有应用模板压缩包,应用模板压缩包包含例如前端UI界面模板文件,容器平台还预存有若干个基础容器镜像,比如tomcat容器镜像或者nginx容器镜像,tomcat容器镜像和nginx容器镜像是运行网页类应用的基础环境。基础容器镜像是公用的,即不被某个应用独占,任何应用都可基于基础容器镜像进行交付。

302、容器平台接收应用开发平台发送的目标应用的开发信息;

开发人员登录应用开发平台,通过应用开发平台提供的图形化开发工具,进行模板类应用的设计和开发。应用开发平台完成目标应用的开发后,对生成的配置数据进行打包压缩,得到目标应用的配置数据压缩包,并将目标应用的开发信息发送至容器平台。

具体的,可以为:应用开发平台完成目标应用的开发后,其应用配置数据存储在数据库中,例如配置数据包括流程定义数据、流程节点定义数据、表单定义数据、报表定义数据和查询定义数据等。应用开发平台的配置数据导出模块将开发数据库中的应用配置数据导出,应用开发平台的数据格式化处理模块将导出的应用配置数据按照预定义的规范,对其进行格式化处理,应用开发平台的数据文件生成模块将经过格式化处理后的配置数据生成标准的XML文件,应用开发平台的压缩打包模块将生成的XML文件压缩成配置数据压缩包,配置数据压缩包除了zip格式,也可以是rar或war格式。开发平台将目标应用的开发信息发送至容器平台目标应用的开发结果信息用于与其他开发出的模板类应用区别开,作为举例,开发信息可以包括目标应用的名称、类别、目标应用实现的功能、开发完成的时间、对应的开发人员信息等。

303、容器平台生成根据目标基础容器镜像对目标应用的发布指令;

容器平台接收应用开发平台发送的目标应用的开发信息之后,可以根据目标应用的开发信息对目标应用进行显示,管理员登录容器平台,可以选定目标应用、目标应用模板以及目标基础容器镜像,并向容器平台下达发布指令,容器平台可以生成根据目标基础容器镜像和目标应用模板对目标应用进行发布的指令。

304、容器平台向应用开发平台获取目标应用的配置数据压缩包;

容器平台生成对目标应用的发布指令之后,可以向应用开发平台获取目标应用的配置数据压缩包,并进行存储。

305、容器平台从预存的应用模板和若干个基础容器镜像中确定与配置数据压缩包相匹配的目标应用模板和目标基础容器镜像;

容器平台接收目标应用的配置数据压缩包之后,可以根据发布指令从预存的若干个基础容器镜像中确定与配置数据压缩包相匹配的目标基础容器镜像,从预存的应用模板中确定与配置数据压缩包相匹配的目标应用模板,完成目标应用的发布。

配置数据压缩包与应用模板是多对一的关系,即可以发布多个版本的配置数据压缩包,对应于同一个应用模板。

306、容器平台对目标应用进行部署,进行容器参数配置;

容器平台完成目标应用的发布之后,管理员可以选定目标应用,执行应用部署,容器平台可以根据管理员对目标应用的部署指令进行容器参数配置,容器参数配置包括CPU、内存、环境变量等参数配置。

若目标应用对应的配置数据压缩包有多个版本,管理员可根据需要,指定具体的应用版本下达部署指令。

307、容器平台基于目标基础容器镜像创建目标容器并启动;

容器平台对目标应用进行部署之后,可以基于目标基础容器镜像创建目标容器,并启动目标容器。

308、容器平台将目标应用的配置数据压缩包和目标应用模板压缩包加载到目标容器中;

容器平台启动目标容器之后,可以通过预置的脚本程序,将目标应用的配置数据压缩包和目标应用模板压缩包加载到目标容器中。

309、容器平台对目标应用的配置数据压缩包和目标应用模板压缩包进行解压;

容器平台将目标应用的配置数据压缩包和目标应用模板压缩包加载到目标容器中之后,可以对目标应用的配置数据压缩包进行解压,得到目标应用的配置数据,对目标应用模板压缩包进行解压,得到目标应用模板。

为了在部署操作后提高目标应用的交付速度,步骤309可以在步骤305之后,步骤306之前执行,这样,步骤308中可以直接将解压后的目标应用的目标应用模板和配置数据加载目标容器中,之后不必再进行解压操作,从而提高交付速度。

310、容器平台对目标应用的配置数据和目标应用模板进行存储;

容器平台将目标应用的配置数据和目标应用模板进行存储,比如可以存储在目标容器的应用系统目录中,比如若目标容器为tomcat容器,则可以存储到tomcat的ROOT目录下。

311、容器平台判断目标应用的配置数据的数据格式是否符合导入数据库的格式要求,若是,则执行步骤312,若否,则执行步骤314;

容器平台对目标应用的配置数据压缩包进行解压后,可以校验解压后的配置数据的数据格式是否符合导入数据库的格式要求,若是,则执行步骤312,若否,则执行步骤314。

312、容器平台将目标应用的配置数据导入应用数据库;

若容器平台判定目标应用的配置数据的数据格式符合导入数据库的格式要求,则容器平台将配置数据导入应用数据库。应用数据库可以和应用在同一个容器中运行,也可以在单独的一个容器中运行。

313、容器平台启动目标应用。

容器平台将目标应用的配置数据导入应用数据库之后,可以启动目标应用,完成目标应用的初始化,使目标应用和基础容器镜像分离,完成目标应用的交付,供用户访问并使用目标应用。

314、执行其他操作。

若容器平台判定目标应用的配置数据的数据格式不符合导入数据库的格式要求,则不将配置数据导入应用数据库,而是执行其他操作,比如输出格式错误的提示信息。

对于模板类应用,在应用压缩包和基础容器镜像分离的基础上,可以进一步将应用压缩包中的配置数据和应用模板进行分离,通过在容器平台预存应用模板和基础容器镜像,实现只需发布配置数据压缩包到容器平台,结合预存的应用模板和若干个基础容器镜像,即可实现模板类应用的快速交付,进一步减小发布过程中上传的压缩包大小,节约容器平台的存储空间,缩短压缩包的上传时长。

上面对本发明实施例中的基于容器平台的应用交付方法进行了描述,下面对本发明实施例中的容器平台进行描述。

请参阅图4,本发明实施例中容器平台的一个实施例包括:

存储模块401,用于预存用于应用发布的发布辅助文件;

生成模块402,用于生成对目标应用的发布指令;

获取模块403,用于根据发布指令向应用开发平台获取目标应用的开发数据压缩文件;

确定模块404,用于根据发布指令从发布辅助文件中确定与目标应用的开发数据压缩文件相匹配的目标发布辅助文件,目标发布辅助文件与目标应用的开发数据压缩文件组成目标应用的发布文件,目标应用的发布文件包括目标基础容器镜像以及目标应用的配置数据和应用文件;

部署模块405,用于根据部署指令对目标应用进行部署;

容器创建模块406,用于基于目标基础容器镜像创建目标容器;

容器启动模块407,用于启动目标容器;

加载模块408,用于将目标应用的配置数据和应用文件加载到目标容器中;

初始化模块409,用于对目标应用进行初始化。

优选的,请参阅图5,对于发布辅助文件包括若干个基础容器镜像,目标发布辅助文件包括目标基础容器镜像,目标应用的开发数据压缩文件包括目标应用的配置数据和应用文件的情况,初始化模块409可以包括:

第一解压单元4091,用于对目标应用的开发数据压缩文件进行解压,得到解压后的目标应用的配置数据和应用文件;

第一存储单元4092,用于对解压后的目标应用的配置数据和应用文件进行存储;

第一判断单元4093,用于判断解压后的目标应用的配置数据的数据格式是否符合导入数据库的格式要求;

第一导入单元4094,用于当第一判断单元判定解压后的目标应用的配置数据的数据格式符合导入数据库的格式要求时,将解压后的目标应用的配置数据导入数据库;

第一启动单元4095,用于启动目标应用。

类似的,对于以下情况:发布辅助文件包括若干个基础容器镜像和若干个应用文件,目标发布辅助文件包括目标基础容器镜像和目标应用文件;目标应用的开发数据压缩文件包括目标应用的配置数据,不包括应用文件;目标应用为模板类应用,应用文件为应用模板的压缩文件,在这种情况下,初始化模块409可以包括:

第二解压单元,用于对目标应用的开发数据压缩文件和应用模板的压缩文件进行解压,分别得到解压后的目标应用的配置数据和应用模板文件;

第二存储单元,用于对解压后的目标应用的配置数据和应用模板文件进行存储;

第二判断单元,用于判断解压后的目标应用的配置数据的数据格式是否符合导入数据库的格式要求;

第二导入单元,用于当第二判断单元判定解压后的目标应用的配置数据的数据格式符合导入数据库的格式要求时,将解压后的目标应用的配置数据导入数据库;

第二启动单元,用于启动目标应用。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在实际应用中,容器平台也可以由基础镜像库、应用发布模块、应用部署模块和容器组成,其中:

1、基础镜像库用于实现存储模块401的功能,用于负责存储预先制作好的基础容器镜像,例如tomcat容器镜像、nginx容器镜像等,其中tomcat镜像和nginx镜像是运行网页类应用的基础环境;

2、应用发布模块用于实现生成模块402、获取模块403以及确定模块404的功能,负责生成对目标应用的发布指令,将应用压缩包和配置数据压缩包发布到容器平台,并根据发布指令从发布辅助文件中确定与目标应用的开发数据压缩文件相匹配的目标发布辅助文件,支持多版本发布,即可以发布多个不同版本的应用压缩包和配置数据压缩包;

3、应用部署模块用于实现部署模块405、容器创建模块406和容器启动模块407的功能,负责根据已发布的应用进行部署,部署后会自动基于基础容器镜像创建容器实例;同时负责容器参数配置、启动、停止、删除等管理;容器参数配置包括CPU、内存、环境变量等参数配置;

4、容器用于实现加载模块408和初始化模块409的功能,负责为应用系统提供运行环境,并通过预置的脚本程序加载应用压缩包和配置数据压缩包,并执行应用初始化。

本发明实施例还提供一种应用交付系统,请参阅图6,应用交付系统6包括容器平台601和应用开发平台602,应用开发平台与容器平台之间具有通信连接;

容器平台601可以为图4、图5对应的实施例中的容器平台,其功能可以参考前述方法实施例中的对应过程;

应用开发平台602可以用于存储应用的开发数据压缩文件,并在接收容器平台601对目标应用的发布指令后,向容器平台601上传目标应用的开发数据压缩文件。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号