CN115904407A - 镜像构建方法、系统及计算机可读存储介质 - Google Patents
镜像构建方法、系统及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115904407A CN115904407A CN202211369800.1A CN202211369800A CN115904407A CN 115904407 A CN115904407 A CN 115904407A CN 202211369800 A CN202211369800 A CN 202211369800A CN 115904407 A CN115904407 A CN 115904407A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- node
- image construction
- target
- information
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种镜像构建方法、系统及计算机可读存储介质,方法应用于镜像构建系统,该系统包括:控制节点、多个镜像构建节点,该系统中的各镜像构建节点对应于边缘计算系统中的各运行环境不同的边缘计算节点,镜像构建节点的运行环境与对应的边缘计算节点的运行环境相一致;控制节点获取待构建镜像的目标应用程序的镜像配置信息;镜像配置信息包括:目标应用程序的镜像构建信息、待构建镜像的目标运行环境信息;控制节点将镜像构建信息发送给目标运行环境信息对应的目标镜像构建节点;目标镜像构建节点获取目标应用程序的代码,进行镜像构建得到镜像。本申请提供的方案能够减少云端服务器的数量,降低镜像构建的构建成本。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种镜像构建方法、系统及计算机可读存储介质。
背景技术
随着计算机技术的不断发展,云计算得到了广泛应用。在云计算中,通常是所有数据都集中在云端服务器上处理,导致云端服务器的运算压力大、计算速度慢。为了缓解云端服务器的计算压力,可以采用边缘计算技术。边缘计算是指在靠近数据源头的用户端一侧设置边缘计算服务器,从而为用户端就近提供最近端服务。边缘计算场景中的应用程序由边缘计算服务器发起,能够给用户端产生更快的网络服务响应。在针对边缘计算场景的应用程序开发的过程中,需要持续不断地执行开发、部署、测试的过程,以开发出多种满足不同设备环境的应用程序,为了提高开发效率,开发人员可以将应用程序以及对应的依赖包,打包到一个可移植的镜像文件中,通过运行这个镜像文件,可以生成一个虚拟容器镜像,应用程序在这个虚拟容器镜像里运行,就如同运行在真实的服务器上一样,通过这样的方式对应用程序的运行时环境进行打包,使得应用的部署更加便捷、应用测试环境的搭建更加灵活。
相关技术中,开发人员通常是在云端对边缘计算场景中的应用程序集中式进行镜像构建,由于边缘计算场景的边缘运行环境往往并不相同,例如CPU架构、依赖库等并不相同,而镜像能否成功运行依赖于镜像构建时的构建环境与边缘运行环境是否相同,例如构建环境为X86 Inter CPU架构设备所构建的镜像,无法运行在边缘运行环境为ARM64 CPU架构的设备上。因此,在云端进行集中式镜像构建时,云端通常包括针对每个边缘运行环境的各个云端服务器。
上述方案由于需要云端提供大量服务器来分别针对不同边缘计算场景进行镜像构建,使得云端需要耗费大量的资源,镜像构建的构建成本较高。
发明内容
本申请提供了一种镜像构建方法、系统及计算机可读存储介质,能够减少云端服务器的数量,从而降低镜像构建的构建成本。具体方案如下。
第一方面,本申请实施例提供了一种镜像构建方法,应用于镜像构建系统,所述镜像构建系统包括:控制节点、多个镜像构建节点,所述镜像构建系统中的各所述镜像构建节点对应于边缘计算系统中的各运行环境不同的边缘计算节点,所述镜像构建节点的运行环境与对应的边缘计算节点的运行环境相一致;所述方法包括:
所述控制节点获取待构建镜像的目标应用程序的镜像配置信息;所述镜像配置信息包括:所述目标应用程序的镜像构建信息、所述待构建镜像的目标运行环境信息,所述镜像构建信息包括所述目标应用程序的应用信息,所述目标运行环境信息为用于运行所述待构建镜像的目标边缘计算节点的运行环境信息;
所述控制节点将所述镜像构建信息发送给所述目标运行环境信息对应的目标镜像构建节点;
所述目标镜像构建节点基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建,得到所述目标应用程序对应的镜像。
第二方面,本申请实施例提供了一种镜像构建系统,所述系统包括:
获取单元,应用于所述镜像构建系统中的控制节点,所述获取单元用于获取待构建镜像的目标应用程序的镜像配置信息;所述镜像配置信息包括:所述目标应用程序的镜像构建信息、所述待构建镜像的目标运行环境信息,所述镜像构建信息包括所述目标应用程序的应用信息,所述目标运行环境信息为用于运行所述待构建镜像的目标边缘计算节点的运行环境信息;
发送单元,应用于所述镜像构建系统中的所述控制节点,所述发送单元用于将所述镜像构建信息发送给所述目标运行环境对应的目标镜像构建节点,其中,所述镜像构建系统中包括多个镜像构建节点,所述镜像构建系统中的各所述镜像构建节点对应于边缘计算系统中的各运行环境不同的边缘计算节点,所述镜像构建节点的运行环境与对应的边缘计算节点的运行环境相一致;
构建单元,应用于所述镜像构建系统中的所述目标镜像构建节点,所述构建单元用于基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建,得到所述目标应用程序对应的镜像。
第三方面,本申请还提供了一种镜像构建系统,所述镜像构建系统包括:控制节点、多个镜像构建节点,所述镜像构建系统中的各所述镜像构建节点对应于边缘计算系统中的各运行环境不同的边缘计算节点,所述镜像构建节点的运行环境与对应的边缘计算节点的运行环境相一致;
所述控制节点,用于获取待构建镜像的目标应用程序的镜像配置信息,将所述镜像构建信息发送给所述目标运行环境对应的目标镜像构建节点;所述镜像配置信息包括:所述目标应用程序的镜像构建信息、所述待构建镜像的目标运行环境信息,所述镜像构建信息包括所述目标应用程序的应用信息,所述目标运行环境信息为用于运行所述待构建镜像的目标边缘计算节点的运行环境信息;
所述目标镜像构建节点,用于基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建,得到所述目标应用程序对应的镜像。
第四方面,本申请实施例还提供了一种计算机可读存储介质,存储有数据处理程序,该程序被处理器运行,执行如第一方面任一项所述的方法。
与现有技术相比,本申请具有以下优点:
本申请提供的镜像构建方法,通过控制节点获取待构建镜像的目标应用程序的镜像配置信息,镜像配置信息包括:目标应用程序的镜像构建信息、待构建镜像的目标运行环境信息,镜像构建信息包括所述目标应用程序的应用信息,控制节点再将镜像构建信息发送给目标运行环境对应的目标镜像构建节点,目标镜像构建节点基于镜像构建信息获取目标应用程序的代码,并根据代码进行镜像构建,得到目标应用程序对应的镜像。本申请实施例中,由于目标运行环境信息为用于运行待构建镜像的目标边缘计算节点的运行环境信息,即待构建镜像是为目标边缘计算节点构建的,而一个边缘计算节点对应有一个与之运行环境相一致的镜像构建节点,这样,当开发人员想要构建目标边缘计算节点能够运行的镜像时,使控制节点获取到该目标边缘计算节点的运行环境信息,即可在与目标边缘计算节点的运行环境一致的目标镜像构建节点上构建目标应用程序对应的镜像,所构建出的镜像也就能够在目标边缘计算节点上运行。
可见,本申请提供的镜像构建方法为各边缘计算节点提供与之运行环境相同的各镜像构建节点,并提供统一的控制节点来控制镜像构建,这样,在进行镜像构建时,控制节点可以根据镜像配置信息,选择对应的镜像构建节点进行分布式镜像构建,使得云端无需提供大量的服务器进行镜像构建,减轻了云端的压力,进而降低了镜像构建的构建成本。
此外,本申请实施例中通过提供与各边缘计算节点相同运行环境的各镜像构建节点进行镜像构建,使得在对应用程序进行镜像构建时无需再根据待构建镜像实际运行节点所对应的CPU架构、依赖库、内核版本等来模拟对应运行环境进行镜像构建,提高了镜像构建的效率。
附图说明
图1是本申请实施例提供的镜像构建方法的应用场景架构图;
图2是本申请实施例提供的镜像构建方法的流程图;
图3是本申请实施例提供的镜像构建系统的另一架构图;
图4是本申请实施例提供的镜像构建系统的一例结构框图;
图5是本申请实施例提供的镜像构建系统的另一例结构框图;
图6是本申请实施例提供的镜像构建系统的数据的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
需要说明的是,本申请的权利要求书、说明书及附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,并不用于描述特定的顺序或先后次序。这样使用的数据在适当情况下是可以互换的,以便于本文所描述的本申请的实施例,能够以除了在本文图示或描述的内容以外的顺序实施。此外,术语“包括”、“具有”以及他们的变形形式,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
随着计算机技术的不断发展,云计算得到了广泛应用。在云计算中,通常是所有数据都集中在云端服务器上处理,导致云端服务器的运算压力大、计算速度慢。为了缓解云端服务器的计算压力,可以采用边缘计算技术。边缘计算是指在靠近数据源头的用户端一侧设置边缘计算服务器,从而为用户端就近提供最近端服务。边缘计算场景中的应用程序由边缘计算服务器发起,能够给用户端产生更快的网络服务响应。在针对边缘计算场景的应用程序开发的过程中,需要持续不断地执行开发、部署、测试的过程,以开发出多种满足不同设备环境的应用程序,为了提高开发效率,开发人员可以将应用程序以及对应的依赖包,打包到一个可移植的镜像文件中,通过运行这个镜像文件,可以生成一个虚拟容器镜像,应用程序在这个虚拟容器镜像里运行,就如同运行在真实的服务器上一样,通过这样的方式对应用程序的运行时环境进行打包,使得应用的部署更加便捷、应用测试环境的搭建更加灵活。
相关技术中,开发人员通常是在云端对边缘计算场景中的应用程序集中式进行镜像构建,由于边缘计算场景的边缘运行环境往往并不相同,例如CPU架构、依赖库等并不相同,而镜像能否成功运行依赖于镜像构建时的构建环境与边缘运行环境是否相同,例如构建环境为X86 Inter CPU架构设备上的镜像,无法运行在边缘运行环境为ARM64 CPU架构的设备上。
因此,在云端进行集中式镜像构建时,云端通常包括针对每个边缘运行环境的各个云端服务器。
上述方案由于需要云端提供大量服务器来分别针对不同边缘计算场景进行镜像构建,使得云端需要耗费大量的资源,提高了镜像构建的构建成本。
或者,开发人员在本地对各边缘计算场景中的应用程序进行镜像构建,为了使构建完成的镜像可以运行在不同CPU架构的机器上,开发人员通常需要使用QEMU进行指令翻译,模拟各种边缘运行环境来进行镜像构建,通过这种方式进行镜像构建也会导致镜像构建的成本较高,镜像构建的性能较低。
基于上述原因,为了能够减少云端服务器的数量,降低镜像构建的构建成本,本申请第一实施例提供了一种镜像构建方法,该方法应用于镜像构建系统,该镜像构建系统包括:控制节点、多个镜像构建节点,镜像构建系统中的各镜像构建节点对应于边缘计算系统中的各运行环境不同的边缘计算节点,镜像构建节点的运行环境与对应的边缘计算节点的运行环境相一致。
为了更清楚地展示本申请,以下介绍本申请实施例中提供的镜像构建方法的应用场景。
如图1所示,是本申请实施例提供的镜像构建方法的应用场景架构图,该应用场景可以镜像构建系统101、边缘计算系统104以及云端服务器,其中,镜像构建系统101包括控制节点102,多个镜像构建节点103,边缘计算系统104可以包括多个边缘计算集群,一个边缘计算集群中可以包括至少一个边缘计算节点,其中,边缘计算系统104中的各边缘计算节点与云端服务器通过通信网络进行连接,边缘计算系统104中的一个边缘计算集群对应于镜像构建系统101中的一个镜像构建节点,一个边缘计算集群中的所有边缘计算节点的运行环境相同,相对应的边缘计算集群和镜像构建节点的运行环境相一致,控制节点102与多个镜像构建节点103之间通过通信网络相连接,控制节点102与边缘计算系统104之间也通过通信网络相连接。控制节点102可以是云端服务器,在云端提供计算、存储等服务,控制节点102也可以是一个单独为边缘计算系统中各边缘计算节点提供镜像构建相关服务的节点,包括但不限于台式电脑、笔记本电脑、手机、平板电脑、服务器、终端设备等;镜像构建节点103可以是在边缘提供计算、存储等功能的服务器等设备,边缘计算节点包括但不限于台式电脑、笔记本电脑、手机、平板电脑、服务器、终端设备等,通信网络可以是无线网络或者有线网络,比如无线网络为无线局域网(WLAN)、局域网(LAN)、蜂窝网络、2G网络、3G网络、4G网络、5G网络等。控制节点102与多个镜像构建节点103或多个边缘计算节点可以通过不同的通信网络相互连接。
可以理解的,上述应用场景示例仅仅是本申请实施例提供的镜像构建方法的一个应用场景实施例,提供这个应用场景实施例的目的是便于理解本申请提供的镜像构建方法,而并非用于限定本申请提供的方法。具体涉及到的方法介绍,请参照以下实施例。
如图2所示,本申请实施例提供的镜像构建方法包括以下步骤201~步骤203。
步骤201:控制节点获取待构建镜像的目标应用程序的镜像配置信息。
其中,镜像配置信息包括:目标应用程序的镜像构建信息、待构建镜像的目标运行环境信息,镜像构建信息包括目标应用程序的应用信息;目标运行环境信息为用于运行所述待构建镜像的目标边缘计算节点的运行环境信息。
在具体实施中,开发人员在为目标应用程序进行镜像构建时,可以通过任一节点访问镜像构建系统中的控制节点,任一节点可以是开发人员的本地节点,也可以是本申请镜像构建系统中多个镜像构建节点中的一个节点。控制节点可以是与边缘计算系统中各边缘计算节点进行网络通信的云端服务器,也可以是一个单独为边缘计算系统中各边缘计算节点提供镜像构建相关服务的节点,具体的,控制节点上有大量的组件,可以展示镜像配置页面,也可以提供平台化管理、用户权限管理、项目管理等服务,这样,开发人员可以在镜像配置页面上选择镜像配置信息,具体可以是目标应用程序的镜像构建信息和待构建镜像的目标运行环境信息,其中目标应用程序的镜像构建信息包括目标应用程序的应用信息。目标应用程序的应用信息可以是目标应用程序的代码,该代码可以是开发人员本地保存的代码,在这种情况下,开发人员通过访问控制节点来选择镜像配置信息时,可以将本地保存的代码从本地节点上发送至控制节点。
可以理解的,待构建镜像的目标运行环境信息为待构建镜像实际构建完成后要在哪个边缘计算节点上进行运行的边缘计算节点的运行环境信息,运行环境可以包括但不限于目标运行节点的节点标识、目标运行节点的CPU架构、依赖库、GPU、内核版本、操作系统类型、数据库类型等。其中,目标运行节点的节点标识可以是目标运行节点的地区、项目、部门等标识信息;CPU是中央处理器,电子设备中的核心配件,CPU架构可以包括但不限于ARM架构、x86系列/Atom处理器、MIPS处理器、PowerPC处理器等;内核版本是指相应软件内核在历次修改或增加相应的功能后的版本编号,内核主要是指操作系统或者相应软件中最核心的功能框架部分,它是实现该软件所有功能的基础;操作系统是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合,目前流行的操作系统类型主要有Android、BSD、iOS、Linux、Mac OS X、Windows、Windows Phone和z/OS等;数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
这样,控制节点可以获取到包含目标应用程序的应用信息和待构建镜像的目标运行信息的镜像配置信息,针对不同的待构建镜像的不同镜像配置信息可以统一发送至控制节点。
步骤202:控制节点将镜像构建信息发送给目标运行环境信息对应的目标镜像构建节点。
可以理解的,目标镜像构建节点的运行环境与运行待构建镜像的目标边缘计算节点的运行环境一致,这样,基于目标镜像构建节点构建完成的镜像可以在目标边缘计算节点上正常运行。具体的,可以准备一台电子设备作为一种边缘运行环境的边缘计算节点的镜像构建节点,即同一种边缘运行环境的多个边缘计算节点对应一个镜像构建节点,当针对一个边缘计算节点构建目标应用程序的镜像时,控制节点可以为该边缘计算节点选择对应的相同运行环境的镜像构建节点进行镜像构建。
通常,一个边缘计算集群中各边缘计算节点的运行环境相同,即一个边缘计算集群对应同一种运行环境,但不同的边缘计算集群所对应的运行环境可能相同,也可能不同,当两个边缘计算集群所对应的运行环境相同时,可以为这两个边缘计算集群配置同一个镜像构建节点,来对两个边缘计算集群中的各边缘计算节点进行镜像构建,但大多数情况下不同的边缘计算集群所对应的运行环境并不相同,本申请实施例中以不同的边缘计算集群所对应的运行环境不同进行示例。
作为一种实施方式,开发人员在为边缘计算集群准备镜像构建节点时,可以为镜像构建节点添加环境标识,这样,在控制节点根据镜像配置信息为边缘计算节点选择镜像构建节点时,可以通过镜像构建节点的环境标识来快速找到对应的镜像构建节点,从而提高镜像构建的效率。具体的,开发人员可以将边缘计算集群的运行环境属性添加到镜像构建节点上,添加了环境标识的镜像构建节点可以认为是专为该运行环境属性对应的边缘计算集群进行镜像构建的节点,运行环境属性是将实际边缘计算场景进行命名打标签,可以包括但不限于地区、部门、项目等信息。
具体实施方式中,镜像构建节点的环境标识可以与镜像配置信息中的目标运行环境信息相一致,例如当边缘集群1的镜像构建节点的环境标识为A城市-B项目时,为边缘集群1中的某一个镜像构建节点所构建的镜像对应的镜像配置信息中的目标运行环境信息也为A城市-B项目;当边缘集群1的镜像构建节点的环境标识为ARM架构CPU时,为边缘集群1中的某一个镜像构建节点所构建的镜像对应的镜像配置信息中的目标运行环境信息也为ARM架构CPU。在控制节点上,可以部署有控制节点所对应的各边缘计算节点的各目标运行信息,这样,在进行镜像构建时,当开发人员进行镜像配置信息的选择时,选择了某一个目标运行信息并提交镜像配置信息,控制节点可以快速根据镜像配置信息中的待构建镜像的目标运行环境信息,将镜像构建在对应环境标识的镜像构建节点上,无需在云端提供服务器对待构建镜像进行镜像构建,降低了云端的资源耗费,同时提高了镜像构建的效率。
步骤203:目标镜像构建节点基于镜像构建信息获取目标应用程序的代码,并根据所述代码进行镜像构建,得到所述目标应用程序对应的镜像。
当镜像配置信息中目标应用程序的代码为本地保存的代码,目标镜像构建节点可以访问保存代码的节点来拉取代码,也可以是控制节点在接收镜像配置信息的选择时,获取了目标应用程序的代码,并将代码发送给目标镜像构建节点;当代码存储在云端服务器时,镜像构建节点可以访问云端服务器,来拉取代码。对此本申请实施例不具体限定。
在镜像构建节点获取了目标应用程序的代码后,基于该代码进行镜像构建。在具体实施方式中,镜像构建节点可以具有容器运行环境,在进行镜像构建时,可以采用dockerin docker方案,docker in docker为在容器内仅部署docker命令行工具(作为客户端),实际执行交由宿主机内的docker-engine(服务器),docker in docker实质上是将host的docker.sock挂载到容器中,实现容器内docker操作宿主机docker的目的。
容器是一种更轻量级,更灵活的虚拟化处理方式,容器技术对进程进行封装隔离,属于操作系统层面的虚拟化技术。容器因其轻量灵活的优点,也逐渐应用于边缘计算领域。目前,Docker是最为主流的一个开源的应用容器引擎,让开发者可以将应用程序以及对应的依赖包,打包到一个可移植的镜像文件中,通过运行这个镜像文件,可以生成一个虚拟容器镜像,应用程序在这个虚拟容器镜像里运行,就如同运行在真实的服务器上一样,通过这样的方式对应用程序的运行时环境进行打包,使得应用的部署更加便捷、应用测试环境的搭建更加灵活。应用程序打包成容器镜像后,可以运行在任何环境中,包括:物理服务器、虚拟机、公有云、私有云等。
这样,镜像构建节点拉取代码、代码编译以及构建镜像均可以在docker容器内执行,无需依赖其他持续集成工具,避免了复杂的工具配置过程,从而提高了镜像构建的效率。
可选的,镜像配置信息可以包括Dockerfile文件信息,Dockerfile文件是一个用来构建镜像的文本文件,文本内容包含了构建镜像所需要的指令和说明。这样,镜像构建节点先对目标应用程序的代码进行编译,生成代码编译结果文件,再基于代码编译结果文件和Dockerfile文件生成目标应用程序的镜像。
具体的,Dockerfile文件信息可以有以下两种方式。方式一:开发人员可以预先在镜像构建节点上创建Dockerfile文件来定制镜像,在Dockerfile文件的存放目录下,执行docker build命令来构建镜像,在这种情况下,镜像配置信息中的Dockerfile文件信息具体可以是Dockerfile路径。方式二:开发人员可以在镜像配置信息中定义Dockerfile文件的内容,即Dockerfile文件信息具体可以是Dockerfile文件的详细内容,这样镜像构建节点可以根据镜像配置信息中的Dockerfile文件信息,生成构建镜像所需的Dockerfile文件,进而进行镜像构建。
如表1所示,是本申请实施例示例性提供的几种Dockerfile常用指令及简介。
表1.几种Dockerfile常用指令及简介
本申请提供的镜像构建方法,通过控制节点获取待构建镜像的目标应用程序的镜像配置信息,镜像配置信息包括:目标应用程序的镜像构建信息、待构建镜像的目标运行环境信息,镜像构建信息包括所述目标应用程序的应用信息,控制节点再将镜像构建信息发送给目标运行环境对应的目标镜像构建节点,目标镜像构建节点基于镜像构建信息获取目标应用程序的代码,并根据代码进行镜像构建,得到目标应用程序对应的镜像。本申请实施例中,由于目标运行环境信息为用于运行待构建镜像的目标边缘计算节点的运行环境信息,即待构建镜像是为目标边缘计算节点构建的,而一个边缘计算节点对应有一个与之运行环境相一致的镜像构建节点,这样,当开发人员想要构建目标边缘计算节点能够运行的镜像时,使控制节点获取到该目标边缘计算节点的运行环境信息,即可在与目标边缘计算节点的运行环境一致的目标镜像构建节点上构建目标应用程序对应的镜像,所构建出的镜像也就能够在目标边缘计算节点上运行。
可见,本申请提供的镜像构建方法为各边缘计算节点提供与之运行环境相同的各镜像构建节点,并提供统一的控制节点来控制镜像构建,这样,在进行镜像构建时,控制节点可以根据镜像配置信息,选择对应的镜像构建节点进行分布式镜像构建,使得云端无需提供大量的服务器进行镜像构建,减轻了云端的压力,进而降低了镜像构建的构建成本。
此外,本申请实施例中通过提供与各边缘计算节点相同运行环境的各镜像构建节点进行镜像构建,使得在对应用程序进行镜像构建时无需再根据待构建镜像实际运行节点所对应的CPU架构、依赖库、内核版本等来模拟对应运行环境进行镜像构建,提高了镜像构建的效率。
可选的,如图3所示,是本申请实施例提供的镜像构建系统的另一架构图,步骤201中镜像配置信息中的目标应用程序的应用信息还可以包括目标应用程序的代码存储地址,则镜像构建系统101中还可以包括用于存储各应用程序的代码的代码存储节点301。
可以理解的,代码存储节点可以是镜像构建系统中的控制节点,也可以是与镜像构建系统中的各镜像构建节点103具有通信网络连接的一个节点,本实施例不具体限定。
代码存储节点上存储有各应用程序的代码,即代码存储节点上部署有代码仓库来存储各应用程序的代码。其中,GitHub/GitLab是目前主流的代码仓库,GitHub是一个面向开源及私有软件项目的托管平台,随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法;Gitlab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。代码存储节点上代码仓库还可以是其它类型的代码仓库,本申请不具体限定。
这样,镜像构建节点可以根据镜像配置信息中的代码存储地址,从对应的代码存储节点上快速拉取目标应用程序的代码。具体的,镜像配置信息中的代码存储地址也可以是代码存储节点上的代码仓库信息,包括但不限于代码存储节点上代码仓库的名称、代码仓库的地址路径等。
可选的,步骤201中镜像配置信息中的目标应用程序的应用信息还可以包括目标应用程序的待构建镜像的目标分支。
可以理解的,目标分支用以指示应用程序所对应的代码分支,镜像构建节点根据镜像配置信息中的目标分支,从代码存储节点上部署的代码仓库中拉取对应的代码分支,根据所拉取的代码分支构建该分支对应的镜像。这样,开发人员可以根据需求构建对应的镜像。
可选的,在步骤201之前,本申请提供的镜像构建方法还可以包括步骤201-1。
步骤201-1:镜像构建系统中的第一镜像构建节点获取待构建镜像的目标应用程序的镜像配置信息,并将镜像配置信息发送给镜像构建系统中的控制节点。
作为一种实施方式,开发人员可以通过多个镜像构建节点中的一个镜像构建节点(第一镜像构建节点)访问控制节点来选择镜像配置信息(即发布镜像构建任务),此时,第一镜像构建节点并不一定是构建目标应用程序的待构建镜像的目标镜像构建节点。换言之,开发人员可以通过镜像构建节点中的任一节点来向控制节点发送其他镜像构建节点所对应的边缘计算节点进行镜像构建时的镜像配置信息,这样,开发人员可以在允许访问控制节点的情况下,进行各种不同镜像配置信息的镜像构建,使得镜像构建更为灵活。
可选的,在步骤203之前,本申请提供的镜像构建方法还包括如下步骤:
步骤203-1:第一镜像构建节点获取用于拉取目标应用程序的代码的目标密钥对,并将目标密钥对中的目标公钥发送给代码存储节点,镜像构建信息还包括目标密钥对中的目标私钥;目标镜像构建节点将镜像构建信息中的目标私钥与代码存储地址送给代码存储节点;代码存储节点在检测到镜像构建信息中的目标私钥与目标公钥相匹配时,从代码存储地址对应的存储位置获取目标应用程序的代码,并将目标应用程序的代码发送给目标镜像构建节点;目标镜像构建节点接收目标应用程序的代码。
可以理解的,在本申请实施例中,为了保障镜像构建过程中的数据隐私,使得目标应用程序的代码不会被拦截、泄露或篡改,在进行镜像构建时,可以使用密钥对来将代码存储节点上的代码仓库与镜像构建节点进行配对,当配对成功时,镜像构建节点可以从云端服务器上的代码仓库拉取目标应用程序的代码,进而进行镜像构建。
本申请实施例中以SSH密钥对进行示例,SSH(英文全称Secure Shell,中文翻译为安全外壳协议)是建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,利用SSH协议可以有效防止远程管理过程中的信息泄露问题,SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞,几乎所有UNIX平台,包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix等平台,都可运行SSH。SSH对数据加密的方式主要有两种:对称加密和非对称加密,对称加密指加密解密使用同一套秘钥,非对称加密指的是加密和解密使用不同的密钥,即公钥和私钥,由公钥无法推出私钥,因此非对称加密使得数据的传输更加安全,保障了数据隐私。此外,SSH密钥对还可以加快数据传输的速度,使得代码拉取更加安全高效。
一种实施方式中,开发人员可以在准备好边缘计算集群的镜像构建节点时,生成一对SSH密钥对发送并保存在控制节点上,另一用户通过第一构建节点上进行镜像配置信息的选择时,可以拉取目标应用程序的密钥对,将密钥对中的私钥添加进镜像配置信息中,并将公钥发送给代码存储节点上的代码仓库中。这样,镜像构建节点基于镜像配置信息从代码存储节点上的代码仓库中拉取目标应用程序的代码时,可以由代码存储节点先检测镜像配置信息中的私钥是否与代码存储节点上的公钥相匹配,当私钥和公钥相匹配时,代码存储节点可以将目标应用程序的代码/代码分支发送给目标镜像构建节点,用以进行目标应用程序的镜像构建。
另一种实施方式中,在开发人员准备好边缘计算集群的镜像构建节点时,可以生成一对SSH密钥对,将公钥上传到代码存储节点上的代码仓库,私钥添加到镜像构建节点上中,这样,控制节点根据镜像配置信息选择对应的镜像构建节点进行镜像构建时,当检测到镜像构建节点上的私钥在代码存储节点上的代码仓库中存在能与之配对的公钥时,该镜像构建节点就具备了从云端服务器上的代码仓库中拉取代码的权限,可以从代码仓库中拉取代码。
在具体实施方式中,GitHub/GitLab代码仓库中提供有Deploy Key,可以将SSH公钥添加到代码仓库的Deploy Key中,以进行代码拉取。
通过公钥和私钥的配对,在镜像构建节点进行代码拉取时,可以有效降低传统网络明文通信中数据被拦截/窃取/篡改等风险,保障了数据隐私。
可选的,如图3所示,镜像构建系统101中还可以包括镜像存储节点302,本申请提供的镜像构建方法还可以包括以下步骤:
目标镜像构建节点将目标应用程序对应的镜像存储在镜像存储节点,并为存储的目标应用程序对应的镜像添加运行环境的标识。
步骤201-1可以按照以下步骤实现:
第一镜像构建节点在从镜像存储节点中未查找到目标镜像时,获取待构建镜像的目标应用程序的镜像配置信息,目标镜像对应的运行环境与待构建镜像的运行环境相一致。
可以理解的,镜像存储节点可以是镜像构建系统中的控制节点,也可以是与镜像构建系统中的各镜像构建节点103具有通信网络连接的一个节点,本实施例不具体限定。
镜像存储节点上存储有本申请实施例提供的镜像构建系统所构建完成的镜像,并为各镜像添加对应的运行环境的标识,以使得镜像构建完成后,可以将构建好的镜像上传至镜像存储节点,此外用户可以从镜像存储节点上下载所需运行环境的各镜像。因此,镜像配置信息中可以包括镜像存储节点地址,这样,构建完成的镜像可以快速上传至对应的镜像存储节点,也可以从镜像存储节点查找各镜像。
可以理解的,开发人员在准备镜像构建节点时,可以将镜像存储节点的地址添加至镜像构建节点上,这样,镜像构建节点在构建完成的目标应用程序的镜像时,可以快速将该镜像上传到镜像存储节点。
一种实施方式中,当开发人员通过第一镜像构建节点访问控制节点对待构建镜像进行镜像配置信息的选择时,开发人员可以先从镜像存储节点中查找看是否存在其他用户已经构建完成的目标镜像,其中,目标镜像是与待构建镜像的运行环境相同的同一个应用程序对应的镜像。当查找到镜像存储节点上存在有目标镜像时,下载对应的目标镜像,当不存在目标镜像时,开发人员通过第一镜像构建节点向控制节点提交镜像配置信息进行镜像构建。
另一种实施方式中,可以在开发人员提交了镜像配置信息后,由控制节点自主查找镜像存储节点上是否对应有目标镜像。当查找到镜像存储节点上存在目标镜像时,控制节点可以反馈第一查找信息,用以指示镜像存储节点上存在目标镜像,并显示目标镜像下载控件,使得用户可以下载目标镜像。当在镜像存储节点上未查找到目标镜像时,控制节点根据镜像配置信息选择对应的镜像构建节点,进行镜像构建。
通过这一技术手段,可以使得镜像存储节点上存储的镜像具有唯一性,节省了镜像存储节点的存储空间,并且镜像存储节点对构建完成的镜像进行集中式存储管理,这样当存在已经构建完成的目标镜像时,开发人员可以直接下载镜像而无需再进行镜像构建,提高了镜像构建的效率。
此外,用户可以知晓哪些边缘运行环境的镜像已经构建完成,进而也可以针对没有进行镜像构建的镜像的运行环境,设置不同的镜像配置信息,来生成不同的运行环境的镜像。
可选的,镜像配置信息中还可以包括镜像构建失败策略。镜像构建失败策略为用户所设定的镜像构建失败时所采取的措施,
步骤203可以按照如下步骤实现:
基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建;当检测到镜像构建成功时,得到所述目标应用程序对应的镜像;当检测到镜像构建失败时,执行基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建的步骤,直至在镜像构建失败次数大于或等于所述预设次数时,停止镜像构建。
可以理解的,在进行镜像构建时,可能由于以下几种原因导致镜像构建失败:代码存储节点与镜像构建节点之间的通信网络中断,导致镜像构建节点从代码存储节点上的代码仓库中拉取用于构建镜像的应用程序的代码失败;开发人员在选择镜像配置信息时某个信息选择错误导致镜像构建失败。当镜像构建失败时可以根据镜像配置信息中的镜像构建失败策略来进行相应后续步骤,镜像构建失败策略具体可以是开发人员在镜像配置信息中设置预设次数,当检测到镜像构建失败时,可以重新执行镜像构建所需要的步骤:基于镜像构建信息获取目标应用程序的代码,并根据代码进行镜像构建;当检测到镜像构建成功时,得到所述目标应用程序对应的镜像。直至在镜像构建失败次数大于或等于开发人员所设置的预设次数时,停止镜像构建。此外,镜像构建节点还可以反馈提示消息,用以提示镜像构建失败的原因,这样,开发人员可以基于此做出相应的调整,便于更高效地解决问题,进一步保证镜像构建的效率。
通过这一技术手段,在镜像构建任务中加入了重试机制,可以使得镜像构建的成功率大为提升,进而提升了用户体验。
可选的,本申请提供的镜像构建方法还可以包括以下步骤:
目标镜像构建节点将构建日志上传到控制节点,构建日志用于记录构建待构建镜像的过程。
作为一种实施方式,镜像构建过程中产生的构建日志可以持久化保存至镜像构建节点中,数据持久化是指将数据从瞬时状态转化为持久状态,永久的保存下来,例如:内存中的数据掉电会消失,是无法永久保存的,将内存中的数据保存到文件存储系统或者数据库中,可以使得数据永久保存实现数据持久化。镜像构建节点可以将构建日志发送至控制节点进行展示,使得用户可以查看已经构建完成的镜像所对应的镜像构建日志。
通过这一技术手段,用户可以知晓镜像构建过程中的各个步骤的具体细节,可以明确镜像构建过程中每个步骤的失败次数以及失败原因。
可选的,本申请提供的镜像构建方法还可以包括以下步骤:
控制节点获取各所述镜像构建节点是否正常运行的状态。
步骤202可以先按照以下步骤实现:
控制节点在确定目标运行环境信息对应的目标镜像构建节点运行正常的情况下,将镜像构建信息发送给目标运行环境信息对应的目标镜像构建节点。
可以理解的,开发人员在准备好镜像构建节点后,该镜像构建节点可以自主检测自身是否处于正常运行状态,并将检测结果发送至控制节点。具体的,镜像构建节点可以按照预设周期检测自身是否处于正常运行状态,并按照预设周期向控制节点发送镜像构建节点是否能够正常运行的检测信息;本申请也可以由控制节点检测与之通信的多个镜像构建节点上是否能够正常运行。对此本申请实施例不具体限定。
作为一种实施方式,当检测到镜像构建节点无法正常运行时,即该镜像构建节点无法正常进行镜像构建,镜像构建节点可以反馈提示消息,用以指示该镜像构建节点处于非运行状态,不接收镜像配置信息无法进行镜像构建,也可以由控制节点发送通知消息,用以指示该镜像构建节点处于非运行状态无法进行镜像构建。这样,开发人员在进行镜像构建时,可以知晓该镜像构建节点对应的运行环境无法进行镜像构建,进而不会发布针对该运行环境的镜像配置信息(镜像构建任务)。此外,基于此提示消息或通知消息,开发人员还可以准备能够正常运行的该运行环境对应的镜像构建节点用以进行对应的镜像构建。
可选的,镜像配置信息中还可以包括镜像名称,镜像名称为所要构建的镜像的名称。
与本申请第一实施例提供的镜像构建方法相对应的,本申请第二实施例还提供了镜像构建系统,如图4所示,所述系统包括:
获取单元401,应用于所述镜像构建系统中的控制节点,所述获取单元401用于获取待构建镜像的目标应用程序的镜像配置信息;所述镜像配置信息包括:所述目标应用程序的镜像构建信息、所述待构建镜像的目标运行环境信息,所述镜像构建信息包括所述目标应用程序的应用信息,所述目标运行环境信息为用于运行所述待构建镜像的目标边缘计算节点的运行环境信息;
发送单元402,应用于所述镜像构建系统中的所述控制节点,所述发送单元402用于将所述镜像构建信息发送给所述目标运行环境对应的目标镜像构建节点,其中,所述镜像构建系统中包括多个镜像构建节点,所述镜像构建系统中的各所述镜像构建节点对应于边缘计算系统中的各运行环境不同的边缘计算节点,所述镜像构建节点的运行环境与对应的边缘计算节点的运行环境相一致;
构建单元403,应用于所述镜像构建系统中的所述目标镜像构建节点,所述构建单元403用于基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建,得到所述目标应用程序对应的镜像。
可选的,所述应用信息包括:所述目标应用程序的代码存储地址,所述镜像构建系统还包括:用于存储各应用程序的代码的代码存储节点;
如图5所示,所述镜像构建系统101还包括代码拉取单元501,应用于所述镜像构建系统中的所述目标镜像构建节点,所述代码拉取单元501用于基于所述代码存储地址,从所述代码存储节点中拉取所述目标应用程序的代码。
可选的,所述镜像构建系统还包括密钥拉取单元502,应用于所述镜像构建系统中的第一镜像构建节点,所述密钥拉取单元502用于拉取所述目标应用程序的代码的目标密钥对,并将所述目标密钥对中的目标公钥发送给所述代码存储节点;
所述镜像构建系统还包括处理单元503,应用于所述镜像构建系统中的目标镜像构建节点,所述处理单元503用于将所述镜像构建信息中的所述目标私钥与所述代码存储地址送给所述代码存储节点;
所述镜像构建系统还包括检测单元504,应用于所述镜像构建系统中的所述代码存储节点,所述检测单元504用于在检测到所述镜像构建信息中的目标私钥与所述目标公钥相匹配时,从所述代码存储地址对应的存储位置获取所述目标应用程序的代码,并将所述目标应用程序的代码发送给所述目标镜像构建节点。
可选的,所述镜像构建系统还包括:镜像存储节点;
所述镜像构建系统还包括存储单元505,应用于所述镜像构建系统中的所述目标镜像构建节点,所述存储单元505用于将所述目标应用程序对应的镜像存储在所述镜像存储节点,并为存储的所述目标应用程序对应的镜像添加运行环境的标识;
所述镜像构建系统还包括查找单元506,应用于所述镜像构建系统中的所述第一镜像构建节点,所述查找单元506用于在从所述镜像存储节点中未查找到目标镜像时,获取待构建镜像的目标应用程序的镜像配置信息,所述目标镜像对应的运行环境与待构建镜像的运行环境相一致。
可选的,所述镜像构建系统还包括上传单元507,应用于所述镜像构建系统中的所述目标镜像构建节点,所述上传单元507用于将构建日志上传到所述控制节点,所述构建日志用于记录构建所述待构建镜像的过程。
可选的,所述获取单元401还用于获取各所述镜像构建节点是否正常运行的状态;
所述发送单元402还用于在确定所述目标运行环境信息对应的目标镜像构建节点运行正常的情况下,将所述镜像构建信息发送给所述目标运行环境信息对应的目标镜像构建节点。
与本申请第一实施例提供的镜像构建方法相对应的,本申请第三实施例还提供了一种镜像构建系统101。如图1所示,所述系统包括:控制节点102、多个镜像构建节点103,所述镜像构建系统101中的各所述镜像构建节点103对应于边缘计算系统104中的各运行环境不同的边缘计算节点,所述镜像构建节点的运行环境与对应的边缘计算节点的运行环境相一致;
如图1和图5所示,所述控制节点102,用于获取待构建镜像的目标应用程序的镜像配置信息,将所述镜像构建信息发送给所述目标运行环境对应的目标镜像构建节点508;所述镜像配置信息包括:所述目标应用程序的镜像构建信息、所述待构建镜像的目标运行环境信息,所述镜像构建信息包括所述目标应用程序的应用信息,所述目标运行环境信息为用于运行所述待构建镜像的目标边缘计算节点的运行环境信息;
所述目标镜像构建节点508,用于基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建,得到所述目标应用程序对应的镜像。
可选的,所述应用信息包括:所述目标应用程序的代码存储地址,如图3所示,所述镜像构建系统还包括:用于存储各应用程序的代码的代码存储节点301;
所述镜像构建系统中的所述目标镜像构建节点508,用于基于所述代码存储地址,从所述代码存储节点中拉取所述目标应用程序的代码。
可选的,所述应用信息还包括:所述目标应用程序的待构建镜像的目标分支;
所述镜像构建系统中的所述目标镜像构建节点508,用于从所述代码存储节点301中拉取所述目标应用程序的所述目标分支对应的代码。
可选的,所述镜像构建系统中的第一镜像构建节点509,用于获取待构建镜像的目标应用程序的镜像配置信息,并将所述镜像配置信息发送给所述镜像构建系统中的所述控制节点102。
可选的,所述镜像构建系统中的第一镜像构建节点509还用于,获取用于拉取所述目标应用程序的代码的目标密钥对,并将所述目标密钥对中的目标公钥发送给所述代码存储节点301;
所述镜像构建信息还包括:所述目标密钥对中的目标私钥;
所述镜像构建系统中的目标镜像构建节点508还用于,将所述镜像构建信息中的所述目标私钥与所述代码存储地址送给所述代码存储节点301;
所述镜像构建系统中的代码存储节点301用于,在检测到所述镜像构建信息中的目标私钥与所述目标公钥相匹配时,从所述代码存储地址对应的存储位置获取所述目标应用程序的代码,并将所述目标应用程序的代码发送给所述目标镜像构建节点508。
可选的,所述目标镜像构建节点508还用于,将所述目标应用程序对应的镜像存储在所述镜像存储节点302,并为存储的所述目标应用程序对应的镜像添加运行环境的标识;
所述第一镜像构建节点509还用于,在从所述镜像存储节点302中未查找到目标镜像时,获取待构建镜像的目标应用程序的镜像配置信息,所述目标镜像对应的运行环境与待构建镜像的运行环境相一致。
可选的,所述目标镜像构建节点508还用于,将构建日志上传到所述控制节点102,所述构建日志用于记录构建所述待构建镜像的过程。
可选的,所述控制节点102还用于,获取各所述镜像构建节点103是否正常运行的状态,在确定所述目标运行环境信息对应的目标镜像构建节点508运行正常的情况下,将所述镜像构建信息发送给所述目标运行环境信息对应的目标镜像构建节点508。
与本申请第一实施例提供的镜像构建方法相对应的,本申请第四实施例提供了一种计算机可读存储介质,存储有镜像构建方法的程序,该程序被处理器运行,执行下述步骤:
所述控制节点获取待构建镜像的目标应用程序的镜像配置信息;所述镜像配置信息包括:所述目标应用程序的镜像构建信息、所述待构建镜像的目标运行环境信息,所述镜像构建信息包括所述目标应用程序的应用信息,所述目标运行环境信息为用于运行所述待构建镜像的目标边缘计算节点的运行环境信息;
所述控制节点将所述镜像构建信息发送给所述目标运行环境信息对应的目标镜像构建节点;
所述目标镜像构建节点基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建,得到所述目标应用程序对应的镜像。
需要说明的是,对于本申请第二实施例、第三实施例和第四实施例提供的系统及计算机可读存储介质的详细描述可以参考对本申请第一实施例的相关描述,这里不再赘述。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,区块链中的节点设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他属性的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储介质或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (14)
1.一种镜像构建方法,其特征在于,应用于镜像构建系统,所述镜像构建系统包括:控制节点、多个镜像构建节点,所述镜像构建系统中的各所述镜像构建节点对应于边缘计算系统中的各运行环境不同的边缘计算节点,所述镜像构建节点的运行环境与对应的边缘计算节点的运行环境相一致;所述方法包括:
所述控制节点获取待构建镜像的目标应用程序的镜像配置信息;所述镜像配置信息包括:所述目标应用程序的镜像构建信息、所述待构建镜像的目标运行环境信息,所述镜像构建信息包括所述目标应用程序的应用信息,所述目标运行环境信息为用于运行所述待构建镜像的目标边缘计算节点的运行环境信息;
所述控制节点将所述镜像构建信息发送给所述目标运行环境信息对应的目标镜像构建节点;
所述目标镜像构建节点基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建,得到所述目标应用程序对应的镜像。
2.根据权利要求1所述的方法,其特征在于,所述边缘计算系统包括多个边缘计算集群,同一所述边缘计算集群中的各个边缘计算节点的运行环境相同,不同的边缘计算集群对应的运行环境不同;
所述镜像构建系统中的各所述镜像构建节点对应于所述边缘计算系统中的各所述边缘计算集群,所述镜像构建节点的运行环境与对应的边缘计算集群的运行环境相一致。
3.根据权利要求1所述的方法,其特征在于,所述应用信息包括:所述目标应用程序的代码存储地址,所述镜像构建系统还包括:用于存储各应用程序的代码的代码存储节点;
所述基于所述镜像构建信息获取所述目标应用程序的代码,包括:
基于所述代码存储地址,从所述代码存储节点中拉取所述目标应用程序的代码。
4.根据权利要求3所述的方法,其特征在于,所述应用信息还包括:所述目标应用程序的待构建镜像的目标分支;
所述从所述代码存储节点中拉取所述目标应用程序的代码,包括:
从所述代码存储节点中拉取所述目标应用程序的所述目标分支对应的代码。
5.根据权利要求3所述的方法,其特征在于,在所述控制节点获取待构建镜像的目标应用程序的镜像配置信息之前,所述方法还包括:
所述镜像构建系统中的第一镜像构建节点获取待构建镜像的目标应用程序的镜像配置信息,并将所述镜像配置信息发送给所述镜像构建系统中的所述控制节点。
6.根据权利要求5所述的方法,其特征在于,在所述目标镜像构建节点基于所述代码存储地址,从所述代码存储节点中拉取所述目标应用程序的代码之前,所述方法还包括:
所述第一镜像构建节点获取用于拉取所述目标应用程序的代码的目标密钥对,并将所述目标密钥对中的目标公钥发送给所述代码存储节点;
所述镜像构建信息还包括:所述目标密钥对中的目标私钥;
所述目标镜像构建节点基于所述代码存储地址,从所述代码存储节点中拉取所述目标应用程序的代码,包括:
所述目标镜像构建节点将所述镜像构建信息中的所述目标私钥与所述代码存储地址送给所述代码存储节点;
所述代码存储节点在检测到所述镜像构建信息中的目标私钥与所述目标公钥相匹配时,从所述代码存储地址对应的存储位置获取所述目标应用程序的代码,并将所述目标应用程序的代码发送给所述目标镜像构建节点;
所述目标镜像构建节点接收所述目标应用程序的代码。
7.根据权利要求5所述的方法,其特征在于,所述镜像构建系统还包括:镜像存储节点;所述方法还包括:
所述目标镜像构建节点将所述目标应用程序对应的镜像存储在所述镜像存储节点,并为存储的所述目标应用程序对应的镜像添加运行环境的标识;
所述第一镜像构建节点获取待构建镜像的目标应用程序的镜像配置信息,包括:
所述第一镜像构建节点在从所述镜像存储节点中未查找到目标镜像时,获取待构建镜像的目标应用程序的镜像配置信息,所述目标镜像对应的运行环境与待构建镜像的运行环境相一致。
8.根据权利要求1所述的方法,其特征在于,所述基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建,得到所述目标应用程序对应的镜像,包括:
基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建;
当检测到镜像构建成功时,得到所述目标应用程序对应的镜像;
当检测到镜像构建失败时,执行所述基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建的步骤,直至在镜像构建失败次数大于或等于所述预设次数时停止镜像构建。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述目标镜像构建节点将构建日志上传到所述控制节点,所述构建日志用于记录构建所述待构建镜像的过程。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述控制节点获取各所述镜像构建节点是否正常运行的状态;
所述控制节点将所述镜像构建信息发送给所述目标运行环境信息对应的目标镜像构建节点,包括:
所述控制节点在确定所述目标运行环境信息对应的目标镜像构建节点运行正常的情况下,将所述镜像构建信息发送给所述目标运行环境信息对应的目标镜像构建节点。
11.根据权利要求1所述的方法,其特征在于,所述目标运行环境信息包括以下至少一种:目标运行节点的节点标识、所述目标运行节点的CPU类型、GPU类型、操作系统类型、数据库类型。
12.一种镜像构建系统,其特征在于,所述系统包括:
获取单元,应用于所述镜像构建系统中的控制节点,所述获取单元用于获取待构建镜像的目标应用程序的镜像配置信息;所述镜像配置信息包括:所述目标应用程序的镜像构建信息、所述待构建镜像的目标运行环境信息,所述镜像构建信息包括所述目标应用程序的应用信息,所述目标运行环境信息为用于运行所述待构建镜像的目标边缘计算节点的运行环境信息;
发送单元,应用于所述镜像构建系统中的所述控制节点,所述发送单元用于将所述镜像构建信息发送给所述目标运行环境对应的目标镜像构建节点,其中,所述镜像构建系统中包括多个镜像构建节点,所述镜像构建系统中的各所述镜像构建节点对应于边缘计算系统中的各运行环境不同的边缘计算节点,所述镜像构建节点的运行环境与对应的边缘计算节点的运行环境相一致;
构建单元,应用于所述镜像构建系统中的所述目标镜像构建节点,所述构建单元用于基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建,得到所述目标应用程序对应的镜像。
13.一种镜像构建系统,其特征在于,所述镜像构建系统包括:控制节点、多个镜像构建节点,所述镜像构建系统中的各所述镜像构建节点对应于边缘计算系统中的各运行环境不同的边缘计算节点,所述镜像构建节点的运行环境与对应的边缘计算节点的运行环境相一致;
所述控制节点,用于获取待构建镜像的目标应用程序的镜像配置信息,将所述镜像构建信息发送给所述目标运行环境对应的目标镜像构建节点;所述镜像配置信息包括:所述目标应用程序的镜像构建信息、所述待构建镜像的目标运行环境信息,所述镜像构建信息包括所述目标应用程序的应用信息,所述目标运行环境信息为用于运行所述待构建镜像的目标边缘计算节点的运行环境信息;
所述目标镜像构建节点,用于基于所述镜像构建信息获取所述目标应用程序的代码,并根据所述代码进行镜像构建,得到所述目标应用程序对应的镜像。
14.一种计算机可读存储介质,其特征在于,存储有数据处理程序,该程序被处理器运行,执行如权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211369800.1A CN115904407A (zh) | 2022-11-03 | 2022-11-03 | 镜像构建方法、系统及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211369800.1A CN115904407A (zh) | 2022-11-03 | 2022-11-03 | 镜像构建方法、系统及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115904407A true CN115904407A (zh) | 2023-04-04 |
Family
ID=86487122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211369800.1A Pending CN115904407A (zh) | 2022-11-03 | 2022-11-03 | 镜像构建方法、系统及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904407A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795453A (zh) * | 2023-08-28 | 2023-09-22 | 成都中科合迅科技有限公司 | 应用程序的多cpu架构调用控制方法和系统 |
-
2022
- 2022-11-03 CN CN202211369800.1A patent/CN115904407A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795453A (zh) * | 2023-08-28 | 2023-09-22 | 成都中科合迅科技有限公司 | 应用程序的多cpu架构调用控制方法和系统 |
CN116795453B (zh) * | 2023-08-28 | 2023-11-03 | 成都中科合迅科技有限公司 | 应用程序的多cpu架构调用控制方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11405274B2 (en) | Managing virtual network functions | |
US10140134B2 (en) | Management of inter-dependent configurations of virtual machines in a cloud | |
US9928101B2 (en) | Certificate based connection to cloud virtual machine | |
US11741046B2 (en) | Method and apparatus for creating system disk snapshot of virtual machine | |
US10091055B2 (en) | Configuration service for configuring instances | |
US9229759B2 (en) | Virtual machine provisioning using replicated containers | |
US9712599B2 (en) | Application peak load processing | |
US10411961B2 (en) | Image management in cloud environments | |
EP2863607A2 (en) | System and method for improving internet communication by using intermediate nodes | |
US20190266072A1 (en) | Automatic test stack creation via production system replication | |
CN110347483B (zh) | 物理机到虚拟机迁移方法、装置及存储介质 | |
US11074096B2 (en) | Network reconfiguration in hypervisor-agnostic disaster recovery scenarios | |
US20220385532A1 (en) | Adding host systems to existing containerized clusters | |
US20200344325A1 (en) | Systems, methods, and computer program products to implement changes in a converged infrastructure system | |
US11263297B2 (en) | Dynamic insertion of variablized secrets in a pipeline integration system | |
CN115904407A (zh) | 镜像构建方法、系统及计算机可读存储介质 | |
US10768961B2 (en) | Virtual machine seed image replication through parallel deployment | |
CN115048181A (zh) | 一种基于Kubernetes容器云平台的热部署方法、装置及应用 | |
US10880376B1 (en) | Downloading chunks of an object from a storage service while chunks of the object are being uploaded | |
US10417254B2 (en) | Intelligent content synchronization between content libraries | |
CN112711444A (zh) | 一种电网监控服务单元的虚拟化方法及系统 | |
CN114237988B (zh) | 内存快照的处理方法和装置、存储介质、电子装置 | |
US20230101397A1 (en) | Identifying Binary Objects Using Signature of Input Items Used to Create Binary Object | |
WO2023193682A1 (en) | Local arrangement of remote deployment | |
US20230333869A1 (en) | Deploying virtual machines to a virtualization management environment using an agent to obtain remote virtual machine templates |
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 |