CN112256282A - 一种应用镜像的构建方法、装置、电子设备及存储介质 - Google Patents
一种应用镜像的构建方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112256282A CN112256282A CN202011013835.2A CN202011013835A CN112256282A CN 112256282 A CN112256282 A CN 112256282A CN 202011013835 A CN202011013835 A CN 202011013835A CN 112256282 A CN112256282 A CN 112256282A
- Authority
- CN
- China
- Prior art keywords
- application
- package
- mirror image
- dependency
- dependency package
- 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
Links
- 238000010276 construction Methods 0.000 title claims abstract description 191
- 238000004806 packaging method and process Methods 0.000 claims abstract description 77
- 238000013507 mapping Methods 0.000 claims abstract description 49
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 22
- 230000001419 dependent effect Effects 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 20
- 230000008859 change Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及云计算技术领域,提供一种应用镜像的构建方法、装置、电子设备及存储介质,所述方法包括步骤:当所述代码托管节点接收镜像构建指令时,所述镜像打包节点获取所述代码托管节点根据所述镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容;所述镜像打包节点根据所述应用依赖包构建内容以及所述应用镜像包构建内容构建依赖包、镜像包以及应用编排部署文件,所述应用编排部署文件中包括所述镜像包与所述依赖包之间的映射关系;将所述依赖包分发到所述镜像输出节点,根据所述应用编排部署文件进行应用处理。能够缩小应用镜像的大小,节约了存储应用镜像的磁盘存储空间,加快应用启动及迁移速度。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及一种应用镜像的构建方法、装置、电子设备及存储介质。
背景技术
在现有的技术中,随着云计算技术的发展,应用容器化已成为一种趋势。而应用容器化的第一步就是将应用打包成标准的应用镜像格式。由于容器的隔离型,应用需要将其依赖打包进镜像中。而同类型应用的依赖库或依赖包大部分一致,但每个应用依然需要将其完整的依赖构建到镜像中。此外,这些同类型应用的依赖库也很少变动,但升级应用时还是需要将完整的依赖构建进镜像中,即同类应用的相同依赖无法复用,并且无变动的依赖库或依赖包需每次都需要构建,升级时也需要作为一个整体升级。可见,现有技术中,存在镜像构建时间长、镜像过大的问题。
发明内容
本发明实施例提供一种应用镜像的构建方法,能够缩小应用镜像,加快应用镜像构建速度。
第一方面,本发明实施例提供一种应用镜像的构建方法,所述方法应用于应用镜像构建系统,所述应用镜像构建系统包括代码托管节点、镜像打包节点以及镜像输出节点,所述方法包括以下步骤:
当所述代码托管节点接收镜像构建指令时,所述镜像打包节点获取所述代码托管节点根据所述镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容;
所述镜像打包节点根据所述应用依赖包构建内容以及所述应用镜像包构建内容构建依赖包、镜像包以及应用编排部署文件,所述应用编排部署文件中包括所述镜像包与所述依赖包之间的映射关系;
将所述依赖包分发到所述镜像输出节点,根据所述应用编排部署文件进行应用处理。
第二方面,本发明实施例还提供一种应用镜像的构建装置,包括:
获取模块,用于当所述代码托管节点接收镜像构建指令时,所述镜像打包节点获取所述代码托管节点根据所述镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容;
构建模块,用于所述镜像打包节点根据所述应用依赖包构建内容以及所述应用镜像包构建内容构建依赖包、镜像包以及应用编排部署文件,所述应用编排部署文件中包括所述镜像包与所述依赖包之间的映射关系;
分发模块,用于将所述依赖包分发到所述镜像输出节点,根据所述应用编排部署文件进行应用处理。
第三方面,本发明实施例还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述实施例提供的应用镜像的构建方法中的步骤。
第四方面,一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述实施例提供的应用镜像的构建方法中的步骤。
本发明实施例中,由于通过当所述代码托管节点接收镜像构建指令时,所述镜像打包节点获取所述代码托管节点根据所述镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容;所述镜像打包节点根据所述应用依赖包构建内容以及所述应用镜像包构建内容构建依赖包、镜像包以及应用编排部署文件,所述应用编排部署文件中包括所述镜像包与所述依赖包之间的映射关系;将所述依赖包分发到所述镜像输出节点,根据所述应用编排部署文件进行应用处理。上述通过配置应用依赖包构建内容以及应用镜像包构建内容,以构建依赖包与镜像包,将应用镜像拆分为依赖包与镜像包两个部分,这样,无需将应用完整的依赖全部构建到应用镜像中,将应用镜像进行拆分可以缩小应用镜像,进而节约了存储应用镜像的磁盘存储空间,加快应用启动及迁移速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种应用镜像构建系统的结构示意图;
图2是本发明实施例提供的一种应用镜像的构建方法的流程图;
图3是本发明实施例提供的另一种应用镜像的构建方法的流程图;
图4是本发明实施例提供的另一种应用镜像的构建方法的流程图;
图5是本发明实施例提供的一种应用镜像的构建装置的结构示意图;
图6是本发明实施例提供的另一种应用镜像的构建装置的结构示意图;
图7是本发明实施例提供的另一种应用镜像的构建装置的结构示意图;
图8是本发明实施例提供的另一种应用镜像的构建装置的结构示意图;
图9是本发明实施例提供的另一种应用镜像的构建装置的结构示意图;
图10是本发明实施例提供的另一种应用镜像的构建装置的结构示意图;
图11是本发明实施例提供的另一种应用镜像的构建装置的结构示意图;
图12是本发明实施例提供的另一种应用镜像的构建装置的结构示意图;
图13是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
如图1所示,为本发明实施例提供的应用镜像的构建方法所应用的应用镜像构建系统架构图。系统架构100包括代码托管节点101,镜像打包节点102以及镜像输出节点103。代码托管节点101、镜像打包节点102与镜像输出节点103之间通过网络相互连接实现数据传输。
其中,代码托管节点101中存储有应用的程序,代码托管节点101可以实时对应用中的代码数据进行检测,若代码数据出现变更,代码托管节点101会根据变化的代码数据生成镜像构建指令,根据镜像构建指令配置应用依赖包构建内容以及应用镜像包构建内容发送到镜像打包节点。
上述镜像打包节点102可以对变更的代码数据进行检测,基于应用依赖包构建内容以及应用镜像包构建内容提供的打包格式分别构建成镜像包与依赖包以及应用编排部署文件,将应用镜像中镜像所依赖的部分从中分离出来单独构建成依赖包,以减小镜像包的大小。并且镜像打包节点102会将依赖包分发到镜像输出节点103上,以保证镜像输出节点启动应用镜像。
在应用编排部署文件中,可以根据镜像包的镜像信息去关联所需要的依赖包,镜像输出节点103接收到依赖包后,只有在启动前先加载镜像信息所依赖的依赖包后才能进行部署或者进行升级。
具体的,上述通过代码托管节点101配置应用依赖包构建内容以及应用镜像包构建内容,并发送到镜像打包节点102以构建依赖包与镜像包,将应用镜像拆分为依赖包与镜像包两个部分,这样无需将应用完整的依赖全部构建到应用镜像中,将应用镜像进行拆分可以缩小应用镜像的大小,节约了存储应用镜像的磁盘存储空间,加快应用启动及迁移速度。
如图2所示,图2是本发明实施例提供的一种应用镜像的构建方法的流程图,应用于应用镜像构建系统,应用镜像构建系统包括代码托管节点、镜像打包节点以及镜像输出节点,应用镜像的构建方法包括以下步骤:
S201、当代码托管节点接收镜像构建指令时,镜像打包节点获取代码托管节点根据镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容。
在本实施例中,应用镜像的构建方法运用的场景包括但不限于应用镜像系统中。应用镜像的构建方法运用其上的电子设备可以通过有线连接方式或者无线连接方式获取/接收外部电子设备的输入数据/输出数据。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi(Wireless-Fidelity)连接、蓝牙连接、WiMAX(WorldwideInteroperability forMicrowaveAccess)连接、Zigbee(低功耗局域网协议,又称紫峰协议)连接、UWB(ultrawideband)连接、以及其他现在已知或将来开发的无线连接方式。
其中,代码托管节点可以是一个代码托管平台,代码托管平台中可以存放有大量的代码。当代码托管平台接收到镜像构建命令后,可以对镜像构建命令进行解析,以提取出镜像构建命令中所包含的内容,根据所包含的内容可以配置出对应的应用依赖包构建内容以及应用镜像包构建内容。上述镜像构建指令中,可以包括应用程序中发生变更的代码数据。当应用程序的中有代码数据发生变更后,会携带发生变更的代码数据生成上述的镜像构建指令,通过代码托管节点根据其镜像构建指令生成上述的应用依赖包构建内容以及应用镜像包构建内容,而不再是将镜像包与所依赖的数据打包成一个整体。
上述的应用依赖包构建内容可以是一段用于构建依赖包的基础环境代码,可以是构建依赖包的规范格式。同样,上述应用镜像包构建内容也可以是一段用于构建镜像包的基础环境代码,可以是构建镜像包的应用镜像格式。构建不同的对象其对应的构建内容是不同的。当检测到应用程序的代码数据发生变更时,便可以启动代码托管平台,在代码管理平台的代码库中配置应用依赖包构建内容以及应用镜像包构建内容,例如:对于应用依赖包构建内容配置,可以将上述代码库下的runtime目录下所有内容打包到依赖包中;对于应用镜像包构建内容配置,可以将编译出的build目录下的应用构建到镜像的/opt/目录下,先完成镜像构建后,再配置该镜像的依赖库,将宿主机中的a目录挂载到容器中/opt/app/runtime目录下,这样,便完成了应用依赖包构建内容以及应用镜像包构建内容的配置。
S202、镜像打包节点根据应用依赖包构建内容以及应用镜像包构建内容构建依赖包、镜像包以及应用编排部署文件,应用编排部署文件中包括镜像包与依赖包之间的映射关系。
其中,镜像打包节点可以是一个打包平台,可以对接收到的构建内容分别进行打包压缩。当代码托管节点配置好应用依赖包构建内容以及应用镜像包构建内容后,可以发送到镜像打包节点,根据应用依赖包构建内容打包压缩出依赖包,根据应用镜像包构建内容打包压缩出镜像包两个部分,镜像包与依赖包均属于压缩包,但两者的打包格式不同。依赖包也可以称为依赖库,依赖包的内容可以是应用程序的代码中不变或者极少变更的部分,例如:C++应用依赖的第三方动态链接库。镜像包中的内容可以指的是应用程序中代码的变更较多的代码部分,至于变更程度,可以通过设置一个固定值进行划分,例如:设置固定值5,变化在5以内的则可以构建到依赖包中。
上述的应用编排部署文件可以用于对构建好的镜像包以及依赖包进行应用,以启动应用镜像,也表示依赖包与镜像包之间的关系是挂在到编排部署文件中的。构建出依赖包、镜像包以及应用编排部署文件后都会存储到系统中。
在启动应用镜像前因把镜像包所依赖的部分进行隔离成了依赖包,若要启动镜像,则系统会主动拉取镜像包的镜像信息,根据镜像信息从应用编排部署文件中根据映射关系调取出对应的依赖包中的依赖库,并将该依赖库放置到容器中,让该应用镜像运行起来的容器就能获得其依赖库,以正常启动应用镜像,例如:将依赖包解压到path指定的/usr/lib-package/runtime目录下,然后挂载到镜像启动后的容器目录/opt/app/runtime下。其中,容器可以指应用进行的启动运行。
要将应用进行应用容器化,首先需要将应用打包成标准的容器镜像格式,但由于容器的隔离型,应用需要将其依赖打包进镜像中,例如:Java应用需要将其依赖的第三方Jar包、配置文件等打包进镜像中;C++应用需要将其依赖的动态链接库.so文件、配置文件等打包到镜像中。在本发明实施例中,根据上述配置的应用依赖包构建内容以及应用镜像包构建内容分别构建成镜像包与依赖包,而不是在检测到应用程序的代码数据变更时,将需要依赖的内容全部打包到镜像包中,这样,可以从镜像包中隔离出部分需要打包的内容,以减小应用镜像的大小。
S203、将依赖包分发到镜像输出节点,根据应用编排部署文件进行应用处理。
其中,镜像输出节点可以调动应用镜像,且镜像输出节点可以是批量,确定出需要启动应用镜像的输出节点后,便可以从镜像包中调取镜像信息,通过应用编排部署文件找到。镜像输出节点可以是服务器,在构建好依赖包后,镜像打包节点可以将依赖包向多个镜像输出节点并发,也可以是根据预设的分发方式进行有序分发,具体发送给哪一个镜像输出节点,需要根据镜像输出节点的需要而定。此外,发送的依赖包是与镜像输出节点所启动的镜像包中的镜像信息从应用编排部署文件中映射得到的,分发的依赖包中包含有应用镜像所依赖的内容。上述将依赖包分发到镜像输出节点的分发方式在本发明实施例中不做限定。镜像输出节点接收到依赖包后可以通过应用编排部署文件对依赖包进行部署,保证系统的正常运行状态。
本发明实施例中,由于通过当代码托管节点接收镜像构建指令时,镜像打包节点获取代码托管节点根据镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容;镜像打包节点根据应用依赖包构建内容以及应用镜像包构建内容构建依赖包、镜像包以及应用编排部署文件,应用编排部署文件中包括镜像包与依赖包之间的映射关系;将依赖包分发到镜像输出节点,根据应用编排部署文件进行应用处理。上述通过配置应用依赖包构建内容以及应用镜像包构建内容,以构建依赖包与镜像包,将应用镜像拆分为依赖包与镜像包两个部分,这样无需将应用完整的依赖全部构建到应用镜像中,将应用镜像进行拆分可以缩小应用镜像,节约了存储应用镜像的磁盘存储空间,加快应用启动及迁移速度。
如图3所示,图3是本发明实施例提供的另一种方法流程图,包括以下步骤:
S301、当代码托管节点接收镜像构建指令时,镜像打包节点获取代码托管节点根据镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容。
S302、获取应用程序中数据变化量小于预设的数据变化量阈值的常量代码,在镜像打包节点中基于应用依赖包构建内容将常量代码进行打包,得到独立依赖包。
其中,数据变化量可以表示应用程序中代码数据的变化情况。上述预设的数据变化量阈值可以是根据此前的代码数据变化情况设定的一个值,且数据变化量阈值可以根据代码的变动情况进行多次调整,让后续得到的常量代码更准确。上述的常量代码可以表示不变或者数据变化量小于数据变化量阈值部分的代码,例如:预设的数据变化量阈值为1个月变化5次,通过对应用依赖包的内容进行检测,得到20个数据变化量小于5次的常量代码。常量代码在代码库中长时间处于稳定状态,例如:C++应用依赖的第三方动态链接库。
获取到常态代码后,可以根据配置好的应用依赖包构建内容将常态代码记进行打包压缩,以得到独立依赖包。该独立依赖包可以表示只有一个应用依赖的数据包。
S303、获取应用程序中数据变化量超过预设的数据变化量阈值的变量代码,将变量代码基于应用镜像包构建内容构建镜像包。
其中,变量代码可以是指出现频繁变动的数据,频繁变动的代码需要频繁的构建镜像包,而常态代码相对变量代码更稳定,构建次数少。数据变化量小于预设的数据变化量阈值的代码部分构建成了独立依赖包,还可以将超过数据变化量阈值的代码部分可以作为构建镜像包的数据,例如:预设的数据变化量阈值为1个月变化5次,通过对应用依赖包的内容进行检测,得到1000个数据变化量超过5次的变量代码。构建镜像包时,以应用镜像包构建内容作为构建镜像包的规范,其中可以是配置了专用于构建镜像包的容器镜像格式。
S304、提取镜像包中的应用公共服务代码,将应用公共服务代码基于应用依赖包构建内容进行打包,得到公共依赖包。
其中,在构建好的镜像包中,会包括一些很多应用都可以使用的代码部分,也即是上述的公共服务代码,公共服务代码服务可以服务于多种类型的应用。可以通过观察分析同类型应用的应用镜像的公共部分在镜像包中进行抽取,将抽取出来的部分作为公共服务代码。因公共服务代码的基本不会变化,一般只需要构建一次,因此,可以将该部分代码提取出来单独打包成上述的公共依赖包。这样,将多个应用镜像依赖的公共服务部分单独提取出来打包成公共依赖包,可以减小镜像包的大小,而不用在镜像包每次进行构建时,都需要到携带公共服务代码作为整体进行频繁的构建,导致构建应用镜像的耗时过长。
S305、根据镜像包与独立依赖包及公共依赖包之间的映射关系生成应用编排部署文件。
其中,在应用编排部署文件中,挂在有镜像包与所依赖的独立依赖包以及公共依赖包之间的映射关系。由于拆分后应用镜像缺少依赖库,必须先部署依赖库,并将依赖库的和镜像包的映射关系挂载在编排部署文件中,系统根据编排部署文件自动完成依赖库挂载到使用该镜像启动的容器中。只要配置好镜像包中的镜像信息,系统会自动从镜像信息拉取应用镜像,并根据配置好的映射关系将依赖库挂载到容器中,然后镜像输出节点才能启动应用镜像。
需要说明的是,一个应用要启动应用镜像,需要先加载其镜像所依赖的公共依赖包和与自身匹配的独立依赖包。上述构建独立依赖包、公共依赖包、镜像包以及应用编排部署文件的先后顺序不做限定,都是通过不同的线程执行的,例如:也可以先构建镜像包与公共依赖包,也可以先构建独立依赖包,此外,还可以是同时构建。
S306、将依赖包分发到镜像输出节点,根据应用编排部署文件进行应用处理。
可选的,上述步骤S301包括:
检测应用程序的代码数据是否变更。
其中,在启动新的应用镜像构建之间,需要先判断需要启动应用镜像的应用其应用程序的代码数据是否发生变更。对于没有发生变更的情况则保持当前的状态,若上述应用程序的代码数据发生了变更,便需要重新构建应用镜像。
若应用程序的代码数据发生变更,则通过代码托管节点向镜像打包节点发送镜像构建指令。
其中,代码托管节点中可以托管应用程序的代码数据,若发生变更,则会携带发生变化的代码数据将其以镜像构建指令的形式发送到镜像打包节点对该变更的代码数据进行打包。并对变更的代码数据分离出常量代码与变量代码,根据各自的规范进行打包。
镜像打包节点根据镜像构建指令配置应用依赖包构建内容以及应用镜像包构建内容。
其中,获取到镜像构建指令可以表示需要启动应用镜像,因此,需要重新构建应用依赖包构建内容以及应用镜像包构建内容,以新构建的应用依赖包构建内容以及应用镜像包构建内容作为格式规范,根据应用程序中变化的代码部分去构建对应的依赖包以及镜像包。
可选的,上述步骤305包括:
建立镜像包与独立依赖包之间的映射关系,并加载到第一应用编排部署文件。
建立镜像包与公共依赖包之间的映射关系,并加载到第二应用编排部署文件。
其中,第一应用编排部署文件与第二应用编排部署文件均包括在应用编排部署文件中。为了区别独立依赖包与公共依赖包,可以分别建立镜像包与独立依赖包之间的映射关系,然后可以将镜像包与独立依赖包之间的映射关系通过映射表表示,并将该映射表加载到第一应用编排部署文件。同样,可以建立镜像包与公共依赖包之间的映射关系,然后可以将镜像包与公共依赖包之间的映射关系通过映射表表示,并将该映射表加载到第二应用编排部署文件。上述镜像包与独立依赖包之间的映射表与镜像包与公共依赖包之间的映射表为不同的数据表,例如:镜像包与独立依赖包之间的映射表为表A,镜像包与公共依赖包之间的映射表为表B。
可选的,应用处理包括应用部署,上述步骤S306包括:
将构建得到的公共依赖包分发到镜像输出节点。
将构建得到的独立依赖包分发到镜像输出节点。
上述应用处理包括应用部署以及应用升级。在进行应用处理时需要先判断构建好的镜像包属于升级包/部署包,若需要部署则打包的为部署包,若需要升级则打包的为升级包,具体根据需求决定。
其中,当镜像输出节点需要启动应用镜像时,需要先加载独立依赖包以及公共依赖包,因此,在构建好公共依赖包以及独立依赖包后,可以分发到需要启动应用镜像的镜像输出节点中。
根据应用编排部署文件对分发到镜像输出节点上的公共依赖包与独立依赖包进行应用部署。
其中,公共依赖包与独立依赖包分发到镜像输出节点后,需要根据规范进行部署。在应用编排部署文件挂载有独立依赖包与公共依赖包与镜像信息的对应关系。系统会自动提取镜像信息,根据镜像信息映射出需要依赖的依赖库,并保存到容器中以实现应用镜像启动。
具体的,可以根据第一应用编排部署文件对镜像输出节点上的独立依赖包进行应用部署;根据第二应用编排部署文件对镜像输出节点上的公共依赖包进行应用部署。
本发明实施例中,由于通过配置应用依赖包构建内容以及应用镜像包构建内容,根据应用程序中变更的代码数据构建对应的依赖包(公共依赖包与独立依赖包)与镜像包,并将独立依赖包与公共依赖包分发到镜像输出节点,根据获取到的镜像地址映射出所依赖的独立依赖包/公共依赖包,以启动应用镜像。将应用镜像中镜像包所依赖的公共依赖包和独立依赖包分离出来单独打包,且公共依赖包可以为多种类型的应用提供使用,独立依赖包中包括应用程序中变更较少的代码数据,这样,将应用镜像拆分为依赖包与镜像包两个部分,便无需每次都对所有的代码数据进行构建,能够缩小应用镜像的大小,进而节约了存储应用镜像的磁盘存储空间,加快应用启动及迁移速度。
如图4所示,依赖包包括独立依赖包与公共依赖包,应用处理包括应用升级,图4是本发明实施例提供的另一种方法流程图,包括以下步骤:
S401、当代码托管节点接收镜像构建指令时,镜像打包节点获取代码托管节点根据镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容。
S402、镜像打包节点根据应用依赖包构建内容以及应用镜像包构建内容构建依赖包、镜像包以及应用编排部署文件,应用编排部署文件中包括镜像包与依赖包之间的映射关系,依赖包包括独立依赖包与公共依赖包。
S403、检测镜像打包节点中是否构建有公共依赖包和/或独立依赖包。
其中,当判断出所打包的镜像包属于升级包时,需要先检测是否已经完成公共依赖包和/独立依赖包的构建,只有在构建有公共依赖包和/或独立依赖包的前提下,才能对公共依赖包和/或独立依赖包进行升级。
S404、若存在公共依赖包和/或独立依赖包,则将公共依赖包和/或独立依赖包分发到镜像输出节点。
其中,若存在公共依赖包和/或独立依赖包,则可以将公共依赖包和/或独立依赖包从镜像打包节点分发到镜像输出节点中以进行应用升级。
S405、根据应用编排部署文件对分发到镜像输出节点上的公共依赖包和/或独立依赖包进行应用升级。
其中,进行应用升级需要根据应用编排部署文件进行升级。其应用编排部署文件中可以包括镜像信息以及依赖变更信息,根据镜像信息以及依赖变更信息可以完成应用最后升级。
可选的,应用升级包括差量升级,上述步骤S405包括:
根据应用编排部署文件对分发到镜像输出节点上的公共依赖包和/或独立依赖包进行差量升级。
上述差量包的大小相对于全量包而言更小,进行差量升级可以体现出将应用镜像拆分成依赖包与镜像包后的灵活优势。需要说明的是,上述的差量包可以表示其中只包括有变更的部分,而全量包中除了变更部分,还包括无变更部分,所以全量包更大。在本发明中,采用的是差量升级,在进行应用差量升级时更小,耗时更短。
可选的,根据应用编排部署文件对分发到镜像输出节点上的公共依赖包和/或独立依赖包进行差量升级的步骤具体可以包括:
判断公共依赖包/独立依赖包是否为差量包,差量包中包括描述文件。
其中,全量包为完整的数据包,差量包则包括部分必要的数据,差量包内的数据量小于全量包内的数据量。进行差量升级前,可以先判断公共依赖包和/或独立依赖包是全量包还是差量包,针对不同的类型可以有不同的升级方式。若是全量包则进行全量升级,若是差量包则进行差量升级。
具体的,差量包中,需要包含一个描述文件,用于标识哪些文件需要删除、替换、新增,且该文件可以使用类似Linux系统的diff工具来比对两个版本依赖包的差异获得,例如:版本一common-lib-v1#和版本二common-lib-v2#依赖包目录结构分别是,common-lib-v1#中包括有common.so、1.so与2.so;common-lib-v2#中包括有common.so、2.so与3.so,使用命令diff-rcommon-lib-v1common-lib-v2对比,可知相对于版本一common-lib-v1依赖包,版本二common-lib-v2删除了1.so,修改了2.so,增加了3.so;可解析diff的差异对比输出结果,生成差量包描述文件,在该差量包描述文件中,只需要包含3.so和2.so两个文件以及该描述文件即可,而无需包含无改变的common.so文件。可见,本发明相对于打包成镜像格式需要将两个版本的相同文件或目录打包进升级包中,该方式可明显减小升级包的大小。
若公共依赖包/独立依赖包为差量包,则结合描述文件,根据应用编排部署文件对镜像输出节点上的公共依赖包/独立依赖包行进行差量升级,否则进行全量升级。
具体的,当判断出为差量包后,则可以根据第一应用编排部署文件对独立依赖包中带有标识的数据进行差量升级,或者可以根据第二应用编排部署文件对公共依赖包中带有标识的数据进行差量升级。若判断出为全量包,则可以根据第一应用编排部署文件对独立依赖包中带有标识的数据进行全量升级,或者可以根据第二应用编排部署文件对公共依赖包中带有标识的数据进行全量升级。
在本发明实施例中,依赖包(公共依赖包和/或独立依赖包)的打包格式与镜像包的打包格式不同,镜像包的打包格式为容器镜像格式,该格式只能进行整体替换模式的全量升级,而本发明实施例中的依赖包是普通的gzip压缩包格式,内容是代码库中依赖包配置文件配置的目录或文件。
本发明实施例中,由于通过上述通过配置应用依赖包构建内容以构建独立依赖包、公共依赖包以及配置应用镜像包构建内容构建镜像包,将应用镜像拆分为依赖包与镜像包两个部分,无需将应用完整的依赖全部构建到应用镜像中,将应用镜像进行拆分可以缩小应用镜像的大小,进而节约了存储应用镜像的磁盘存储空间。此外,在进行应用升级时采用的是差量升级,在差量升级时,对于不变的代码部分是无需包含在差量包中,相当于打包成镜像格式需要将全部打包而言,这样可以减小差量包的大小。应用镜像的拆分以及减小差量包的大小可以加快应用启动及迁移速度。
如图5所示,图5是本发明实施例提供的一种应用镜像的构建装置的结构示意图,应用镜像的构建装置500包括:
获取模块501,用于当代码托管节点接收镜像构建指令时,镜像打包节点获取代码托管节点根据镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容;
构建模块502,用于镜像打包节点根据应用依赖包构建内容以及应用镜像包构建内容构建依赖包、镜像包以及应用编排部署文件,应用编排部署文件中包括镜像包与依赖包之间的映射关系;
分发模块503,用于将依赖包分发到镜像输出节点,根据应用编排部署文件进行应用处理。
可选的,如图6所示,依赖包包括独立依赖包与公共依赖包,图6是本发明实施例提供的另一种应用镜像的构建装置的结构示意图,构建模块502包括:
第一打包单元5021,用于获取应用程序中数据变化量小于预设的数据变化量阈值的常量代码,在镜像打包节点中基于应用依赖包构建内容将常量代码进行打包,得到独立依赖包;
构建单元5022,用于获取应用程序中数据变化量超过预设的数据变化量阈值的变量代码,将变量代码基于应用镜像包构建内容构建镜像包;
第二打包单元5023,应用提取镜像包中的应用公共服务代码,将应用公共服务代码基于应用依赖包构建内容进行打包,得到公共依赖包;
生成单元5024,用于根据镜像包与独立依赖包及公共依赖包之间的映射关系生成应用编排部署文件。
可选的,应用处理包括应用部署,如图7所示,图7是本发明实施例提供的另一种应用镜像的构建装置的结构示意图,分发模块503包括:
第一分发单元5031,用于将构建得到的公共依赖包分发到镜像输出节点;
第二分发单元5032,用于将构建得到的独立依赖包分发到镜像输出节点;
部署单元5033,用于根据应用编排部署文件对分发到镜像输出节点上的公共依赖包与独立依赖包进行应用部署。
可选的,如图8所示,依赖包包括独立依赖包与公共依赖包,图8是本发明实施例提供的另一种应用镜像的构建装置的结构示意图,分发模块503还包括:
第一检测单元5034,用于检测镜像打包节点中是否构建有公共依赖包和/或独立依赖包;
第三分发单元5035,用于若存在公共依赖包和/或独立依赖包,则将公共依赖包和/或独立依赖包分发到镜像输出节点;
升级单元5036,用于根据应用编排部署文件对分发到镜像输出节点上的公共依赖包和/或独立依赖包进行应用升级。
可选的,升级单元5036还用于根据应用编排部署文件对分发到镜像输出节点上的公共依赖包和/或独立依赖包进行差量升级。
可选的,如图9所示,图9是本发明实施例提供的另一种应用镜像的构建装置的结构示意图,升级单元5036包括:
判断子单元50361,用于判断公共依赖包/独立依赖包是否为差量包,差量包中包括描述文件;
升级子单元50362,用于若公共依赖包/独立依赖包为差量包,则结合描述文件,根据应用编排部署文件对镜像输出节点上的公共依赖包/独立依赖包行进行差量升级,否则进行全量升级。
可选的,如图10所示,图10是本发明实施例提供的另一种应用镜像的构建装置的结构示意图,获取模块501包括:
第二检测单元5011,用于应用程序的代码数据是否变更;
发送单元5012,用于若应用程序的代码数据发生变更,则通过代码托管节点向镜像打包节点发送镜像构建指令;
配置单元5013,用于镜像打包节点根据镜像构建指令配置应用依赖包构建内容以及应用镜像包构建内容。
可选的,如图11所示,图12是本发明实施例提供的另一种应用镜像的构建装置的结构示意图,生成单元5024包括:
第一加载子单元50241,用于建立镜像包与独立依赖包之间的映射关系,并加载到第一应用编排部署文件;
第二加载子单元50242,用于建立镜像包与公共依赖包之间的映射关系,并加载到第二应用编排部署文件。
可选的,如图12所示,图12是本发明实施例提供的另一种应用镜像的构建装置的结构示意图,部署单元5033包括:
第一部署子单元50331,用于根据第一应用编排部署文件对镜像输出节点上的独立依赖包进行应用部署;
第二部署子单元50332,用于根据第二应用编排部署文件对镜像输出节点上的公共依赖包进行应用部署。
本发明实施例提供的应用镜像的构建装置能够实现应用镜像的构建方法实施例中的各个实施方式以及相应有益效果,为避免重复,这里不再赘述。
如图13所示,图13是本发明实施例提供的一种电子设备的结构示意图,该电子设备1300包括:存储器1302、处理器1301、网络接口1303及存储在存储器1302上并可在处理器1301上运行的计算机程序,处理器1301执行计算机程序时实现实施例提供的应用镜像的构建方法中的步骤。
具体的,处理器1301用于执行以下步骤:
当代码托管节点接收镜像构建指令时,镜像打包节点获取代码托管节点根据镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容;
镜像打包节点根据应用依赖包构建内容以及应用镜像包构建内容构建依赖包、镜像包以及应用编排部署文件,应用编排部署文件中包括镜像包与依赖包之间的映射关系;
将依赖包分发到镜像输出节点,根据应用编排部署文件进行应用处理。
可选的,依赖包包括独立依赖包与公共依赖包,处理器1301执行的镜像打包节点根据应用依赖包构建内容以及应用镜像包构建内容构建依赖包、镜像包以及应用排部署文件的步骤包括:
获取应用程序中数据变化量小于预设的数据变化量阈值的常量代码,在镜像打包节点中基于应用依赖包构建内容将常量代码进行打包,得到独立依赖包;
获取应用程序中数据变化量超过预设的数据变化量阈值的变量代码,将变量代码基于应用镜像包构建内容构建镜像包;
提取镜像包中的应用公共服务代码,将应用公共服务代码基于应用依赖包构建内容进行打包,得到公共依赖包;
根据镜像包与独立依赖包及公共依赖包之间的映射关系生成应用编排部署文件。
可选的,应用处理包括应用部署,处理器1301执行的将依赖包分发到镜像输出节点,根据应用编排部署文件进行应用处理的步骤包括:
将构建得到的公共依赖包分发到镜像输出节点;
将构建得到的独立依赖包分发到镜像输出节点;
根据应用编排部署文件对分发到镜像输出节点上的公共依赖包与独立依赖包进行应用部署。
可选的,依赖包包括独立依赖包与公共依赖包,处理器1301执行的将依赖包分发到镜像输出节点,根据应用编排部署文件进行应用处理的步骤包括:
检测镜像打包节点中是否构建有公共依赖包和/或独立依赖包;
若存在公共依赖包和/或独立依赖包,则将公共依赖包和/或独立依赖包分发到镜像输出节点;
根据应用编排部署文件对分发到镜像输出节点上的公共依赖包和/或独立依赖包进行应用升级。
可选的,应用升级包括差量升级,处理器1301执行的根据应用编排部署文件对分发到镜像输出节点上的公共依赖包和/或独立依赖包进行应用升级的步骤包括:
根据应用编排部署文件对分发到镜像输出节点上的公共依赖包和/或独立依赖包进行差量升级。
可选的,处理器1301执行的根据应用编排部署文件对分发到镜像输出节点上的公共依赖包和/或独立依赖包进行差量升级的步骤包括:
判断公共依赖包/独立依赖包是否为差量包,差量包中包括描述文件;
若公共依赖包/独立依赖包为差量包,则结合描述文件,根据应用编排部署文件对镜像输出节点上的公共依赖包/独立依赖包行进行差量升级,否则进行全量升级。
可选的,处理器1301执行的当代码托管节点接收镜像构建指令时,镜像打包节点获取代码托管节点根据镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容的步骤包括:
检测应用程序的代码数据是否变更;
若应用程序的代码数据发生变更,则通过代码托管节点向镜像打包节点发送镜像构建指令;
镜像打包节点根据镜像构建指令配置应用依赖包构建内容以及应用镜像包构建内容。
可选的,处理器1301执行的根据镜像包与独立依赖包及公共依赖包之间的映射关系生成应用编排部署文件的步骤包括:
建立镜像包与独立依赖包之间的映射关系,并加载到第一应用编排部署文件;
建立镜像包与公共依赖包之间的映射关系,并加载到第二应用编排部署文件。
可选的,处理器1301执行的根据应用编排部署文件对分发到镜像输出节点上的公共依赖包与独立依赖包进行应用部署的步骤包括:
根据第一应用编排部署文件对镜像输出节点上的独立依赖包进行应用部署;
根据第二应用编排部署文件对镜像输出节点上的公共依赖包进行应用部署。
本发明实施例提供的应用镜像的构建装置能够实现应用镜像的构建方法实施例中的各个实施方式,以及相应有益效果,为避免重复,这里不再赘述。
本发明实施例提供的电子设备1300能够实现应用镜像的构建方法实施例中的各个实施方式,以及相应有益效果,为避免重复,这里不再赘述。
需要指出的是,图中仅示出了具有组件的1301-1303,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的电子设备1300是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
电子设备1300可以是桌上型计算机、笔记本及掌上电脑等计算设备。电子设备1300可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
存储器1302至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器1302可以是电子设备1300的内部存储单元,例如该电子设备1300的硬盘或内存。在另一些实施例中,存储器1302也可以是电子设备1300的外部存储设备,例如该电子设备1300上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器1302还可以既包括电子设备1300的内部存储单元也包括其外部存储设备。本实施例中,存储器1302通常用于存储安装于电子设备1300的操作系统和各类应用软件,例如应用镜像的构建方法的程序代码等。此外,存储器1302还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器1301在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器1301通常用于控制电子设备1300的总体操作。本实施例中,处理器1301用于运行存储器1302中存储的程序代码或者处理数据,例如运行应用镜像的构建方法的程序代码。
网络接口1303可包括无线网络接口或有线网络接口,该网络接口1303通常用于在电子设备1300与其他电子设备之间建立通信连接。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器1301执行时实现实施例提供的应用镜像的构建方法中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现实施例应用镜像的构建方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器1302(RandomAccessMemory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (15)
1.一种应用镜像的架构方法,其特征在于,所述方法应用于应用镜像构建系统,所述应用镜像构建系统包括代码托管节点、镜像打包节点以及镜像输出节点,所述方法包括以下步骤:
当所述代码托管节点接收镜像构建指令时,所述镜像打包节点获取所述代码托管节点根据所述镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容;
所述镜像打包节点根据所述应用依赖包构建内容以及所述应用镜像包构建内容构建依赖包、镜像包以及应用编排部署文件,所述应用编排部署文件中包括所述镜像包与所述依赖包之间的映射关系;
将所述依赖包分发到所述镜像输出节点,根据所述应用编排部署文件进行应用处理。
2.如权利要求1所述的应用镜像的构建方法,其特征在于,所述依赖包包括独立依赖包与公共依赖包,所述镜像打包节点根据所述应用依赖包构建内容以及所述应用镜像包构建内容构建依赖包、镜像包以及应用排部署文件的步骤包括:
获取应用程序中数据变化量小于预设的数据变化量阈值的常量代码,在所述镜像打包节点中基于所述应用依赖包构建内容将所述常量代码进行打包,得到所述独立依赖包;
获取应用程序中数据变化量超过预设的数据变化量阈值的变量代码,将所述变量代码基于所述应用镜像包构建内容构建所述镜像包;
提取所述镜像包中的应用公共服务代码,将所述应用公共服务代码基于所述应用依赖包构建内容进行打包,得到所述公共依赖包;
根据镜像包与所述独立依赖包及所述公共依赖包之间的映射关系生成所述应用编排部署文件。
3.如权利要求2所述的应用镜像的构建方法,其特征在于,所述应用处理包括应用部署,所述将所述依赖包分发到所述镜像输出节点,根据所述应用编排部署文件进行应用处理的步骤包括:
将构建得到的所述公共依赖包分发到所述镜像输出节点;
将构建得到的所述独立依赖包分发到所述镜像输出节点;
根据所述应用编排部署文件对分发到所述镜像输出节点上的所述公共依赖包与所述独立依赖包进行所述应用部署。
4.如权利要求1所述的应用镜像的构建方法,其特征在于,所述依赖包包括独立依赖包与公共依赖包,所述将所述依赖包分发到所述镜像输出节点,根据所述应用编排部署文件进行应用处理的步骤包括:
检测所述镜像打包节点中是否构建有所述公共依赖包和/或所述独立依赖包;
若存在所述公共依赖包和/或所述独立依赖包,则将所述公共依赖包和/或所述独立依赖包分发到所述镜像输出节点;
根据所述应用编排部署文件对分发到所述镜像输出节点上的所述公共依赖包和/或所述独立依赖包进行所述应用升级。
5.如权利要求4所述的应用镜像的构建方法,其特征在于,所述应用升级包括差量升级,所述根据所述应用编排部署文件对分发到所述镜像输出节点上的所述公共依赖包和/或所述独立依赖包进行所述应用升级的步骤包括:
根据所述应用编排部署文件对分发到所述镜像输出节点上的所述公共依赖包和/或所述独立依赖包进行差量升级。
6.如权利要求5所述的应用镜像的构建方法,其特征在于,所述根据所述应用编排部署文件对分发到所述镜像输出节点上的所述公共依赖包和/或所述独立依赖包进行差量升级的步骤包括:
判断所述公共依赖包/独立依赖包是否为差量包,所述差量包中包括描述文件;
若所述公共依赖包/独立依赖包为所述差量包,则结合所述描述文件,根据所述应用编排部署文件对所述镜像输出节点上的所述公共依赖包/独立依赖包行进行所述差量升级,否则进行全量升级。
7.如权利要求1所述的应用镜像的构建方法,其特征在于,所述当所述代码托管节点接收镜像构建指令时,所述镜像打包节点获取所述代码托管节点根据所述镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容的步骤包括:
检测所述应用程序的代码数据是否变更;
若所述应用程序的代码数据发生变更,则通过所述代码托管节点向所述镜像打包节点发送所述镜像构建指令;
所述镜像打包节点根据所述镜像构建指令配置所述应用依赖包构建内容以及所述应用镜像包构建内容。
8.如权利要求3所述的应用镜像的构建方法,其特征在于,所述根据镜像包与所述独立依赖包及所述公共依赖包之间的映射关系生成所述应用编排部署文件的步骤包括:
建立所述镜像包与所述独立依赖包之间的映射关系,并加载到第一应用编排部署文件;
建立所述镜像包与所述公共依赖包之间的映射关系,并加载到第二应用编排部署文件。
9.如权利要求8所述的应用镜像的构建方法,其特征在于,所述根据所述应用编排部署文件对分发到所述镜像输出节点上的所述公共依赖包与所述独立依赖包进行所述应用部署的步骤包括:
根据所述第一应用编排部署文件对所述镜像输出节点上的所述独立依赖包进行所述应用部署;
根据所述第二应用编排部署文件对所述镜像输出节点上的所述公共依赖包进行所述应用部署。
10.一种应用镜像的构建装置,其特征在于,包括:
获取模块,用于当所述代码托管节点接收镜像构建指令时,所述镜像打包节点获取所述代码托管节点根据所述镜像构建指令配置的应用依赖包构建内容以及应用镜像包构建内容;
构建模块,用于所述镜像打包节点根据所述应用依赖包构建内容以及所述应用镜像包构建内容构建依赖包、镜像包以及应用编排部署文件,所述应用编排部署文件中包括所述镜像包与所述依赖包之间的映射关系;
分发模块,用于将所述依赖包分发到所述镜像输出节点,根据所述应用编排部署文件进行应用处理。
11.如权利要求10所述的应用镜像的构建装置,所述依赖包包括独立依赖包与公共依赖包,其特征在于,所述构建模块包括:
第一打包单元,用于获取应用程序中数据变化量小于预设的数据变化量阈值的常量代码,在所述镜像打包节点中基于所述应用依赖包构建内容将所述常量代码进行打包,得到独立依赖包;
构建单元,用于获取应用程序中数据变化量超过预设的数据变化量阈值的变量代码,将所述变量代码基于所述应用镜像包构建内容构建镜像包;
第二打包单元,应用提取所述镜像包中的应用公共服务代码,将所述应用公共服务代码基于所述应用依赖包构建内容进行打包,得到公共依赖包;
生成单元,用于根据镜像包与所述独立依赖包及所述公共依赖包之间的映射关系生成所述应用编排部署文件。
12.如权利要求11所述的应用镜像的构建装置,所述应用处理包括应用部署,其特征在于,所述分发模块包括:
第一分发单元,用于将构建得到的所述公共依赖包分发到所述镜像输出节点;
第二分发单元,用于将构建得到的所述独立依赖包分发到所述镜像输出节点;
部署单元,用于用根据所述应用编排部署文件对分发到所述镜像输出节点上的所述公共依赖包与所述独立依赖包进行所述应用部署。
13.如权利要求10所述的应用镜像的构建装置,所述依赖包包括独立依赖包与公共依赖包,其特征在于,所述分发模块包括:
第一检测单元,用于检测镜像打包节点中是否构建有公共依赖包和/或独立依赖包;
第三分发单元,用于若存在公共依赖包和/或独立依赖包,则将公共依赖包和/或独立依赖包分发到镜像输出节点;
升级单元,用于根据应用编排部署文件对分发到镜像输出节点上的公共依赖包和/或独立依赖包进行应用升级。
14.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至9中任一项所述的应用镜像的构建方法中的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的应用镜像的构建方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011013835.2A CN112256282B (zh) | 2020-09-24 | 2020-09-24 | 一种应用镜像的构建方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011013835.2A CN112256282B (zh) | 2020-09-24 | 2020-09-24 | 一种应用镜像的构建方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256282A true CN112256282A (zh) | 2021-01-22 |
CN112256282B CN112256282B (zh) | 2024-03-22 |
Family
ID=74231957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011013835.2A Active CN112256282B (zh) | 2020-09-24 | 2020-09-24 | 一种应用镜像的构建方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256282B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080201705A1 (en) * | 2007-02-15 | 2008-08-21 | Sun Microsystems, Inc. | Apparatus and method for generating a software dependency map |
WO2017173922A1 (zh) * | 2016-04-08 | 2017-10-12 | 中兴通讯股份有限公司 | 虚拟机升级方法及装置 |
CN107491329A (zh) * | 2017-08-04 | 2017-12-19 | 上海携程商务有限公司 | Docker镜像构建方法、设备、存储介质以及电子装置 |
CN108023902A (zh) * | 2016-10-31 | 2018-05-11 | 北京金山云网络技术有限公司 | 一种构建网盘服务镜像及部署网盘服务的方法及装置 |
CN109634657A (zh) * | 2018-12-14 | 2019-04-16 | 武汉烽火信息集成技术有限公司 | 一种微服务打包部署方法及系统 |
CN111124454A (zh) * | 2019-12-25 | 2020-05-08 | 南京医康科技有限公司 | 镜像构建方法与装置、电子设备、存储介质 |
US20200151143A1 (en) * | 2018-11-13 | 2020-05-14 | Netapp Inc. | Synchronous replication for synchronous mirror copy guarantee |
-
2020
- 2020-09-24 CN CN202011013835.2A patent/CN112256282B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080201705A1 (en) * | 2007-02-15 | 2008-08-21 | Sun Microsystems, Inc. | Apparatus and method for generating a software dependency map |
WO2017173922A1 (zh) * | 2016-04-08 | 2017-10-12 | 中兴通讯股份有限公司 | 虚拟机升级方法及装置 |
CN108023902A (zh) * | 2016-10-31 | 2018-05-11 | 北京金山云网络技术有限公司 | 一种构建网盘服务镜像及部署网盘服务的方法及装置 |
CN107491329A (zh) * | 2017-08-04 | 2017-12-19 | 上海携程商务有限公司 | Docker镜像构建方法、设备、存储介质以及电子装置 |
US20200151143A1 (en) * | 2018-11-13 | 2020-05-14 | Netapp Inc. | Synchronous replication for synchronous mirror copy guarantee |
CN109634657A (zh) * | 2018-12-14 | 2019-04-16 | 武汉烽火信息集成技术有限公司 | 一种微服务打包部署方法及系统 |
CN111124454A (zh) * | 2019-12-25 | 2020-05-08 | 南京医康科技有限公司 | 镜像构建方法与装置、电子设备、存储介质 |
Non-Patent Citations (2)
Title |
---|
LEE, HYUNGRO: "Building Software-Defined Systems with Reproducible Environments", 《INDIANA UNIVERSITY PROQUEST DISSERTATIONS PUBLISHING》, pages 1 - 24 * |
耿朋;陈伟;魏峻;: "面向Dockerfile的容器镜像构建工具", 计算机系统应用, no. 11, pages 16 - 23 * |
Also Published As
Publication number | Publication date |
---|---|
CN112256282B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107346252B (zh) | 应用更新方法和装置 | |
US11403146B2 (en) | Method, apparatus, and server for managing image across cloud servers | |
CN110413288B (zh) | 应用部署方法、装置、服务器及存储介质 | |
CN112506584B (zh) | 资源文件加载方法、装置、设备、存储介质以及产品 | |
CN112015448A (zh) | 一种基于空中下载技术的系统升级方法及装置 | |
CN111399860B (zh) | 轻应用部署方法、装置、计算机设备和存储介质 | |
CN112162795A (zh) | 一种插件启动方法、装置、计算机设备和存储介质 | |
CN106980502A (zh) | 一种在线获取bios固件更新的方法 | |
CN113254156A (zh) | 一种容器组部署方法、装置、电子设备及存储介质 | |
WO2021197579A1 (en) | Method for deploying application software in cloud environments | |
CN114489690A (zh) | 一种分布式系统部署方法、装置、电子设备及存储介质 | |
CN112698930B (zh) | 一种获取服务器标识的方法、装置、设备及介质 | |
CN113821220A (zh) | 一种linux操作系统的安装方法和装置 | |
CN112256282B (zh) | 一种应用镜像的构建方法、装置、电子设备及存储介质 | |
CN107179918B (zh) | 软件处理方法、装置及系统 | |
CN112698839A (zh) | 数据中心节点部署方法、装置、系统及计算机存储介质 | |
EP4107614A1 (en) | Method for updating applications in cloud environments | |
CN112685102B (zh) | 一种网关插件热加载方法、装置、设备及介质 | |
CN108595335B (zh) | 测试环境部署方法、部署装置及存储介质 | |
CN115828231A (zh) | 应用程序运行方法、装置、车辆以及存储介质 | |
CN115269117A (zh) | 一种资源创建方法、装置、计算机设备及存储介质 | |
CN115016862A (zh) | 基于Kubernetes集群的软件启动方法、装置、服务器及存储介质 | |
US20220261238A1 (en) | Method and system for deploying third-party application to microcontroller by means of edge assistance | |
CN115993979A (zh) | 配置转换方法、平滑升级方法、装置、设备及存储介质 | |
CN115344361A (zh) | 计算节点的管理方法及管理系统 |
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 |