CN109756533A - 一种镜像加速方法、装置及服务器 - Google Patents

一种镜像加速方法、装置及服务器 Download PDF

Info

Publication number
CN109756533A
CN109756533A CN201711065976.7A CN201711065976A CN109756533A CN 109756533 A CN109756533 A CN 109756533A CN 201711065976 A CN201711065976 A CN 201711065976A CN 109756533 A CN109756533 A CN 109756533A
Authority
CN
China
Prior art keywords
mirror image
download address
prediction
constructing
download
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711065976.7A
Other languages
English (en)
Other versions
CN109756533B (zh
Inventor
谭林华
姜继忠
汤志敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201711065976.7A priority Critical patent/CN109756533B/zh
Publication of CN109756533A publication Critical patent/CN109756533A/zh
Application granted granted Critical
Publication of CN109756533B publication Critical patent/CN109756533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及互联网领域,公开了一种镜像加速方法、装置及服务器,以解决现有技术中构建镜像过程中下载构建镜像的相关文件的耗时较长的技术问题。该方法包括:获得用于构建镜像的描述文件,所述描述文件中包含构建所述镜像的相关文件的第一下载地址;确定出所述相关文件的第二下载地址,其中,构建所述相关文件在所述第二下载地址的预测下载速度高于在所述第一下载地址的预测下载速度;通过所述第二下载地址替换所述描述文件中的所述第一下载地址,所述第二下载地址被用于加快获取用于构建所述镜像的相关文件的下载速度。达到了降低下载镜像的相关文件的耗时的技术效果。

Description

一种镜像加速方法、装置及服务器
技术领域
本发明涉及互联网领域,尤其涉及一种镜像加速方法、装置及服务器。
背景技术
镜像构建是一种将应用和应用依赖的环境一同打包交付的一种方式。镜像构建的输入是一个描述文件和这个文件依赖的构建上下文目录。镜像构建的过程是,将构建的输入下载到一个执行环境(通常是一台物理机,虚拟机,或者容器),然后根据描述文件中的指令去执行构建过程,包括:下载基础镜像、下载需要安装的软件包、执行安装等等。
可见在镜像构建的过程中,往往需要下载安装一些相关文件,现有技术中往往是使用默认的软件源下载地址来下载这些相关文件,其存在下载耗时较长的技术问题。
发明内容
本发明提供及一种镜像加速方法、装置及电子设备,以解决现有技术中构建镜像过程中下载构建镜像的相关文件的耗时较长的技术问题。
第一方面,本发明提供一种镜像加速方法,包括:
获得用于构建镜像的描述文件,所述描述文件中包含构建所述镜像的相关文件的第一下载地址;
确定出所述相关文件的第二下载地址,其中,构建所述相关文件在所述第二下载地址的预测下载速度高于在所述第一下载地址的预测下载速度;
通过所述第二下载地址替换所述描述文件中的所述第一下载地址,所述第二下载地址被用于加快获取用于构建所述镜像的相关文件的下载速度。
第二方面,本发明提供一种镜像加速装置,包括:
第一下载地址获得单元,用于获得用于构建镜像的描述文件,所述描述文件中包含构建所述镜像的相关文件的第一下载地址;
第二下载地址确定单元,用于确定出所述相关文件的第二下载地址,其中,构建所述相关文件在所述第二下载地址的预测下载速度高于在所述第一下载地址的预测下载速度;
替换单元,用于通过所述第二下载地址替换所述描述文件中的所述第一下载地址,其中,所述第二下载地址被用于加快获取用于构建所述镜像的相关文件的下载速度。
第三方面,本发明提供一种服务器,包括:
第一处理器;
第一存储器,用于存储一种镜像构建方法的程序,所述程序在被所述第一处理器读取执行时,执行如任一项所述的镜像加速方法中的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如任一项所述的镜像加速方法中的步骤。
本发明有益效果如下:
由于在本发明实施例中,在构建镜像时,可以通过镜像的软件源的第二下载地址替换镜像的描述文件中该软件源中默认的第一下载地址,从而后续从而第二下载地址下载镜像的相关文件,而该相关文件从第二下载地址的预测下载速度高于其在第一下载地址的预测下载速度,故而达到了降低下载镜像的相关文件的耗时的技术效果。
附图说明
图1为本发明实施例第一方面的镜像加速方法的流程图;
图2为本发明实施例第二方面的镜像加速装置的结构图;
图3为本发明实施例第三方面的服务器的结构图。
具体实施方式
本发明提供及一种镜像构建方法、装置及服务器,以解决现有技术中构建镜像过程中下载构建镜像的相关文件的耗时较长的技术问题。
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
第一方面,本发明实施例提供一种镜像构建方法,请参考图1,包括:
步骤S101:获得用于构建镜像的描述文件,所述描述文件中包含构建所述镜像的相关文件的第一下载地址。
镜像(Mirroring)是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。镜像是一种文件存储形式,可以把许多文件做成一个镜像文件。
在具体实施过程中,基于镜像类别的不同,从而镜像的描述文件也不同,例如:如果镜像为Docker镜像,则其描述文件例如为:Dockerfile,如果镜像为rkt镜像,则其描述文件例如为:acsbuild(https://github.com/containers/build)工具触发的指令集合,当然,针对其他类别的镜像,其描述文件还可以其他文件,本发明实施例不作限制。构建镜像的相关文件例如包括:构建镜像的基础镜像、镜像的软件包等等。
在具体实施过程中,可以通过方式获得镜像的描述文件:接收用户产生的构建指令,所述构建指令包含所述描述文件的下载地址;响应所述构建指令,从所述下载地址获取所述描述文件。
以镜像为Docker镜像为例,可以先由用户通过docker client(镜像构建客户端)产生构建指令,该构建指令中可以包含Dockerfile的下载地址,进一步的,该构建指令中还可以包含构建上下文的下载地址;然后由docker client将构建指令发送至docker daemon(镜像构建服务器),由docker daemon响应该构建指令,从而基于Dockerfile的下载地址获得Dockerfile,进一步的,还可以基于构建上下文的下载地址获取构建上下文。
描述文件中可以包含基础镜像的下载地址、软件包的下载地址中的至少一种信息,其中基础镜像的下载地址或者软件包的下载地址作为所述第一下载地址。基础镜像例如包括:alpine(linux的发行版)、centos、ubuntu等等,软件包例如包括:Nginx、HAProxy等等。
以相关文件为alpine为例,其默认的软件包配置的位置是“/etc/apk/repositories”,其默认配置的下载地址(也即:第一下载地址)例如为:
http://dl-cdn.alpinelinux.org/alpine/v3.4/main
http://dl-cdn.alpinelinux.org/alpine/v3.4/community
在基于步骤S101获得用于构建镜像的描述文件之后,就可以执行步骤S102,也即:确定出所述相关文件的第二下载地址,其中,构建所述相关文件在所述第二下载地址的预测下载速度高于在所述第一下载地址的预测下载速度。
在具体实施过程中,可以通过多种方式确定出第二下载地址,下面列举其中的两种进行介绍,当然,在具体实施过程中,不限于以下两种情况。
第一种,所述确定出所述软件源的第二下载地址,包括:基于所述镜像的构建环境确定出所述第二下载地址。
举例来说,镜像的构建环境往往用于表征镜像的构建位置信息,其例如为:区域信息、国家信息等等。在通过构建环境确定出第二下载信息时,又可以采用多种方式,例如:
①获取所述镜像的相关文件的第一下载地址列表,所述第一下载地址列表中包含构建环境与下载地址的对应关系;基于所述构建环境,从所述第一下载地址列表匹配出所述第二下载地址。
在具体实施过程中,可以预先确定出所述镜像的相关文件的至少一个下载地址;针对用于构建镜像的至少一个构建环境中的每个构建环境,比较所述相关文件在所述至少一个下载地址中的每个下载地址的下载速度;获取下载速度满足预设条件的下载地址,作为所述相关文件在对应构建环境所对应的下载地址,从而建立所述第一下载地址列表,在这种情况下,针对每个相关文件都可以为其确定出第一下载地址列表。
在具体实施过程中,针对某个相关文件可能会存在至少一个下载地址,在不同的构建环境下,在这至少一个下载地址下载该相关文件的下载速度也不同,因此可以分别确定出在每个构建环境,从各个下载地址下载该相关文件的下载速度,然后获取下载速度满足预设条件的下载地址作为该相关文件在对应构建环境下的下载地址。例如:可以获取下载速度最快的下载地址作为该相关文件在对应构建环境下载地址、获取下载速度大于预设下载速度(例如:5MBps、6MBps等等)作为该相关文件在对应构建环境下的下载地址等等,其中,下载速度可以直接通过速度表示、也可以通过下载总时长表示,本发明实施例不作限制。其中,在确定出该相关文件在每个构建环境下的下载地址之后,就可以建立该相关文件的构建环境与下载地址的对应关系,从而获得第一下载地址列表。
假设,构建环境包括:构建环境A、构建环境B、构建环境C、构建环境D,则针对每个相关文件都可以确定出如表1所示的第一下载地址列表:
表1
在基于步骤S101确定出相关文件之后,可以基于相关文件的标识信息(例如:文件名、编号等等)匹配出其对应的第一下载地址列表,然后通过构建环境的标识信息在第一下载地址列表中匹配出对应的第二下载地址。以相关文件为构建镜像的基础镜像、镜像为Docker为例,则可以首先通过FORM指令从Dockerfile确定出基础镜像,例如为alpine(,然后根据构建环境获取alpine的第二下载地址,例如:如果构建环境位于阿里云计算平台(也即:构建环境A)上面,则可以确定第二下载地址为表1中的下载地址1。
②确定出在所述镜像的构建环境下每个相关文件的第二下载地址列表;基于所述镜像的相关文件在所述第二下载地址列表中匹配,从而确定出所述第二下载地址。
举例来说,也就是可以先确定出镜像的构建环境,然后确定出该构建环境下各个相关文件的下载地址信息(也即:第二下载地址列表),从而最终通过目前构建的镜像的相关文件的标识信息在该第二下载地址列表中匹配出第二下载地址。
假设,相关文件包括:alpine、centos、ubuntu,则针对每个构建环境可以分别确定出如表2所示的第二下载地址列表:
表2
软件包 下载地址
alpine 下载地址1
centos 下载地址5
从而,在确定出构建环境之后,通过构建环境匹配出其对应的第二下载地址列表,然后通过相关文件的标识信息(例如:alpine)在第二下载地址列表中进行匹配,从而获得对应的第二下载地址(也即下载地址1),第二下载地址例如为:http://mirrors.aliyun.com/alpine/v3.4/main
http://mirrors.aliyun.com/alpine/v3.4/community
由于在上述方案中,针对镜像所处的构建环境不同,从而其第二下载地址也不同,因此达到了可以基于构建环境选择较佳的第二下载地址获取相关文件的技术效果,由此达到了进一步的提高镜像构建的速率的技术效果。
第二种,所述确定出所述软件源的第二下载地址,包括:预先针对每个相关文件,确定出其所对应的至少一个下载地址;针对每个下载地址确定出相关文件在各个构建环境下的下载速度,然后对各个构建环境下的下载速度取平均值,进而确定出至少一个下载地址中每个下载地址的下载速度的平均值,最后确定出下载速度的平均值最高的下载地址作为相关软件的第二下载地址。
例如:针对alpine,其存在四个下载地址,分别为下载地址1、下载地址2、下载地址3、下载地址4,这是个下载地址在各个构建环境下下载alpine的平均下载速度分别为:10MBps、12MBps、5MBps、6MBps,则由于下载地址2所对应的下载速度最快(也即:12MBps),故而可以将下载地址2作为alpine的第二下载地址。基于该方案,针对一个相关文件只存在第二下载地址,故而能够降低设备的存储负担,则能够提高确定出第二下载地址的速度。
步骤S103:通过所述第二下载地址替换所述描述文件中的所述第一下载地址,所述第二下载地址被用于加快获取用于构建所述镜像的相关文件的下载速度。
举例来说,假设相关文件为alpine,所对应的第一下载地址位于国外,不在国内,当镜像的构建发生在构建环境A(也即:国内阿里云的计算平台)时,构建镜像时,镜像内软件的下载速度和网络的稳定性都会受到影响,因此可以将该第一下载地址修改为下载速度更快的第二下载地址。
还是以相关文件为alpine为例,则可以将文件“/etc/apk/repositories”修改为如下内容:
http://mirrors.aliyun.com/alpine/v3.4/main
http://mirrors.aliyun.com/alpine/v3.4/community
在基于步骤S103:通过所述第二下载地址替换所述描述文件中的所述第一下载地址之后,就可以在构建所述镜像时,通过所述第二下载地址加快获取用于构建所述镜像的相关文件。
在获得用于构建镜像的相关文件之后,就可以通过构建上下文、相关文件(例如:基础镜像、软件包等等)实现对镜像的构建。
作为一种可选的实施例,所述方法还包括:
获得用于构建镜像的描述文件,所述描述文件中包含用于构建所述镜像的构建指令;判断所述构建指令中是否包含同类指令;如果存在同类指令,合并所述同类指令。同类指令是指指令名称相同但是指令对象不同的两个或以上数量的指令。例如下面例子中的多个RUN指令就是同类指令。
举例来说,假设构建指令如下:
其中,包含多个同类型的run指令(上面的行3-6),现有技术中往往是分条执行该run指令,从而需要执行4次,然而执行一条描述文件(例如:Dockerfile)里面的指令,镜像就根据改指令导致的对镜像的修改,记录修改的信息,并且把这一修改作为镜像现有层基础上更新的一层。构建指令越多,镜像层次数越多,镜像构建速度缓慢,镜像的存储空间也会变大,故而为了加快镜像的构建速度,提高镜像的存储空间,可以将多条指令合并之后执行。
可选的,所述合并所述同类指令,包括:针对所述同类指令,采用预设连接符拼接所述同类指令。
将上述Dockerfile中的RUN命令合并为一个RUN命令,变成下述内容:
通过多条连接符,可以将多条run指令合并为一条run指令,以上面的代码为例,则是通过连接符&&将3-6行所对应的四条run指令合并为一条run指令,当然,也可以其他连接符,本申请实施例不作限制。当然,以上将多条指令合并的方式仅仅作为一个举例,并不作为限制。
在一个优选方式中,上述镜像加速方法进一步包括如下步骤:
(1)在镜像的构建过程中,计算所述镜像的资源在多个构建环境下分别的预测下载总时长;
(2)确定出所述预测下载总时长满足预设条件的第一构建环境;
(3)将所述镜像调度至所述构建环境进行构建。
举例来说,用于构建的镜像例如为:Docker镜像、rkt镜像等等。镜像的资源例如包括:构建上下文、基础镜像、软件包中的至少一种资源。
在具体实施过程中,可以通过以下方式确定出在每个构建环境下所述镜像的资源的预测下载总时长。即步骤1包括如下步骤1.1-1.3:
(1.1):获得预先建立的匹配关系表,所述匹配关系表中包含镜像的构建环境与资源的预测参数的对应关系,所述预测参数用于确定对应资源的预测下载时长;
(1.2):通过所述第一镜像所对应的标识信息在所述对应关系表中匹配,获得匹配结果;
(1.3):基于所述匹配结果确定出所述第一镜像的预测下载总时长。
步骤1.1中,资源的预测参数可以包括多种参数,其例如为:①资源的预测下载速度;②资源的预测下载时长。在具体实施过程中,可以通过以下步骤确定出资源的预测参数:在初始阶段,在每个构建环境下分别下载每类资源,从而确定出每个构建环境下每类资源的所述预测参数;基于每个构建环境下每类资源的所述预测参数,确定所述对应关系表。
以预测参数为资源的预测下载速度为例,假设资源包括:构建输入、基础镜像和软件包,构建环境包括:构建环境A(部署在中国杭州)、构建环境B(部署在美国东部),则可以在这两个构建环境下分别下载各个资源,从而确定出各个资源在每个构建环境下的预测下载速度。
1)针对构建输入
针对来源于不同源代码仓库的构建输入,其预测下载速度不同,因此可以建立构建输入的来源与构建环境的对应关系,构建输入可以来自github,或者阿里云code源代码仓库,可以在不同的构建环境下分别测试下载来源于不同的源代码仓库的构建输入,并获得下载速度(下载速度可通过多种工具测试获得,例如iperf等),该下载速度即为预测下载速度,进而建立如表1所示的对应关系表:
表3
Github 阿里云Code
构建环境A 1MBps 10MBps
构建环境B 10MBps 1Mbps
当然,在具体实施过程中,也可以分别建立每个构建输入与构建环境的对应关系,本发明实施例不作限制。
2)针对基础镜像
在具体实施过程中,可以针对各个基础镜像采集获得其在不同的构建环境下的下载速度(也即:预测下载速度),从而建立构建环境与基础镜像的预测下载速度的对应关系表,假设存在两个基础镜像,分别为:centos:7和ubuntu:latest,则可以建立如表2所示的对应关系表:
表4
3)针对软件包
在具体实施过程中,可以针对各个软件包采集获得其在不同的构建环境下的下载速度(也即:预测下载速度),从而建立软件包与基础镜像的预测下载速度的对应关系表,假设存在两个软件包,分别为:Nginx和HAProxy,则可以建立如表3所示的对应关系表:
表5
Nginx(20MB) HAProxy(15MB)
构建环境A 4MBps 4MBps
构建环境B 5MBps 5MBps
其中,在获得各个资源的预测下载速度之后,可以直接将其作为对应的资源的预测参数,也可以通过各个资源的大小除以对应的预测下载速度,从而获得预测下载时长,进而将预测下载时长作为其预测参数,例如:针对软件包Nginx,其大小为20MB,其在构建环境A下的预测下载速度为4MBps,则可以确定出其预测下载时长为20MB/4MBps=5s,从而可以将4MBps作为软件包Nginx在构建环境A下的预测参数,也可以将5s作为软件包Nginx在构建环境A下的预测参数,针对其他资源,确定出预测参数的方式类似,本发明实施例不再详细介绍。
另外,在具体实施过程中,在确定出预测参数之后,可以直接将各个资源的预测参数与构建环境进行对应,从而获得该匹配关系表,例如:表3、表4、表5中是获得的预测下载速度与构建环境的匹配关系表,也可以通过预测下载速度获得预测下载时长,从而获得预测下载时长与构建环境之间的匹配关系表。
作为一种可选的实施例,在确定出各个资源的预测下载时长之后,可以确定出一些常用镜像,然后针对这些镜像分别确定出其所包含的各个资源的预测下载时长,并对其进行加和,从而获得该镜像的预测下载总时长,从而建立预测下载总时长与构建环境的对应关系。
步骤1.2中,基于对应关系表中所包含的内容不同,所采用的第一镜像的标识信息也不同,例如:如果对应关系表中包含各个资源的预测参数与构建环境的对应关系,则所述通过所述第一镜像所对应的标识信息在所述对应关系表中匹配,获得匹配结果,获得匹配结果,包括:通过所述第一镜像的每类资源的标识信息在所述对应关系表中匹配,从而确定出在每个构建环境下每类资源的所述预测参数,所述第一镜像的每类资源的所述预测参数即为所述匹配结果。
举例来说,可以获得构建输入的描述文件(例如:Dockerfile)和整个构建输入的大小,另外,构建输入需要指定源代码仓库,假设构建输入的大小为40MB,构建的Dockerfile如下:
分析程序根据Dockerfile的指令和常用的shell命令,则可以分析得出基础镜像和软件包,例如:假设分析得出Dockerfile的基础镜像是ubuntu:latest,要下载安装的软件是nginx,由此,可以基于这些资源的标识信息(例如:名称)在对应关系表中匹配出对应的预测参数。
在这种情况下,步骤1.3中,如果第一镜像包含至少两类资源,则所述基于所述匹配结果确定出所述第一镜像的预测下载总时长,包括:基于所述预测参数确定出所述第一镜像在每个构建环境下的所述至少两类资源的预测下载时长;对所述第一镜像在每个构建环境下的所述至少两类资源的预测下载时长进行综合,从而确定出所述第一镜像的所述预测下载总时长。
其中,如果步骤1.2中,所匹配出的预测参数为预测下载时长,则直接将第一镜像所对应的各个资源的预测下载时长进行加和,从而获得预测下载总时长,而如果步骤1.2中所匹配出的预测参数为预测下载速度,则可以分别基于该预测下载速度计算出对应资源的预测下载时长,然后对第一镜像的各个资源的预测下载时长进行加和,从而获得预测下载总时长,例如:
①如果源代码仓库部署在GitHub
针对构建环境A
资源需要的下载时间包括:
构建输入的预测下载时长为:40MB/1MBps=40s
基础镜像的预测下载时长为:127.2MB/4MBps=31.8s
nginx软件包的预测下载时长为:20MB/4MBps=5s
预测下载总时长为40+31.8+5=76.8s
针对构建环境B
资源的预测下载时长包括:
构建输入的预测下载时长为:40MB/10MBps=4s
基础镜像的预测下载时长为:127.2MB/8MBps=15.9s
nginx软件包的预测下载时长为:20MB/5MBps=4s
预测下载总时长为:4+15.9+4=23.9s
②如果源代码仓库部署在阿里云Code:
针对构建环境A
资源的预测下载时长包括:
构建输入的预测下载时长为:40MB/10MBps=4s
基础镜像的预测下载时长为:127.2MB/4MBps=31.8s
nginx软件包的预测下载时长为:20MB/4MBps=5s
预测下载总时长为:4+31.8+5=40.8s
针对构建环境B
资源的预测下载时长包括:
构建输入的预测下载时长为:40MB/1MBps=40s
基础镜像的预测下载时长为:127.2MB/8MBps=15.9s
nginx软件包的预测下载时长为:20MB/5MBps=4s
预测下载总时长为:40+15.9+4=59.9s
可见,如果第一镜像的构建输入的源代码仓库部署在GitHub,则其在构建环境A的预测下载总时长为:76.8s,其在构建环境B下的预测下载总时长为23.9s,如果第一镜像的构建输入的源代码仓库部署在阿里云Code,则其在构建环境A的预测下载总时长为40.8s,其在构建环境B的预测下载总时长为59.9s。
而如果对应关系表中包含镜像的资源的预测下载总时长与构建环境的对应关系,则步骤1.2中,则可以通过第一镜像的标识信息在对应关系表中进行匹配,获得对应预测下载总时长,该预测下载总时长即为预测参数,从而步骤1.3中,直接将该匹配结果作为第一镜像的预测下载总时长。通过该方案能够提高所获得预测下载总时长的速率。
在基于步骤1确定出第一镜像的资源在每个构建环境下的预测下载总时长之后,就可以执行步骤2,也即:确定出所述预测下载总时长满足预设条件的第一构建环境;
在具体实施过程中,可以通过多种方式确定出第一构建环境,例如:①确定出基于所述预测下载总时长从高到低排序之后,排序位于前预设位的构建环境为所述第一构建环境,前预设位例如为:前1位、2位等等,以前1为例,假设第一镜像在构建环境A下的预测下载总时长76.8s,在构建环境B下的预测下载总时长为23.9s,则可以确定出第一构建环境为构建环境B,②确定出所述预测下载总时长小于预设时长的构建环境作为所述第一构建环境。该预设时长例如为:30s、40s等等,本发明实施例不作限制。
在基于步骤2确定出第一构建环境之后,则可以执行步骤3,也即:将所述第一镜像调度至所述第一构建环境进行构建。
也就是,通过第一构建环境(例如:构建环境B)下载构建镜像的各个资源(例如:构建输入、基础镜像、软件包等等),然后通过这些资源完成对镜像的构建,由于通过构建环境B下载资源比通过构建环境A下载资源的预测下载总时长少52.9s,故而通过构建环境B构建第一镜像比相对于构建环境A构建第一镜像的用时要少52.9s。
可见,在上述可选的方法中,在第一镜像的构建过程中,会确定出所述第一镜像的资源在每个构建环境下的预测下载总时长,并确定出预测下载总时长满足预设条件的第一构建环境,并将第一镜像调度至第一构建环境进行构建,也就是在构建镜像的过程中,会考虑到各个构建环境下的资源的下载速度,从而选择出合适的构建环境,从而达到了提高下载镜像构建所需的资源的下载速度的技术效果,由此提高了镜像构建的速率。
第二方面,基于同一发明构思,本发明实施例提供一种镜像加速装置,请参考图2,包括:
第一下载地址获得单元201,用于获得用于构建镜像的描述文件,所述描述文件中包含构建所述镜像的相关文件的第一下载地址;
第二下载地址确定单元202,用于确定出所述相关文件的第二下载地址,其中,构建所述相关文件在所述第二下载地址的预测下载速度高于在所述第一下载地址的预测下载速度;
替换单元203,用于通过所述第二下载地址替换所述描述文件中的所述第一下载地址,其中,所述第二下载地址被用于加快获取用于构建所述镜像的相关文件的下载速度。
在一种可选方式中,所述第二下载地址确定单元202,包括:
获取子单元,用于获取所述镜像的相关文件的第一下载地址列表,所述第一下载地址列表中包含构建环境与下载地址的对应关系;
匹配子单元,用于基于所述构建环境,从所述第一下载地址列表匹配出所述第二下载地址。
在一种可选方式中,所述装置还包括:
相关下载地址确定单元,用于预先确定出所述镜像的相关文件的至少一个下载地址;
比较单元,用于针对用于构建镜像的至少一个构建环境中的每个构建环境,比较所述相关文件在所述至少一个下载地址中的每个下载地址的下载速度;
获取单元,用于获取下载速度满足预设条件的下载地址,作为所述相关文件在对应构建环境所对应的下载地址,从而建立所述第一下载地址列表。
在一种可选方式中,所述第二下载地址确定单元202包括:
相关第二地址确定子单元,用于确定出在所述镜像的构建环境下每个相关文件的第二下载地址列表;
第二地址匹配子单元,用于基于所述镜像的相关文件在所述第二下载地址列表中匹配,从而确定出所述第二下载地址。
在一种可选方式中,还包括:
下载总时长预测单元,用于在第一镜像的构建过程中,确定出所述第一镜像的资源在每个构建环境下的预测下载总时长;
第一构建环境确定单元,用于确定出所述预测下载总时长满足预设条件的第一构建环境;
调度单元,用于将所述第一镜像调度至所述第一构建环境进行构建。
在一种可选方式中,所述下载总时长预测单元,包括:
关系表建立子单元,用于获得预先建立的匹配关系表,所述匹配关系表中包含镜像的构建环境与资源的预测参数的对应关系,所述预测参数用于确定对应资源的预测下载时长;
匹配子单元,用于通过所述第一镜像所对应的标识信息在所述对应关系表中匹配,获得匹配结果;
总时长确定子单元,用于基于所述匹配结果确定出所述第一镜像的预测下载总时长。
在一种可选方式中,所述装置还包括:
预测参数确定单元,用于在初始阶段,在每个构建环境下分别下载每类资源,从而确定出每个构建环境下每类资源的所述预测参数;
对应关系表确定单元,用于基于每个构建环境下每类资源的所述预测参数,确定所述对应关系表。
在一种可选方式中,所述对应关系表确定单元包括:
各镜像资源确定子单元,用于确定出每个镜像所包含的至少两类资源;
各资源总时长确定子单元,用于基于每个构建环境下每个资源的预测参数,确定出在各个构建环境下每个镜像所包含的至少两类资源的预测下载总时长;
建立子单元,用于建立每个构建环境下各个镜像的资源与预测下载总时长的对应关系,从而获得所述对应关系表。
第三方面,基于同一发明构思,本发明实施例提供一种服务器,请参考图3,包括:
处理器30;
存储器31,用于存储一种镜像构建方法的程序,所述程序在被所述第一处理器30读取执行时,执行如上镜像加速方法的步骤。
第四方面,基于同一发明构思,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,执行如上镜像加速方法的步骤。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (26)

