CN118113420A - 一种应用部署方法、装置、电子设备和存储介质 - Google Patents
一种应用部署方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN118113420A CN118113420A CN202410321747.0A CN202410321747A CN118113420A CN 118113420 A CN118113420 A CN 118113420A CN 202410321747 A CN202410321747 A CN 202410321747A CN 118113420 A CN118113420 A CN 118113420A
- Authority
- CN
- China
- Prior art keywords
- compiling
- node
- mirror image
- nodes
- local
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000003860 storage Methods 0.000 title claims abstract description 20
- 238000009434 installation Methods 0.000 claims abstract description 73
- 238000004891 communication Methods 0.000 claims description 20
- 238000012360 testing method Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012423 maintenance Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 abstract description 7
- 238000004519 manufacturing process Methods 0.000 abstract description 5
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011056 performance test Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design 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
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用部署方法、装置、电子设备和存储介质,涉及集群运维领域,该方法应用于集群的管理节点,包括:获取集群中不同架构类型分别对应的编译节点,并向各个编译节点发送镜像编译指令,以使各个编译节点通过创建的docker容器生成对应架构类型下目标应用的局部镜像;获取集群中待部署目标应用的安装节点,并向各个安装节点发送镜像部署指令,以使各个安装节点通过对应架构类型下目标应用的局部镜像,完成目标应用部署。本发明实施例的技术方案,实现了不同架构类型下目标应用的镜像文件的自动生成,避免了运维人员手动制作不同架构类型安装包的繁琐过程,同时,降低了应用部署耗时,简化了应用部署流程,提高了应用部署结果的准确性。
Description
技术领域
本发明涉及集群运维领域,尤其涉及一种应用部署方法、装置、电子设备和存储介质。
背景技术
随着计算机技术的不断发展,集群中多类型的CPU(Central Processing Unit,中央处理器)架构,使得集群可以提供多样化业务服务的同时,也带来了应用部署的难题。
现有技术中,在集群中部署应用时,通常需要由运维人员手动完成不同CPU架构下待部署应用分别所需安装包的制作,同时在应用发布时,由于应用实例无法在不同架构的节点上自动切换运行,还需要运维人员去手动选择对应节点架构的安装包去进行服务发布。
然而,这样的应用部署方式,不但极大地提升了人力成本,而且使得应用发布的部署耗时过长,部署操作过于繁琐,极易出现部署操作失误,应用部署结果的准确性较低。
发明内容
本发明提供了一种应用部署方法、装置、电子设备及存储介质,以解决集群中应用部署效率较低的问题。
根据本发明的一方面,提供了一种应用部署方法,包括:
获取集群中不同架构类型分别对应的编译节点,并向各个编译节点发送镜像编译指令,以使各个编译节点通过创建的docker容器生成对应架构类型下目标应用的局部镜像;
获取集群中待部署目标应用的安装节点,并向各个安装节点发送镜像部署指令,以使各个安装节点通过对应架构类型下目标应用的局部镜像,完成目标应用部署。
根据本发明的另一方面,提供了一种应用部署装置,包括:
编译指令发送模块,用于获取集群中不同架构类型分别对应的编译节点,并向各个编译节点发送镜像编译指令,以使各个编译节点通过创建的docker容器生成对应架构类型下目标应用的局部镜像;
部署指令发送模块,用于获取集群中待部署目标应用的安装节点,并向各个安装节点发送镜像部署指令,以使各个安装节点通过对应架构类型下目标应用的局部镜像,完成目标应用部署。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的应用部署方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的应用部署方法。
本发明实施例的技术方案,管理节点获取集群中不同架构类型分别对应的编译节点,并引导各个编译节点通过创建的docker容器生成对应架构类型下目标应用的局部镜像,由此实现了不同架构类型下目标应用的镜像文件的自动生成,避免了运维人员手动制作不同架构类型安装包的繁琐过程,同时,管理节点获取集群中待部署目标应用的安装节点,并引导各个安装节点通过对应架构类型下目标应用的局部镜像,完成目标应用的自动部署,由此降低了应用部署耗时,简化了应用部署流程,避免了人工部署存在的操作失误现象发生,提高了应用部署结果的准确性。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种应用部署方法的流程图;
图2是根据本发明实施例二提供的另一种应用部署方法的流程图;
图3是根据本发明实施例三提供的又一种应用部署方法的流程图;
图4是根据本发明实施例四提供的一种应用部署装置的结构示意图;
图5是实现本发明实施例的应用部署方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的一种应用部署方法的流程图,本实施例可适用于根据管理节点引导编译节点完成局部镜像生成,以及引导安装节点完成目标应用部署的情况,该应用部署装置可以采用硬件和/或软件的形式实现,该应用部署装置配置于集群的管理节点中,该管理节点可以以终端设备或服务器等电子设备的形式存在。如图1所示,该方法包括:
S101、获取集群中不同架构类型分别对应的编译节点,并向各个编译节点发送镜像编译指令,以使各个编译节点通过创建的docker容器生成对应架构类型下目标应用的局部镜像。
集群(cluster)是由多个相互独立且通过高速网络互连的电子设备组成的计算机***,集群中的每台设备均为该集群中的一个节点;例如,服务器集群中的每台服务器均为该集群中的一个节点;管理节点用于集群中所有工作节点的运行管理;架构类型,是指节点的中央处理器(Central Processing Unit,CPU)架构,例如,架构类型可以包括ARM(AcornRISC Machine)架构、MIPS架构(Microprocessor without interlocked piped stagesarchitecture)、PowerPC(Performance Optimization With Enhanced RISC-PerformanceComputing)架构和X86架构(The X86 architecture);不同架构类型下的节点设备的运行方式各不相同,可选的,在本发明实施例中,对各个节点的架构类型不作具体限定。
编译节点是用于生成目标应用的程序安装包的节点;在本发明实施例中,管理节点获取集群中所有节点的架构类型,并在每种架构类型下选择一个节点作为安装节点;其中,管理节点具体可以通过Kubernetes(即k8s)组件中用于数据持久化存储的ETCD模块获取集群的节点信息;以上述技术方案为例,假设每种架构类型均对应三个节点,其中1号至3号节点为ARM架构、4号至6号节点为MIPS架构、7号至9号节点为PowerPC架构、10号至12号节点为X86架构,据此将1号节点作为ARM架构对应的编译节点、4号节点为MIPS架构对应的编译节点、7号节点作为PowerPC架构对应的编译节点、10号节点作为X86架构对应的编译节点。
管理节点在确定编译节点的身份信息后,向各个编译节点发送镜像编译指令,编译节点在获取到镜像编译指令后,生成docker容器作为目标应用的虚拟编译环境,docker容器使用的预先配置完成的带有目标应用的编译环境的镜像启动,docker容器内具备目标应用编译时所依赖的所有基础软件;其中,每个节点可以预先安装有gitlab-runner组件,或者由管理节点引导各个节点完成gitlab-runner组件的安装,然后管理节点可以通过调用编译节点的gitlab-runner组件,引导编译节点完成docker容器的创建。
编译节点将目标应用的代码文件拉取到创建完成的docker容器中,进而对目标应用的代码文件进行编译,以将应用代码编译为安装包,然后在docker容器中构建目标应用的镜像(也即局部镜像),在生成局部镜像后即可对docker容器进行销毁;特别的,管理节点可以依次向各个编译节点发出镜像编译指令,以使各个编译节点以串行执行的方式完成局部镜像生成,例如,在向1号节点发送镜像编译指令并等待1号节点生成ARM架构下局部镜像后,再向4号节点发送镜像编译指令;也可以同时向各个编译节点发出镜像编译指令,以使各个编译节点以并行执行的方式完成局部镜像生成。
可选的,在本发明实施例中,所述获取集群中不同架构类型分别对应的编译节点,包括:根据镜像仓库所在的第一节点,获取所述第一节点对应的第一架构类型,并将所述第一节点作为所述第一架构类型对应的编译节点。各个编译节点生成的局部镜像保存于镜像仓库中,而镜像仓库可能位于任意一个节点中,如果镜像仓库位于第一节点中,而第一节点的结构类型为第一架构类型,则将第一架构类型对应的编译节点设置为第一节点,以此便于编译节点对镜像仓库的调用,减少了编译节点与镜像仓库之间的通信开销,提高了局部镜像的传输效率。
可选的,在本发明实施例中,所述获取集群中不同架构类型分别对应的编译节点,包括:若镜像仓库所在的第二节点与所述管理节点均为第二架构类型,根据所述第二节点的资源占用率,以及所述管理节点与所述第二节点之间的通信开销,将所述第二节点或所述管理节点作为第二架构类型对应的编译节点。
具体的,如果镜像仓库所在的第二节点与管理节点均为第二架构类型,则获取第二节点的资源占用率,以及管理节点与第二节点之间的通信开销;如果第二节点的资源占用率较大,例如,大于等于预设占用阈值,则将管理节点配置为第二架构类型下的编译节点,以降低第二节点的运行负荷;如果管理节点与第二节点之间的通信开销较大,例如,大于等于预设开销阈值,则将第二节点配置为第二架构类型下的编译节点,以减少编译节点与镜像仓库之间的通信开销,提高局部镜像的传输效率;其中,由于镜像仓库位于第二节点中,管理节点调用镜像仓库的通信开销实际上就是管理节点与第二节点之间的通信开销。
还可以将第二节点的资源占用率与对应的权重进行第一乘积运算,同时将管理节点与所第二节点之间的通信开销,与对应的权重进行第二乘积运算,如果第一乘积运算结果大于第二乘积运算结果,表明第二节点的资源占用率对集群的性能影响较大,以此将管理节点配置为第二架构类型下的编译节点;如果第二乘积运算结果大于第一乘积运算结果,表明管理节点与第二节点之间的通信开销对集群的性能影响较大,以此将第二节点配置为第二架构类型下的编译节点。
S102、获取集群中待部署目标应用的安装节点,并向各个安装节点发送镜像部署指令,以使各个安装节点通过对应架构类型下目标应用的局部镜像,完成目标应用部署。
安装节点是集群中等待部署目标应用的节点,以通过部署完成的目标应用提供相应的业务服务;管理节点在获取集群中待部署目标应用的安装节点之后,向各个安装节点发送镜像部署指令,镜像部署指令中可以包括当前安装节点的架构类型对应下的局部镜像在镜像仓库中的存储位置,以此引导安装节点直接从镜像仓库中取出所需的局部镜像,还可以通过镜像部署指令引导安装节点向镜像仓库发送架构类型标识,由镜像仓库完成该架构类型标识对应的局部镜像的查找及传输,最终安装节点基于获取到的局部镜像完成目标应用的部署。
可选的,在本发明实施例中,在获取集群中待部署目标应用的安装节点之后,还包括:获取各个安装节点分别对应的部署执行模板,并根据安装节点的节点信息,对匹配的部署执行模板进行填充,以生成部署执行文件;将部署执行文件发送给对应的安装节点,以使安装节点基于获取到的部署执行文件,获取匹配的局部镜像,并基于获取到的局部镜像完成目标应用部署。
具体的,不同架构类型对应不同且唯一的部署执行模板,也即架构类型与部署执行模板一一匹配,管理节点可以根据安装节点的架构类型,通过外部数据库或者本地数据库获取与安装节点匹配的部署执行模板,然后获取每个安装节点的节点信息,例如,节点名称、节点IP地址、节点架构类型等,进而根据安装节点的节点信息对部署执行模板进行填充,以获取填充完成的部署执行文件,也即安装节点与部署执行文件一一匹配;管理节点将部署执行文件发送给对应的安装节点,安装节点通过镜像部署指令获取到所需的局部镜像之后,基于上述部署执行文件启动当前局部镜像,进而完成目标应用部署,以此实现了不同安装节点的部署执行文件的统一管理,提升了集群部署应用的便利性。
本发明实施例的技术方案,管理节点获取集群中不同架构类型分别对应的编译节点,并引导各个编译节点通过创建的docker容器生成对应架构类型下目标应用的局部镜像,由此实现了不同架构类型下目标应用的镜像文件的自动生成,避免了运维人员手动制作不同架构类型安装包的繁琐过程,同时,管理节点获取集群中待部署目标应用的安装节点,并引导各个安装节点通过对应架构类型下目标应用的局部镜像,完成目标应用的自动部署,由此降低了应用部署耗时,简化了应用部署流程,避免了人工部署存在的操作失误现象发生,提高了应用部署结果的准确性。
实施例二
图2为本发明实施例二提供的一种应用部署方法的流程图,本实施例在上述实施例的基础上,管理节点依次向各个编译节点发送镜像编译指令。如图2所示,该方法具体包括:
S201、获取集群中不同架构类型分别对应的编译节点。
S202、根据各个编译节点在编译序列中的编译位置,依次向各个编译节点发送镜像编译指令,以使各个编译节点依次通过创建的docker容器生成对应架构类型下目标应用的局部镜像;其中,若确定当前编译节点是编译序列的起点,将起点标识加入镜像编译指令,以使当前编译节点将生成的局部镜像存入镜像仓库;若确定当前编译节点不是编译序列的起点,将非起点标识加入镜像编译指令,以使当前编译节点将生成的局部镜像与镜像仓库中的局部镜像进行合并,并将合并结果存入镜像仓库。
为了便于镜像仓库对目标应用镜像的有效管理,管理节点可以将各个编译节点配置为编译序列,由各个编译节点依次生成局部镜像,位于起点位置的编译节点,只需要完成局部镜像的生成,并将生成的局部镜像存入镜像仓库即可;位于非起点位置的编译节点,不但需要完成局部镜像的生成,还需要将镜像仓库中位于当前编译节点之前的各个编译节点生成的局部镜像,与当前生成的局部镜像进行合并,并将合并结果存入镜像仓库,直至每个编译节点均完成局部镜像生成时,由位于终点位置的编译节点将全部局部镜像进行合并后存入镜像仓库。
以上述技术方案为例,编译序列中的编译节点依次为ARM架构节点、X86架构节点、MIPS架构节点、PowerPC架构节点;其中,ARM架构节点为编译序列的起点,管理节点将起点标识加入该编译节点的镜像生成指令中,ARM架构节点在获取到镜像生成指令后,完成局部镜像A的生成,并将生成的局部镜像A存入镜像仓库;X86架构节点为编译序列的非编译起点,管理节点将非起点标识加入该编译节点的镜像生成指令中,X86架构节点在获取到镜像生成指令后,完成局部镜像B的生成,并将镜像仓库中的局部镜像(也即局部镜像A)与当前生成的局部镜像B进行合并,合并结果(也即局部镜像A+局部镜像B)存入镜像仓库。
然后管理节点将非起点标识加入MIPS架构节点的镜像生成指令中,MIPS架构节点在获取到镜像生成指令后,完成局部镜像C的生成,并将镜像仓库中的局部镜像(也即局部镜像A+局部镜像B)与当前生成的局部镜像C进行合并,合并结果(也即局部镜像A+局部镜像B+局部镜像C)存入镜像仓库;最后管理节点将非起点标识加入PowerPC架构节点的镜像生成指令中,PowerPC架构节点在获取到镜像生成指令后,完成局部镜像D的生成,并将镜像仓库中的局部镜像(也即局部镜像A+局部镜像B+局部镜像C)与当前生成的局部镜像D进行合并,合并结果(也即局部镜像A+局部镜像B+局部镜像C+局部镜像D)存入镜像仓库;由此既确保了生成的每个局部镜像均可以临时存储于镜像仓库中,避免了应用镜像丢失现象发生,又确保了镜像仓库中始终以一个镜像整体的形式存储目标应用镜像,便于镜像仓库对目标应用镜像的管理便利性。
可选的,在本发明实施例中,所述根据各个编译节点在编译序列中的编译位置,依次向各个编译节点发送镜像编译指令,还包括:若确定当前编译节点是编译序列的起点,引导当前编译节点对生成的局部镜像进行应用部署测试,并在确定通过应用部署测试时,引导当前编译节点将生成的局部镜像存入镜像仓库;若确定当前编译节点不是编译序列的起点,引导当前编译节点将生成的局部镜像与镜像仓库中的局部镜像进行相似性测试,并在确定通过相似性测试时,引导当前编译节点将生成的局部镜像与镜像仓库中的局部镜像进行合并,以及将合并结果存入镜像仓库。
具体的,如果确定当前编译节点是编译序列的起点,引导当前编译节点对生成的局部镜像进行应用部署测试,即将当前生成的局部镜像在当前编译节点中进行部署,再对部署完成的目标应用进行性能测试,根据性能测试结果确定当前局部镜像是否通过应用部署测试,如果确定未通过应用部署测试,则引导当前编译节点重新生成目标应用的局部镜像;如果确定通过应用部署测试,则引导当前编译节点将生成的局部镜像存入镜像仓库。
不同编译节点生成的局部镜像虽然并不完全相同,但均是同一个应用(即目标应用)的镜像文件,不论是代码结构还是代码量均存在相似性,因此,对于非起点位置的其它编译节点而言,在生成局部镜像之后,将当前生成的局部镜像,与镜像仓库中的局部镜像进行相似性比较,比较二者的代码结构和代码量是否相似;特别的,对于编译序列中第三个编译节点及第三个编译节点之后的编译节点,其从镜像仓库中获取的临时性的合并文件,实际上是由两个或两个以上的局部镜像合并而成的,此时需要将当前生成的局部镜像,与获取到的临时合并镜像中的各个局部镜像分别进行比较。
例如,判断二者的代码量的差值是否小于预设差值阈值,且判断二者的代码结构的差异度是否小于预设差异阈值;若二者的代码量的差值小于等于预设差值阈值,且二者的代码结构的差异度小于等于预设差异阈值,则表明上述两个局部镜像均是针对同一个应用的镜像文件,此时管理节点引导当前编译节点将生成的局部镜像与镜像仓库中的局部镜像进行合并,并将合并后的镜像存入镜像仓库。
由此通过对首个编译节点生成的局部镜像进行应用部署测试,即可完成后续各个局部镜像的相似性校验,在确保各个局部镜像生成结果准确的同时,减少了应用部署测试次数,提高了目标应用镜像的获取效率;此外,若二者的代码量的差值大于预设差值阈值,或者二者的代码结构的差异度大于预设差异阈值,此时将生成的局部镜像在当前编译节点进行部署测试,以根据实际的部署测试结果确定当前生成的局部镜像是否准确。
S203、获取集群中待部署目标应用的安装节点,并向各个安装节点发送镜像部署指令,以使各个安装节点通过对应架构类型下目标应用的局部镜像,完成目标应用部署。
由于镜像仓库中目标应用的镜像是以不同架构类型下的局部镜像合并而成的,因此,安装节点可以通过镜像仓库获取到目标应用的镜像后,筛选获取匹配的局部镜像,或者借助镜像仓库完成筛选,以直接获取匹配的局部镜像,进而完成目标应用部署。
本发明实施例的技术方案,管理节点在确定当前编译节点是编译序列的起点时,引导当前编译节点将生成的局部镜像存入镜像仓库,在确定当前编译节点不是编译序列的起点时,引导当前编译节点将生成的局部镜像与镜像仓库中的局部镜像的合并结果存入镜像仓库,由此既确保了生成的每个局部镜像均可以临时存储于镜像仓库中,避免了应用镜像丢失现象发生,又确保了镜像仓库中始终以一个镜像整体的形式存储目标应用镜像,便于镜像仓库对目标应用镜像的管理便利性。
实施例三
图3为本发明实施例三提供的一种应用部署方法的流程图,本实施例在上述实施例的基础上,根据各个编译节点的编译耗时,为各个编译节点分配匹配的执行身份,以使各个编译节点以并行方式生成对应架构类型下目标应用的局部镜像,如图3所示,该方法具体包括:
S301、获取集群中不同架构类型分别对应的编译节点。
S302、根据各个编译节点的编译耗时,为各个编译节点分配匹配的执行身份,并向各个编译节点发送镜像编译指令,以使各个编译节点以并行方式生成对应架构类型下目标应用的局部镜像;其中,执行身份包括非合并编译节点和合并编译节点;非合并编译节点用于生成局部镜像;合并编译节点用于生成局部镜像,以及将生成的局部镜像与镜像仓库中的局部镜像进行合并。
不同架构的编译节点,其编译生成应用镜像的速度也不同,例如,对于目标应用的镜像文件而言,ARM架构节点、X86架构节点、MIPS架构节点、PowerPC架构节点的编译耗时依次递增,此时将耗时最短的ARM架构节点配置为非合并编译节点,将其它编译节点,也即X86架构节点、MIPS架构节点、PowerPC架构节点配置为合并编译节点;同时,引导各编译节点以并行方式生成对应架构类型下目标应用的局部镜像。
当ARM架构节点完成局部镜像A的生成后,由于其编译耗时最短,将局部镜像A存入镜像仓库中,此时镜像仓库中仅存在局部镜像A;当X86架构节点完成局部镜像B的生成后,由于镜像仓库中已存在局部镜像A,此时X86架构节点将当前生成的局部镜像B与镜像仓库中的局部镜像A进行合并,合并结果(也即局部镜像A+局部镜像B)存入镜像仓库;当MIPS架构节点完成局部镜像C的生成后,由于镜像仓库中已存在局部镜像A和局部镜像B,此时MIPS架构节点将当前生成的局部镜像C与镜像仓库中的局部镜像A和局部镜像B进行合并,合并结果(也即局部镜像A+局部镜像B+局部镜像C)存入镜像仓库。
当PowerPC架构节点完成局部镜像D的生成后,由于镜像仓库中已存在局部镜像A、局部镜像B和局部镜像C,此时PowerPC架构节点将当前生成的局部镜像D与镜像仓库中的局部镜像A、局部镜像B和局部镜像C进行合并,合并结果(也即局部镜像A+局部镜像B+局部镜像C+局部镜像D)存入镜像仓库。
S303、获取集群中待部署目标应用的安装节点,并向各个安装节点发送镜像部署指令,以使各个安装节点通过对应架构类型下目标应用的局部镜像,完成目标应用部署。
本发明实施例的技术方案,在获取集群中不同架构类型分别对应的编译节点之后,根据各个编译节点的编译耗时,为各个编译节点分配匹配的执行身份,并向各个编译节点发送镜像编译指令,以使各个编译节点以并行方式生成对应架构类型下目标应用的局部镜像,由此各个编译节点的并行生成方式,既提高了镜像生成效率,又确保了镜像仓库中在任意时刻下最多仅存在一个镜像文件,便于镜像仓库对目标应用镜像的管理便利性。
实施例四
图4是本发明实施例四所提供的一种应用部署装置的结构框图,该装置具体包括:
编译指令发送模块401,用于获取集群中不同架构类型分别对应的编译节点,并向各个编译节点发送镜像编译指令,以使各个编译节点通过创建的docker容器生成对应架构类型下目标应用的局部镜像;
部署指令发送模块402,用于获取集群中待部署目标应用的安装节点,并向各个安装节点发送镜像部署指令,以使各个安装节点通过对应架构类型下目标应用的局部镜像,完成目标应用部署。
本发明实施例的技术方案,管理节点获取集群中不同架构类型分别对应的编译节点,并引导各个编译节点通过创建的docker容器生成对应架构类型下目标应用的局部镜像,由此实现了不同架构类型下目标应用的镜像文件的自动生成,避免了运维人员手动制作不同架构类型安装包的繁琐过程,同时,管理节点获取集群中待部署目标应用的安装节点,并引导各个安装节点通过对应架构类型下目标应用的局部镜像,完成目标应用的自动部署,由此降低了应用部署耗时,简化了应用部署流程,避免了人工部署存在的操作失误现象发生,提高了应用部署结果的准确性。
可选的,编译指令发送模块401,具体用于根据各个编译节点在编译序列中的编译位置,依次向各个编译节点发送镜像编译指令,以使各个编译节点依次通过创建的docker容器生成对应架构类型下目标应用的局部镜像;其中,若确定当前编译节点是编译序列的起点,将起点标识加入镜像编译指令,以使当前编译节点将生成的局部镜像存入镜像仓库;若确定当前编译节点不是编译序列的起点,将非起点标识加入镜像编译指令,以使当前编译节点将生成的局部镜像与镜像仓库中的局部镜像进行合并,并将合并结果存入镜像仓库。
可选的,编译指令发送模块401,具体还用于若确定当前编译节点是编译序列的起点,引导当前编译节点对生成的局部镜像进行应用部署测试,并在确定通过应用部署测试时,引导当前编译节点将生成的局部镜像存入镜像仓库;若确定当前编译节点不是编译序列的起点,引导当前编译节点将生成的局部镜像与镜像仓库中的局部镜像进行相似性测试,并在确定通过相似性测试时,引导当前编译节点将生成的局部镜像与镜像仓库中的局部镜像进行合并,以及将合并结果存入镜像仓库。
可选的,编译指令发送模块401,还用于根据镜像仓库所在的第一节点,获取所述第一节点对应的第一架构类型,并将所述第一节点作为所述第一架构类型对应的编译节点。
可选的,编译指令发送模块401,还用于若镜像仓库所在的第二节点与所述管理节点均为第二架构类型,根据所述第二节点的资源占用率,以及所述管理节点与所述第二节点之间的通信开销,将所述第二节点或所述管理节点作为第二架构类型对应的编译节点。
可选的,部署指令发送模块402,还用于获取各个安装节点分别对应的部署执行模板,并根据安装节点的节点信息,对匹配的部署执行模板进行填充,以生成部署执行文件;将部署执行文件发送给对应的安装节点,以使安装节点基于获取到的部署执行文件,获取匹配的局部镜像,并基于获取到的局部镜像完成目标应用部署。
可选的,编译指令发送模块401,还用于根据各个编译节点的编译耗时,为各个编译节点分配匹配的执行身份,并向各个编译节点发送镜像编译指令,以使各个编译节点以并行方式生成对应架构类型下目标应用的局部镜像;其中,执行身份包括非合并编译节点和合并编译节点;非合并编译节点用于生成局部镜像;合并编译节点用于生成局部镜像,以及将生成的局部镜像与镜像仓库中的局部镜像进行合并。
上述装置可执行本发明任意实施例所提供的应用部署方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的应用部署方法。
实施例五
图5示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图5所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如应用部署方法。
在一些实施例中,应用部署方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元。在一些实施例中,计算机程序的部分或者全部可以经由ROM和/或通信单元而被载入和/或安装到异构硬件加速器上。当计算机程序加载到RAM并由处理器执行时,可以执行上文描述的应用部署方法的一个或多个步骤。备选地,在其他实施例中,处理器可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行应用部署方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在异构硬件加速器上实施此处描述的***和技术,该异构硬件加速器具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给异构硬件加速器。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种应用部署方法,其特征在于,应用于集群的管理节点,包括:
获取集群中不同架构类型分别对应的编译节点,并向各个编译节点发送镜像编译指令,以使各个编译节点通过创建的docker容器生成对应架构类型下目标应用的局部镜像;
获取集群中待部署目标应用的安装节点,并向各个安装节点发送镜像部署指令,以使各个安装节点通过对应架构类型下目标应用的局部镜像,完成目标应用部署。
2.根据权利要求1所述的方法,其特征在于,所述向各个编译节点发送镜像编译指令,以使各个编译节点通过创建的docker容器生成对应架构类型下目标应用的局部镜像,包括:
根据各个编译节点在编译序列中的编译位置,依次向各个编译节点发送镜像编译指令,以使各个编译节点依次通过创建的docker容器生成对应架构类型下目标应用的局部镜像;
其中,若确定当前编译节点是编译序列的起点,将起点标识加入镜像编译指令,以使当前编译节点将生成的局部镜像存入镜像仓库;
若确定当前编译节点不是编译序列的起点,将非起点标识加入镜像编译指令,以使当前编译节点将生成的局部镜像与镜像仓库中的局部镜像进行合并,并将合并结果存入镜像仓库。
3.根据权利要求2所述的方法,其特征在于,所述根据各个编译节点在编译序列中的编译位置,依次向各个编译节点发送镜像编译指令,还包括:
若确定当前编译节点是编译序列的起点,引导当前编译节点对生成的局部镜像进行应用部署测试,并在确定通过应用部署测试时,引导当前编译节点将生成的局部镜像存入镜像仓库;
若确定当前编译节点不是编译序列的起点,引导当前编译节点将生成的局部镜像与镜像仓库中的局部镜像进行相似性测试,并在确定通过相似性测试时,引导当前编译节点将生成的局部镜像与镜像仓库中的局部镜像进行合并,以及将合并结果存入镜像仓库。
4.根据权利要求1所述的方法,其特征在于,所述获取集群中不同架构类型分别对应的编译节点,包括:
根据镜像仓库所在的第一节点,获取所述第一节点对应的第一架构类型,并将所述第一节点作为所述第一架构类型对应的编译节点。
5.根据权利要求1所述的方法,其特征在于,所述获取集群中不同架构类型分别对应的编译节点,包括:
若镜像仓库所在的第二节点与所述管理节点均为第二架构类型,根据所述第二节点的资源占用率,以及所述管理节点与所述第二节点之间的通信开销,将所述第二节点或所述管理节点作为第二架构类型对应的编译节点。
6.根据权利要求1所述的方法,其特征在于,在获取集群中待部署目标应用的安装节点之后,还包括:
获取各个安装节点分别对应的部署执行模板,并根据安装节点的节点信息,对匹配的部署执行模板进行填充,以生成部署执行文件;
将部署执行文件发送给对应的安装节点,以使安装节点基于获取到的部署执行文件,获取匹配的局部镜像,并基于获取到的局部镜像完成目标应用部署。
7.根据权利要求1所述的方法,其特征在于,所述向各个编译节点发送镜像编译指令,以使各个编译节点通过创建的docker容器生成对应架构类型下目标应用的局部镜像,包括:
根据各个编译节点的编译耗时,为各个编译节点分配匹配的执行身份,并向各个编译节点发送镜像编译指令,以使各个编译节点以并行方式生成对应架构类型下目标应用的局部镜像;其中,执行身份包括非合并编译节点和合并编译节点;非合并编译节点用于生成局部镜像;合并编译节点用于生成局部镜像,以及将生成的局部镜像与镜像仓库中的局部镜像进行合并。
8.一种应用部署装置,其特征在于,应用于集群的管理节点,包括:
编译指令发送模块,用于获取集群中不同架构类型分别对应的编译节点,并向各个编译节点发送镜像编译指令,以使各个编译节点通过创建的docker容器生成对应架构类型下目标应用的局部镜像;
部署指令发送模块,用于获取集群中待部署目标应用的安装节点,并向各个安装节点发送镜像部署指令,以使各个安装节点通过对应架构类型下目标应用的局部镜像,完成目标应用部署。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的应用部署方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的应用部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410321747.0A CN118113420A (zh) | 2024-03-20 | 2024-03-20 | 一种应用部署方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410321747.0A CN118113420A (zh) | 2024-03-20 | 2024-03-20 | 一种应用部署方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118113420A true CN118113420A (zh) | 2024-05-31 |
Family
ID=91221102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410321747.0A Pending CN118113420A (zh) | 2024-03-20 | 2024-03-20 | 一种应用部署方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118113420A (zh) |
-
2024
- 2024-03-20 CN CN202410321747.0A patent/CN118113420A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114816393B (zh) | 信息生成方法、装置、设备以及存储介质 | |
CN114445047A (zh) | 工作流生成方法、装置、电子设备及存储介质 | |
CN115509522A (zh) | 面向低代码场景的接口编排方法、***、电子设备 | |
CN111767149B (zh) | 调度方法、装置、设备及存储设备 | |
CN113032093A (zh) | 分布式计算方法、装置及平台 | |
CN113760638A (zh) | 一种基于kubernetes集群的日志服务方法和装置 | |
CN113691403B (zh) | 拓扑节点配置方法、相关装置及计算机程序产品 | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN113032092B (zh) | 分布式计算方法、装置及平台 | |
CN112905270B (zh) | 工作流实现方法、装置、平台、电子设备以及存储介质 | |
CN118113420A (zh) | 一种应用部署方法、装置、电子设备和存储介质 | |
CN115543423A (zh) | 一种标杆生成方法、装置、设备及存储介质 | |
CN112965836B (zh) | 服务控制方法、装置、电子设备及可读存储介质 | |
CN114036250A (zh) | 高精地图任务处理方法、装置、电子设备和介质 | |
CN114579311A (zh) | 执行分布式计算任务的方法、装置、设备以及存储介质 | |
CN114997329A (zh) | 用于生成模型的方法、装置、设备、介质和产品 | |
CN115600687B (zh) | 模型训练方法、装置、设备以及存储介质 | |
CN113656268B (zh) | 业务服务的性能测试方法、装置、电子设备和存储介质 | |
CN118092578A (zh) | 时钟的设置方法及装置、电子设备和存储介质 | |
CN115469887A (zh) | 云原生应用的发布方法及装置、电子设备和存储介质 | |
CN118093048A (zh) | 一种多模块启动管理方法、装置、设备及介质 | |
CN114416040A (zh) | 一种页面构建方法、装置、设备及存储介质 | |
CN115640015A (zh) | 安卓应用程序的构建方法、装置、设备及存储介质 | |
CN117234521A (zh) | 一种文件编译方法、装置、设备及存储介质 | |
CN116385255A (zh) | 一种基于gpu资源的模型调度方法、装置、设备及介质 |
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 |