增量镜像数据包的自动生成方法、装置、设备及存储介质

文档序号:152891 发布日期:2021-10-26 浏览:22次 >En<

阅读说明:本技术 增量镜像数据包的自动生成方法、装置、设备及存储介质 (Method, device, equipment and storage medium for automatically generating incremental mirror image data packet ) 是由 王飞 刘城 王龙 叶成 李虎 梁广泽 郑东 倪杨 吴金鑫 侯立冬 孟宝权 王杰 于 2021-07-28 设计创作,主要内容包括:本发明实施例公开了一种增量镜像数据包的自动生成方法、装置、设备及存储介质。增量镜像数据包的自动生成方法,包括:获取与目标软件的新版本匹配的全量镜像数据包,其中,全量镜像数据包中,按照预设的分层目录形式存储有分层文件;对全量镜像数据包进行数据结构的解析,获取分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合;将各分层文件的文件标识与文件标识集合进行匹配,获取重复文件标识;从全量镜像数据包中,筛除各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。本发明实施例的技术方案能够对接持续集成的自动化方案,降低镜像包的部署耗时。(The embodiment of the invention discloses an automatic generation method, device, equipment and storage medium of an incremental mirror image data packet. The automatic generation method of the incremental mirror image data packet comprises the following steps: acquiring a full-volume mirror image data packet matched with the new version of the target software, wherein layered files are stored in the full-volume mirror image data packet according to a preset layered directory form; analyzing the data structure of the full-volume mirror image data packet to obtain the file identification of the layered file, and obtaining a file identification set associated with the target software from the history data locally cached by the target equipment; matching the file identification of each layered file with the file identification set to obtain a repeated file identification; and screening out the repeated layered files corresponding to the repeated file identifications from the full-volume mirror image data package to form an incremental mirror image data package matched with the new version of the target software. The technical scheme of the embodiment of the invention can be used for docking a continuous integrated automation scheme, and the time consumption for deploying the mirror image package is reduced.)

增量镜像数据包的自动生成方法、装置、设备及存储介质

技术领域

本发明实施例涉及计算机技术领域,尤其涉及一种增量镜像数据包的自动生成方法、装置、设备及存储介质。

背景技术

目前,容器技术对持续集成、跨平台支持、环境标准化、版本控制、资源隔离以及资源利用率等多个方面为软件技术带来了很大的收益,使得容器技术在越来越多的技术团队中广泛使用。对于有私有化部署需求的公司或团队,一般是通过将新版本的软件镜像制作成镜像包进行离线或者在线的安装,以实现对软件版本的更新迭代。在基于容器私有化部署时,由于软件的镜像包数据量较大(单个微服务软件镜像包就有数百兆),对于规模较大或者更新频繁的项目,一般会通过构建并部署增量镜像包的方式,实现版本迭代。

现有的构建并部署增量镜像包的方式具体为:首先准备与待更新的镜像包对应的更新差异文件和镜像描述文件,并根据更新差异文件和镜像描述文件编写容器文件,进而通过该容器文件实现增量镜像包的构建部署。

发明人在实现本发明的过程中,发现现有的使用增量镜像包进行软件版本迭代时存在以下不足:(1)需要人工分析处理才能得到更新差异文件,难以对接持续集成等自动化方案。(2)在软件进行版本迭代时,即使设备中已经存储有增量镜像包中的相关数据,仍需从增量镜像包中重复获取该数据进行本地替换,这些重复下载的数据会影响增量镜像包的部署耗时。

发明内容

本发明实施例提供一种增量镜像数据包的自动生成方法、装置、设备及存储介质,能够对接持续集成的自动化方案,降低镜像包的部署耗时。

第一方面,本发明实施例提供了一种增量镜像数据包的自动生成方法,包括:

获取与目标软件的新版本匹配的全量镜像数据包,其中,在全量镜像数据包中,按照预设的分层目录形式存储有多个分层文件;

对全量镜像数据包进行数据结构的解析,获取各分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合;

将各分层文件的文件标识与文件标识集合进行匹配,获取至少一个重复文件标识;

从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。