1.一种镜像加速方法,其特征在于,包括:
获得用于构建镜像的描述文件,所述描述文件中包含构建所述镜像的相关文件的第一下载地址;
确定出所述相关文件的第二下载地址,其中,构建所述相关文件在所述第二下载地址的预测下载速度高于在所述第一下载地址的预测下载速度;
通过所述第二下载地址替换所述描述文件中的所述第一下载地址,所述第二下载地址被用于加快获取用于构建所述镜像的相关文件的下载速度。
2.如权利要求1所述的方法,其特征在于,所述确定出所述相关文件的第二下载地址,包括:
基于所述镜像的构建环境确定出所述第二下载地址。
3.如权利要求2所述的方法,其特征在于,所述基于所述镜像的构建环境确定出所述第二下载地址,包括:
获取所述镜像的相关文件的第一下载地址列表,所述第一下载地址列表中包含构建环境与下载地址的对应关系;
基于所述构建环境,从所述第一下载地址列表匹配出所述第二下载地址。
4.如权利要求3所述的方法,其特征在于,所述第一下载地址列表通过以下方式确定:
预先确定出所述镜像的相关文件的至少一个下载地址;
针对用于构建镜像的至少一个构建环境中的每个构建环境,比较所述相关文件在所述至少一个下载地址中的每个下载地址的下载速度;
获取下载速度满足预设条件的下载地址,作为所述相关文件在对应构建环境所对应的下载地址,从而建立所述第一下载地址列表。
5.如权利要求2所述的方法,其特征在于,所述基于所述镜像的构建环境确定出所述第二下载地址,包括:
确定出在所述镜像的构建环境下每个相关文件的第二下载地址列表;
基于所述镜像的相关文件在所述第二下载地址列表中匹配,从而确定出所述第二下载地址。
6.如权利要求1所述的方法,其特征在于,所述获得用于构建镜像的描述文件,包括:
接收用户产生的构建指令,所述构建指令包含所述描述文件的下载地址;
响应所述构建指令,从所述下载地址获取所述描述文件。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
获得用于构建镜像的描述文件,所述描述文件中包含用于构建所述镜像的构建指令;
判断所述构建指令中是否包含同类指令;
如果存在同类指令,合并所述同类指令。
8.如权利要求7所述的方法,其特征在于,所述合并所述同类指令,包括:
针对所述同类指令,采用预设连接符拼接所述同类指令。
9.如权利要求1-8任一项所述的方法,其特征在于,还包括:
在镜像的构建过程中,计算所述镜像的资源在多个构建环境下分别的预测下载总时长;
确定出所述预测下载总时长满足预设条件的第一构建环境;
将所述镜像调度至所述构建环境进行构建。
10.如权利要求9所述的方法,其特征在于,所述确定出所述预测下载总时长满足预设条件的第一构建环境,包括:
确定出基于所述预测下载总时长从高到低排序之后,排序位于前预设位的构建环境为所述第一构建环境;或者,
确定出所述预测下载总时长小于预设时长的构建环境作为所述第一构建环境。
11.如权利要求9所述的方法,其特征在于,所述确定出在每个构建环境下所述镜像的资源的预测下载总时长,包括:
获得预先建立的匹配关系表,所述匹配关系表中包含镜像的构建环境与资源的预测参数的对应关系,所述预测参数用于确定对应资源的预测下载时长;
通过所述第一镜像所对应的标识信息在所述对应关系表中匹配,获得匹配结果;
基于所述匹配结果确定出所述第一镜像的预测下载总时长。
12.如权利要求11所述的方法,其特征在于,所述镜像包含至少两类资源,所述对应关系表中包含镜像的构建环境与每类资源的预测下载时长的对应关系,所述通过所述镜像所对应的标识信息在所述对应关系表中匹配,获得匹配结果,获得匹配结果,包括:
通过所述镜像的每类资源的标识信息在所述对应关系表中匹配,从而确定出在每个构建环境下每类资源的所述预测参数,所述镜像的每类资源的所述预测参数即为所述匹配结果;
所述基于所述匹配结果确定出所述镜像的预测下载总时长,包括:
基于所述预测参数确定出所述镜像在每个构建环境下的所述至少两类资源的预测下载时长;
对所述镜像在每个构建环境下的所述至少两类资源的预测下载时长进行综合,从而确定出所述镜像的所述预测下载总时长。
13.如权利要求12所述的方法,其特征在于,所述至少两类资源包括:构建输入、基础镜像和软件包中的至少两类资源。
14.如权利要求11所述的方法,其特征在于,所述镜像包含至少两类资源,所述对应关系表中包含镜像的构建环境与所述至少两类资源的预测下载总时长的对应关系,所述预测总时长即为所述预测参数,所述通过所述镜像所对应的标识信息在所述对应关系表中匹配,获得匹配结果,包括:
通过所述镜像的标识信息在所述对应关系表中匹配,从而确定出在每个构建环境下所述至少两类资源的预测下载总时长,所述至少两类资源的预测下载总时长即为所述匹配结果。
15.如权利要求11所述的方法,其特征在于,所述对应关系表通过以下方式确定:
在初始阶段,在每个构建环境下分别下载每类资源,从而确定出每个构建环境下每类资源的所述预测参数;
基于每个构建环境下每类资源的所述预测参数,确定所述对应关系表。
16.如权利要求15所述的方法,其特征在于,所述基于每个构建环境下每类资源的所述预测参数,确定所述对应关系表,包括:
确定出每个镜像所包含的至少两类资源;
基于每个构建环境下每个资源的预测参数,确定出在各个构建环境下每个镜像所包含的至少两类资源的预测下载总时长;
建立每个构建环境下各个镜像的资源与预测下载总时长的对应关系,从而获得所述对应关系表。
17.一种镜像加速装置,其特征在于,包括:
第一下载地址获得单元,用于获得用于构建镜像的描述文件,所述描述文件中包含构建所述镜像的相关文件的第一下载地址;
第二下载地址确定单元,用于确定出所述相关文件的第二下载地址,其中,构建所述相关文件在所述第二下载地址的预测下载速度高于在所述第一下载地址的预测下载速度;
替换单元,用于通过所述第二下载地址替换所述描述文件中的所述第一下载地址,其中,所述第二下载地址被用于加快获取用于构建所述镜像的相关文件的下载速度。
18.如权利要求17所述的装置,其特征在于,所述第二下载地址确定单元,包括:
获取子单元,用于获取所述镜像的相关文件的第一下载地址列表,所述第一下载地址列表中包含构建环境与下载地址的对应关系;
匹配子单元,用于基于所述构建环境,从所述第一下载地址列表匹配出所述第二下载地址。
19.如权利要求17所述的装置,其特征在于,所述装置还包括:
相关下载地址确定单元,用于预先确定出所述镜像的相关文件的至少一个下载地址;
比较单元,用于针对用于构建镜像的至少一个构建环境中的每个构建环境,比较所述相关文件在所述至少一个下载地址中的每个下载地址的下载速度;
获取单元,用于获取下载速度满足预设条件的下载地址,作为所述相关文件在对应构建环境所对应的下载地址,从而建立所述第一下载地址列表。
20.如权利要求17所述的装置,其特征在于,所述第二下载地址确定单元,包括:
相关第二地址确定子单元,用于确定出在所述镜像的构建环境下每个相关文件的第二下载地址列表;
第二地址匹配子单元,用于基于所述镜像的相关文件在所述第二下载地址列表中匹配,从而确定出所述第二下载地址。
21.如权利要求17-20任一项所述的装置,其特征在于,还包括:
下载总时长预测单元,用于在第一镜像的构建过程中,确定出所述第一镜像的资源在每个构建环境下的预测下载总时长;
第一构建环境确定单元,用于确定出所述预测下载总时长满足预设条件的第一构建环境;
调度单元,用于将所述第一镜像调度至所述第一构建环境进行构建。
22.如权利要求21所述的装置,其特征在于,所述下载总时长预测单元,包括:
关系表建立子单元,用于获得预先建立的匹配关系表,所述匹配关系表中包含镜像的构建环境与资源的预测参数的对应关系,所述预测参数用于确定对应资源的预测下载时长;
匹配子单元,用于通过所述第一镜像所对应的标识信息在所述对应关系表中匹配,获得匹配结果;
总时长确定子单元,用于基于所述匹配结果确定出所述第一镜像的预测下载总时长。
23.如权利要求21所述的装置,其特征在于,所述装置还包括:
预测参数确定单元,用于在初始阶段,在每个构建环境下分别下载每类资源,从而确定出每个构建环境下每类资源的所述预测参数;
对应关系表确定单元,用于基于每个构建环境下每类资源的所述预测参数,确定所述对应关系表。
24.如权利要求23所述的装置,其特征在于,所述对应关系表确定单元包括:
各镜像资源确定子单元,用于确定出每个镜像所包含的至少两类资源;
各资源总时长确定子单元,用于基于每个构建环境下每个资源的预测参数,确定出在各个构建环境下每个镜像所包含的至少两类资源的预测下载总时长;
建立子单元,用于建立每个构建环境下各个镜像的资源与预测下载总时长的对应关系,从而获得所述对应关系表。
25.一种服务器,其特征在于,包括:
第一处理器;
第一存储器,用于存储一种镜像构建方法的程序,所述程序在被所述第一处理器读取执行时,执行如权利要求1-16任一项所述的镜像加速方法中的步骤。
26.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-16任一项所述的镜像加速方法中的步骤。
CN201711065976.7A 2017-11-02 2017-11-02 一种镜像加速方法、装置及服务器 Active CN109756533B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711065976.7A CN109756533B (zh) 2017-11-02 2017-11-02 一种镜像加速方法、装置及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711065976.7A CN109756533B (zh) 2017-11-02 2017-11-02 一种镜像加速方法、装置及服务器

Publications (2)

Publication Number Publication Date
CN109756533A true CN109756533A (zh) 2019-05-14
CN109756533B CN109756533B (zh) 2021-11-30

Family

ID=66398375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711065976.7A Active CN109756533B (zh) 2017-11-02 2017-11-02 一种镜像加速方法、装置及服务器

Country Status (1)

Country Link
CN (1) CN109756533B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287004A (zh) * 2019-07-05 2019-09-27 中国工商银行股份有限公司 基于docker容器技术的基础环境镜像预热方法及装置
CN110430442A (zh) * 2019-08-08 2019-11-08 赛尔网络有限公司 播放方法、装置及系统
CN112612489A (zh) * 2020-12-16 2021-04-06 北京梆梆安全科技有限公司 软件的升级包构建方法、装置和电子设备
CN112671892A (zh) * 2020-12-22 2021-04-16 北京百度网讯科技有限公司 数据传输方法、装置、电子设备、介质和计算机程序产品

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130325932A1 (en) * 2012-06-05 2013-12-05 Hon Hai Precision Industry Co., Ltd. Electronic device and method for storing distributed documents
CN104092722A (zh) * 2014-03-26 2014-10-08 腾讯科技(深圳)有限公司 网络文件的下载方法及装置
CN104581818A (zh) * 2014-12-30 2015-04-29 中国科学院深圳先进技术研究院 一种基于移动终端的流量交换方法和系统
US20160173567A1 (en) * 2014-12-10 2016-06-16 Guangzhou Ucweb Computer Technology Co., Ltd. Method and apparatus for resource downloading over a network from multiple sources
CN105897844A (zh) * 2015-12-15 2016-08-24 乐视网信息技术(北京)股份有限公司 一种用于助于文件成功下载的设备及方法
CN106101289A (zh) * 2016-08-24 2016-11-09 珠海市魅族科技有限公司 一种文件下载方法、终端、服务器及系统
CN106131113A (zh) * 2016-06-14 2016-11-16 武汉深之度科技有限公司 一种资源下载方法、装置、系统以及资源服务器
CN106506587A (zh) * 2016-09-23 2017-03-15 中国人民解放军国防科学技术大学 一种基于分布式存储的Docker镜像下载方法
CN106936636A (zh) * 2017-03-15 2017-07-07 无锡华云数据技术服务有限公司 一种快速部署容器化的云计算测试平台的实现方法
CN107222515A (zh) * 2016-03-22 2017-09-29 阿里巴巴集团控股有限公司 蜜罐部署方法、装置及云端服务器

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130325932A1 (en) * 2012-06-05 2013-12-05 Hon Hai Precision Industry Co., Ltd. Electronic device and method for storing distributed documents
CN104092722A (zh) * 2014-03-26 2014-10-08 腾讯科技(深圳)有限公司 网络文件的下载方法及装置
US20160173567A1 (en) * 2014-12-10 2016-06-16 Guangzhou Ucweb Computer Technology Co., Ltd. Method and apparatus for resource downloading over a network from multiple sources
CN104581818A (zh) * 2014-12-30 2015-04-29 中国科学院深圳先进技术研究院 一种基于移动终端的流量交换方法和系统
CN105897844A (zh) * 2015-12-15 2016-08-24 乐视网信息技术(北京)股份有限公司 一种用于助于文件成功下载的设备及方法
CN107222515A (zh) * 2016-03-22 2017-09-29 阿里巴巴集团控股有限公司 蜜罐部署方法、装置及云端服务器
CN106131113A (zh) * 2016-06-14 2016-11-16 武汉深之度科技有限公司 一种资源下载方法、装置、系统以及资源服务器
CN106101289A (zh) * 2016-08-24 2016-11-09 珠海市魅族科技有限公司 一种文件下载方法、终端、服务器及系统
CN106506587A (zh) * 2016-09-23 2017-03-15 中国人民解放军国防科学技术大学 一种基于分布式存储的Docker镜像下载方法
CN106936636A (zh) * 2017-03-15 2017-07-07 无锡华云数据技术服务有限公司 一种快速部署容器化的云计算测试平台的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
曹宁: ""HDFS下载效率的优化"", 《计算机应用》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287004A (zh) * 2019-07-05 2019-09-27 中国工商银行股份有限公司 基于docker容器技术的基础环境镜像预热方法及装置
CN110287004B (zh) * 2019-07-05 2021-07-30 中国工商银行股份有限公司 基于docker容器技术的基础环境镜像预热方法及装置
CN110430442A (zh) * 2019-08-08 2019-11-08 赛尔网络有限公司 播放方法、装置及系统
CN112612489A (zh) * 2020-12-16 2021-04-06 北京梆梆安全科技有限公司 软件的升级包构建方法、装置和电子设备
CN112612489B (zh) * 2020-12-16 2024-03-12 北京梆梆安全科技有限公司 软件的升级包构建方法、装置和电子设备
CN112671892A (zh) * 2020-12-22 2021-04-16 北京百度网讯科技有限公司 数据传输方法、装置、电子设备、介质和计算机程序产品