第二方面,本发明实施例还提供了一种增量镜像数据包的自动生成装置,包括:

全量镜像数据包获取模块,用于获取与目标软件的新版本匹配的全量镜像数据包,其中,在全量镜像数据包中,按照预设的分层目录形式存储有多个分层文件;

文件标识集合获取模块,用于对全量镜像数据包进行数据结构的解析,获取各分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合;

重复文件标识获取模块,用于将各分层文件的文件标识与文件标识集合进行匹配,获取至少一个重复文件标识;

增量镜像数据包生成模块,用于从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。

第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的增量镜像数据包的自动生成方法。

第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的增量镜像数据包的自动生成方法。

本实施例的技术方案,通过获取与目标软件的新版本匹配的,按照预设的分层目录形式存储有多个分层文件的全量镜像数据包,以对全量镜像数据包进行数据结构的解析,获取按各分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合。其中,各分层文件的文件标识以及文件标识集合的获取无需人工干预,均可自动提取。在得到各分层文件的文件标识和文件标识集合之后,将各分层文件的文件标识与文件标识集合进行匹配,获取至少一个重复文件标识,以进一步从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。由于与目标软件关联的文件标识集合可以包括目标软件的历史版本的文本标识集合之外的但与目标软件的历史版本关联的文件标识。因此与目标软件关联的文件标识集合相较于目标软件的历史版本的文本标识集合,数据量更大。利用目标软件关联的文件标识集合与各分层文件的文件标识进行匹配,可以获取数量较多的重复文本标识,使得从全量镜像数据包中,筛除的重复分层文件也就更多,进而实现对增量镜像数据包的最大限度的压缩,以便于增量镜像数据包的高效部署,解决了现有技术在软件升级时,通过人工查找新旧版本的差异文件,并根据差异文件进行软件升级时存在的无法对接持续集成的自动化方案的问题,以及设备中即使存在的数据也要通过增量镜像数据包获取所导致的镜像包部署耗时较长的问题,能够对接持续集成的自动化方案,降低镜像包的部署耗时。

附图说明

图1是本发明实施例一提供的一种增量镜像数据包的自动生成方法的流程图;

图2是本发明实施例二提供的一种增量镜像数据包的自动生成方法的流程图;

图3是本发明实施例二提供的一种增量镜像数据包的自动生成的流程示意图;

图4是本发明实施例三提供的一种增量镜像数据包的自动生成装置的示意图;

图5为本发明实施例四提供的一种电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。

另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1是本发明实施例一提供的一种增量镜像数据包的自动生成方法的流程图,本实施例可适用于对增量镜像数据包的快速部署的情况,该方法可以由增量镜像数据包的自动生成装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中。相应的,如图1所示,该方法包括如下操作:

S110、获取与目标软件的新版本匹配的全量镜像数据包。

其中,目标软件可以是需要根据镜像包进行升级的软件。全量镜像数据包可以是包括所有安装包元数据以及安装文件的镜像包。在全量镜像数据包中,按照预设的分层目录形式存储有多个分层文件。分层目录可以用于表征分层文件顺序以及分层文件的名称。分层文件可以用于对目标软件进行升级。

在本发明实施例中,当对目标软件进行升级时,可以首先获取升级目标软件所需的,与目标软件新版本匹配的全量镜像数据包。

S120、对全量镜像数据包进行数据结构的解析,获取各分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合。

其中,文件标识可以是用于识别分层文件的记号,一个分层文件具有唯一一个文件标识。目标设备可以是需要根据全量镜像数据包生成增量镜像数据包的设备。文件标识集合可以是目标设备本地缓存的文件标识的集合。

在本发明实施例中,可以对获取的与目标软件的新版本匹配的全量镜像数据包进行数据结构解析,进而获取全量镜像数据包中所存在的各分层文件,以根据各分层文件确定与之唯一匹配的文件标识。在得到各分层文件的文件标识之后,可以进一步获取目标设备本地缓存的历史数据,进而对目标设备本地缓存的历史数据进行解析,得到与目标软件关联的文件标识集合。其中,与目标软件关联的文件标识集合可以包括目标设备本地缓存的所有软件的历史版本的文件标识集合。

S130、将各分层文件的文件标识与文件标识集合进行匹配,获取至少一个重复文件标识。

其中,重复文件标识可以是在多个分层文件的文件标识以及文件标识集合中同时存在的标识。

在本发明实施例中,可以对得到的各分层文件的文件标识以及文件标识集合进行匹配操作,进而得到至少一个重复文件标识,以根据重复文件标识对全量镜像数据包进行去重处理。

S140、从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。

其中,重复分层文件可以是重复文件标识所标记的分层文件。

在本发明实施例中,可以根据获取的至少一个重复文件标识确定与重复文件标识对应的重复分层文件,进而从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,从而根据全量镜像数据包中剩余数据形成与目标软件的新版本匹配的增量镜像数据包。需要说明的是,当全量镜像数据包版本较多时,全量镜像数据包的版本号数量也会很多,由人工通过版本号确定全量镜像数据包,容易导致产生的增量镜像数据包存在数据错误的问题。而本方案通过从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包,可以保证产生的增量镜像数据包的数据准确性。

本实施例的技术方案,通过获取与目标软件的新版本匹配的,按照预设的分层目录形式存储有多个分层文件的全量镜像数据包,以对全量镜像数据包进行数据结构的解析,获取按各分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合。其中,各分层文件的文件标识以及文件标识集合的获取无需人工干预,均可自动提取。在得到各分层文件的文件标识和文件标识集合之后,将各分层文件的文件标识与文件标识集合进行匹配,获取至少一个重复文件标识,以进一步从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。由于与目标软件关联的文件标识集合可以包括目标软件的历史版本的文本标识集合之外的但与目标软件的历史版本关联的文件标识。因此与目标软件关联的文件标识集合相较于目标软件的历史版本的文本标识集合,数据量更大。利用目标软件关联的文件标识集合与各分层文件的文件标识进行匹配,可以获取数量较多的重复文本标识,使得从全量镜像数据包中,筛除的重复分层文件也就更多,进而实现对增量镜像数据包的最大限度的压缩,以便于增量镜像数据包的高效部署,解决了现有技术在软件升级时,通过人工查找新旧版本的更新差异文件,并根据更新差异文件进行软件升级时存在的无法对接持续集成的自动化方案的问题,以及设备中即使存在的数据也要通过增量镜像数据包获取所导致的镜像包部署耗时较长的问题,能够对接持续集成的自动化方案,降低镜像包的部署耗时。

实施例二

图2是本发明实施例二提供的一种增量镜像数据包的自动生成方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了对全量镜像数据包进行数据结构的解析,获取各分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合,以及从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件的具体的可选的实施方案,相应的,如图2所示,该方法包括如下操作:

S210、获取与目标软件的新版本匹配的全量镜像数据包。

S220、对全量镜像数据包进行数据结构的解析,获取全量镜像数据包中的目标镜像文件。

其中,目标镜像文件可以是全量镜像数据包中的文件,用于存储分层文件的文件标识。

在本发明实施例中,目标设备可以对获取的与目标软件的新版本匹配的全量镜像数据包进行数据结构解析,得到全量镜像数据包中的目标镜像文件。

示例性的,如果接收全量镜像数据包的设备和加载增量镜像数据包的设备是同一设备时,则目标镜像文件可以是镜像包配置文件。如果接收全量镜像数据包设备和加载增量镜像数据包的设备是不同设备时,则目标镜像文件可以是镜像包描述文件。例如,镜像包描述文件可以是文件名为manifest.json文件,镜像配置文件可以是文件后缀为.json的文件。

S230、获取目标镜像文件中差异标识集合中包括的各差异标识,作为各分层文件的文件标识。

其中,差异标识集合可以是目标镜像文件中所包括的文件标识的集合。差异标识可以是差异标识集合中的标识。

在本发明实施例中,可以对目标镜像文件进行解析得到差异标识集合,以及差异标识集合中的各差异标识,进而将各差异标识作为各分层文件的文件标识。