Also Published As

Publication number Publication date
CN109756533B (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
CN104185840B (zh) 在持续部署流水线中用来优先化多个测试的方法、系统和装置
CN109756533A (zh) 一种镜像加速方法、装置及服务器
CN107450941B (zh) 自动打包方法、装置、存储介质和计算机设备
US10810176B2 (en) Unsolicited bulk email detection using URL tree hashes
CN103106069A (zh) 识别捆绑软件产品组件的方法和系统
CN104461567B (zh) 软件包的发布方法及系统
CN110532059B (zh) K8s集群管理软件的配额管理方法及装置
CN103631628B (zh) 软件清理方法和系统
CN106201861A (zh) 一种代码质量的检测方法及装置
CN106294094A (zh) 游戏服务器的测试方法、客户端、服务器及系统
CN107122295B (zh) 测试用例脚本的生成方法和装置
US20160253172A1 (en) Indicating a trait of a continuous delivery pipeline
CN112087379A (zh) 业务链的编排方法及装置、存储介质和电子装置
CN105183908B (zh) 一种兴趣点poi数据的分类方法和装置
KR20190031030A (ko) 바이너리 파일에 기초하여 오픈소스 소프트웨어 패키지를 식별하는 방법 및 시스템
CN106980571A (zh) 一种测试用例集的构建方法和设备
CN109690571A (zh) 基于学习的组标记系统和方法
CN103414758B (zh) 日志处理方法及装置
CN106445548A (zh) 一种测试包下发方法和装置
CN109840732A (zh) 自由选配条件下整车可配置物料清单完整性的校验系统
CN110221933A (zh) 代码缺陷辅助修复方法及系统
CN110780912A (zh) 利用分段支持的分层生成树软件补丁
CN110297776A (zh) 检测报告生成、接收方法、装置、设备及存储介质
CN106294345A (zh) 应用程序的日志内容的处理方法和装置
US9740601B2 (en) Globalization testing management service configuration

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230613

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Aliyun Computing Co.,Ltd.

Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK

Patentee before: ALIBABA GROUP HOLDING Ltd.

TR01 Transfer of patent right