示例性的,当目标镜像文件是镜像包描述文件时,差异标识可以是layerID。当目标镜像文件是镜像包配置文件时,差异标识可以是diffID。layerID是对镜像拉取内容进行压缩计算得到的数据。diffID是对镜像拉取内容压缩后再解压得到的数据。需要说明的是,当差异标识的标识类型为layerID时,文件标识集合的标识类型也要是layerID。当差异标识的标识类型为diffID时,文件标识集合的标识类型也要是diffID。即标识类型相同时,分层文件的文件标识与文件标识集合才能进行匹配操作。

S240、在目标设备本地缓存的历史数据中,获取与目标软件关联的本地缓存目录。

其中,本地缓存目录可以用于表征本地缓存的数据的目录。

在本发明实施例中,可以对目标设备本地缓存的历史数据进行解析,进而在历史数据中得到与目标软件关联的本地缓存目录。

在本发明的一个可选的实施例中,在目标设备本地缓存的历史数据中,获取与目标软件关联的本地缓存目录,可以包括:利用容器配置文件,或者容器数据查询指令获取本地缓存目录。

其中,容器配置文件可以是容器创建镜像时的配置文件。容器数据查询指令可以用于查询容器中所包括的数据。

在本发明实施例中,可以利用容器配置文件,或者容器数据查询指令在目标设备本地缓存的历史数据中查找本地缓存目录。

示例性的,容器配置文件可以存储于/ect/docker/daemon.json文件中,容器数据查询指令可以是docker info指令。本发明实施例对容器配置文件所存储文件类型和容器数据查询指令的具体指令形式不作限定。

S250、在本地缓存目录下,获取与目标软件关联的文件标识集合。

在本发明实施例中,可以对本地缓存目录进行解析,确定与分层文件的文件标识对应的子目录,进而根据该子目录获取与目标软件关联的文件标识集合。

在本发明的一个可选的实施例中,在本地缓存目录下,获取与目标软件关联的文件标识集合,可以包括:对本地缓存目录进行数据结构的解析,获取与本地缓存目录对应的树形结构根目录;根据文件标识对树形结构根目录进行遍历,得到与目标软件关联的文件标识集合。

其中,树形结构根目录可以是一种树形结构的缓存目录。

在本发明实施例中,可以首先对本地缓存目录进行数据结构的解析,以获取与本地缓存目录对应的树形结构根目录,进而根据分层文件的文件标识对树形结构根目录进行遍历,从而可以在树形结构根目录中得到与分层文件的文件标识对应的子目录,以进一步根据该子目录获取与目标软件关联的文件标识集合。

示例性的,可以通过遍历与分层文件的文件标识对应的子目录中的/home/docker/image/overlay2/layerdb/sha256/*/diff文件,得到diffID集合。

S260、将各分层文件的文件标识与文件标识集合进行匹配,获取至少一个重复文件标识。

S270、从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。

在本发明的一个可选的实施例中,从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,可以包括:在镜像包描述文件中根据各重复文件标识定位重复分层文件在分层目录下的存储位置;根据重复分层文件在分层目录下的存储位置对重复分层文件进行删除。

在本发明实施例中,在得到重复分层标识之后,可以从全量镜像数据包中获取镜像包描述文件,进而在镜像包描述文件中根据各重复文件标识对分层文件在分层目录下的存储位置进行定位,从而可以根据重复分层文件在分层目录下的存储位置获取重复分层文件,以进一步删除重复分层文件。

在本发明的一个可选实施例中,获取与目标软件的新版本匹配的全量镜像数据包,可以包括:响应于目标设备对目标软件的软件升级请求,获取与目标软件的新版本匹配的全量镜像数据包;在形成与目标软件的新版本匹配的增量镜像数据包之后,还可以包括:将增量镜像数据包发送至待部署设备,以指示待部署设备对增量镜像数据包进行本地部署。

其中,软件升级请求可以是在目标设备需要对待部署设备的目标软件进行升级时,通过目标设备发送的请求。待部署设备可以是需要根据增量镜像数据包对目标软件升级的设备,目标软件配置于待部署设备。

在本发明实施例中,当目标设备需要对待部署设备的目标软件进行升级时,目标设备可以响应于目标设备对目标软件的软件升级请求,获取与目标软件的新版本匹配的全量镜像数据包。在得到与目标软件的新版本匹配的增量镜像数据包之后可以将增量镜像数据包发送至待部署设备,以指示待部署设备对增量镜像数据包进行在待部署设备的本地部署。

需要说明的是,根据目标设备本地缓存的历史数据中的文件标识集合与全量镜像数据包的各分层文件的文件标识进行匹配后,确定的重复文件标识对应的重复分层文件是目标设备本地存在的,在目标设备是待部署设备的情况下,增量镜像数据包是根据待部署设备本地缓存的历史数据获取的,使得增量镜像数据包与待部署设备具有一对一关系,需要一对一部署。当目标设备不是待部署设备的情况下,例如目标设备是镜像仓库时,由于镜像仓库缓存的历史数据与待部署设备不同,因此当目标设备是镜像仓库的情况下,所得到的增量镜像数据包可以进行批量部署。

图3是本发明实施例二提供的一种增量镜像数据包的自动生成的流程示意图,以接收全量镜像数据包的设备和加载增量镜像数据包的设备是同一设备为例对增量镜像数据包的自动生成过程进行介绍。如图3所示,首先可以根据docker save(容器引擎的保存指令)下载与目标软件的新版本匹配的全量镜像数据包,进而对全量镜像数据包进行数据结构的解析,获取镜像包描述文件以及镜像包配置文件。由于镜像包描述文件的分层文件的排列顺序,与分层文件标识diffID在镜像包配置文件的排列顺序具有映射关系,因此在得到镜像包描述文件中分层文件的排列顺序之后,可以根据分层文件的排列顺序在镜像包配置文件中确定各分层文件的diffID。示例性的,镜像包描述文件的分层文件的排列顺序为分层文件1,分层文件2,分层文件3。分层文件标识diffID在镜像包配置文件的排列顺序为分层文件1的diffID、分层文件2的diffID,分层文件3的diffID,即分层文件与分层文件的文件标识一一对应顺序存储。在目标设备本地缓存的历史数据中,获取与目标软件关联的本地缓存目录,根据本地缓存目录获取diffID集合(文件标识集合)。将各分层文件的diffID与目标设备本地缓存的历史数据中的diffID集合进行匹配,获取至少一个重复diffID。从全量镜像数据包中与重复diffID对应的重复分层文件,从而形成增量镜像数据包,进一步将增量镜像数据包在本地进行部署。通过本方案的生成的增量镜像数据包相比全量镜像数据包,文件的大小可以减少至全量镜像数据包1%-20%,从而实现与Jenkins(开源的,一种集成工具)等CI(Continuous Integration,持续集成)和CD(ContinuousDelivery,持续交付)的自动化系统的无缝集成。

本实施例的技术方案,通过获取与目标软件的新版本匹配的,按照预设的分层目录形式存储有多个分层文件的全量镜像数据包,以对全量镜像数据包进行数据结构的解析,获取按各分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合。其中,各分层文件的文件标识以及文件标识集合的获取无需人工干预,均可自动提取。在得到各分层文件的文件标识和文件标识集合之后,将各分层文件的文件标识与文件标识集合进行匹配,获取至少一个重复文件标识,以进一步从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。由于与目标软件关联的文件标识集合可以包括目标软件的历史版本的文本标识集合之外的但与目标软件的历史版本关联的文件标识。因此与目标软件关联的文件标识集合相较于目标软件的历史版本的文本标识集合,数据量更大。利用目标软件关联的文件标识集合与各分层文件的文件标识进行匹配,可以获取数量较多的重复文本标识,使得从全量镜像数据包中,筛除的重复分层文件也就更多,进而实现对增量镜像数据包的最大限度的压缩,以便于增量镜像数据包的高效部署,解决了现有技术在软件升级时,通过人工查找新旧版本的更新差异文件,并根据更新差异文件进行软件升级时存在的无法对接持续集成的自动化方案的问题,以及设备中即使存在的数据也要通过增量镜像数据包获取所导致的镜像包部署耗时较长的问题,能够对接持续集成的自动化方案,降低镜像包的部署耗时。

需要说明的是,以上各实施例中各技术特征之间的任意排列组合也属于本发明的保护范围。

实施例三

图4是本发明实施例三提供的一种增量镜像数据包的自动生成装置的示意图,如图4所示,所述装置包括:全量镜像数据包获取模块310、文件标识集合获取模块320、重复文件标识获取模块330以及增量镜像数据包生成模块340,其中:

全量镜像数据包获取模块310,用于获取与目标软件的新版本匹配的全量镜像数据包,其中,在全量镜像数据包中,按照预设的分层目录形式存储有多个分层文件;

文件标识集合获取模块320,用于对全量镜像数据包进行数据结构的解析,获取各分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合;

重复文件标识获取模块330,用于将各分层文件的文件标识与文件标识集合进行匹配,获取至少一个重复文件标识;

增量镜像数据包生成模块340,用于从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。

本实施例的技术方案,通过获取与目标软件的新版本匹配的,按照预设的分层目录形式存储有多个分层文件的全量镜像数据包,以对全量镜像数据包进行数据结构的解析,获取按各分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合。其中,各分层文件的文件标识以及文件标识集合的获取无需人工干预,均可自动提取。在得到各分层文件的文件标识和文件标识集合之后,将各分层文件的文件标识与文件标识集合进行匹配,获取至少一个重复文件标识,以进一步从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。由于与目标软件关联的文件标识集合可以包括目标软件的历史版本的文本标识集合之外的但与目标软件的历史版本关联的文件标识。因此与目标软件关联的文件标识集合相较于目标软件的历史版本的文本标识集合,数据量更大。利用目标软件关联的文件标识集合与各分层文件的文件标识进行匹配,可以获取数量较多的重复文本标识,使得从全量镜像数据包中,筛除的重复分层文件也就更多,进而实现对增量镜像数据包的最大限度的压缩,以便于增量镜像数据包的高效部署,解决了现有技术在软件升级时,通过人工查找新旧版本的更新差异文件,并根据更新差异文件进行软件升级时存在的无法对接持续集成的自动化方案的问题,以及设备中即使存在的数据也要通过增量镜像数据包获取所导致的镜像包部署耗时较长的问题,能够对接持续集成的自动化方案,降低镜像包的部署耗时。

可选的,文件标识集合获取模块320,具体用于:对全量镜像数据包进行数据结构的解析,获取所述全量镜像数据包中的目标镜像文件;获取所述目标镜像文件中差异标识集合中包括的各差异标识,作为各分层文件的文件标识。

可选的,文件标识集合获取模块320,具体用于:在目标设备本地缓存的历史数据中,获取与目标软件关联的本地缓存目录;在所述本地缓存目录下,获取与目标软件关联的文件标识集合。

可选的,文件标识集合获取模块320,具体用于:利用容器配置文件,或者容器数据查询指令获取所述本地缓存目录。

可选的,文件标识集合获取模块320,具体用于:对所述本地缓存目录进行数据结构的解析,获取与所述本地缓存目录对应的树形结构根目录;据所述文件标识对所述树形结构根目录进行遍历,得到与目标软件关联的文件标识集合。

可选的,增量镜像数据包生成模块340,具体用于:在镜像包描述文件中根据各重复文件标识定位所述重复分层文件在所述分层目录下的存储位置;根据所述重复分层文件在所述分层目录下的存储位置对所述重复分层文件进行删除。

可选的,全量镜像数据包获取模块310,具体用于:响应于目标设备对目标软件的软件升级请求,获取与目标软件的新版本匹配的全量镜像数据包。

可选的,增量镜像数据包的自动生成装置还包括本地部署模块,用于将所述增量镜像数据包发送至所述待部署设备,以指示所述待部署设备对所述增量镜像数据包进行本地部署。

上述增量镜像数据包的自动生成装置可执行本发明任意实施例所提供的增量镜像数据包的自动生成方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的增量镜像数据包的自动生成方法。

由于上述所介绍的增量镜像数据包的自动生成装置为可以执行本发明实施例中的增量镜像数据包的自动生成方法的装置,故而基于本发明实施例中所介绍的增量镜像数据包的自动生成方法,本领域所属技术人员能够了解本实施例的增量镜像数据包的自动生成装置的具体实施方式以及其各种变化形式,所以在此对于该增量镜像数据包的自动生成装置如何实现本发明实施例中的增量镜像数据包的自动生成方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中增量镜像数据包的自动生成方法所采用的装置,都属于本申请所欲保护的范围。

实施例四

图5为本发明实施例四提供的一种电子设备的结构示意图。图5示出了适于用来实现本发明实施方式的电子设备412的框图。图5显示的电子设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。电子设备412例如可以是计算机设备或服务器设备等。

如图5所示,电子设备412以通用计算设备的形式表现。电子设备412的组件可以包括但不限于:一个或者多个处理器416,存储装置428,连接不同系统组件(包括存储装置428和处理器416)的总线418。

总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。

电子设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储装置428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)430和/或高速缓存存储器432。电子设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储装置428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块426的程序436,可以存储在例如存储装置428中,这样的程序模块426包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块426通常执行本发明所描述的实施例中的功能和/或方法。

电子设备412也可以与一个或多个外部设备414(例如键盘、指向设备、摄像头、显示器424等)通信,还可与一个或者多个使得用户能与该电子设备412交互的设备通信,和/或与使得该电子设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口422进行。并且,电子设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与电子设备412的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of IndependentDisks,RAID)系统、磁带驱动器以及数据备份存储系统等。

处理器416通过运行存储在存储装置428中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的增量镜像数据包的自动生成方法:获取与目标软件的新版本匹配的全量镜像数据包,其中,在全量镜像数据包中,按照预设的分层目录形式存储有多个分层文件;对全量镜像数据包进行数据结构的解析,获取各分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合;将各分层文件的文件标识与文件标识集合进行匹配,获取至少一个重复文件标识;从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。

本实施例的技术方案,通过获取与目标软件的新版本匹配的,按照预设的分层目录形式存储有多个分层文件的全量镜像数据包,以对全量镜像数据包进行数据结构的解析,获取按各分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合。其中,各分层文件的文件标识以及文件标识集合的获取无需人工干预,均可自动提取。在得到各分层文件的文件标识和文件标识集合之后,将各分层文件的文件标识与文件标识集合进行匹配,获取至少一个重复文件标识,以进一步从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。由于与目标软件关联的文件标识集合可以包括目标软件的历史版本的文本标识集合之外的但与目标软件的历史版本关联的文件标识。因此与目标软件关联的文件标识集合相较于目标软件的历史版本的文本标识集合,数据量更大。利用目标软件关联的文件标识集合与各分层文件的文件标识进行匹配,可以获取数量较多的重复文本标识,使得从全量镜像数据包中,筛除的重复分层文件也就更多,进而实现对增量镜像数据包的最大限度的压缩,以便于增量镜像数据包的高效部署,解决了现有技术在软件升级时,通过人工查找新旧版本的更新差异文件,并根据更新差异文件进行软件升级时存在的无法对接持续集成的自动化方案的问题,以及设备中即使存在的数据也要通过增量镜像数据包获取所导致的镜像包部署耗时较长的问题,能够对接持续集成的自动化方案,降低镜像包的部署耗时。

实施例五

本发明实施例五还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的增量镜像数据包的自动生成方法:获取与目标软件的新版本匹配的全量镜像数据包,其中,在全量镜像数据包中,按照预设的分层目录形式存储有多个分层文件;对全量镜像数据包进行数据结构的解析,获取各分层文件的文件标识,并在目标设备本地缓存的历史数据中,获取与目标软件关联的文件标识集合;将各分层文件的文件标识与文件标识集合进行匹配,获取至少一个重复文件标识;从全量镜像数据包中,筛除与各重复文件标识对应的重复分层文件,形成与目标软件的新版本匹配的增量镜像数据包。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ReadOnly Memory,ROM)、可擦式可编程只读存储器((Erasable Programmable Read OnlyMemory,EPROM)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:项目处理方法、装置、电子设备及计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!