CN117762427A - 应用部署方法、装置和计算机可读存储介质 - Google Patents
应用部署方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117762427A CN117762427A CN202211139666.6A CN202211139666A CN117762427A CN 117762427 A CN117762427 A CN 117762427A CN 202211139666 A CN202211139666 A CN 202211139666A CN 117762427 A CN117762427 A CN 117762427A
- Authority
- CN
- China
- Prior art keywords
- target
- component
- deployment
- application
- environment
- 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 84
- 238000012216 screening Methods 0.000 claims abstract description 16
- 238000013515 script Methods 0.000 claims description 59
- 230000001419 dependent effect Effects 0.000 claims description 45
- 238000010276 construction Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 17
- 238000011161 development Methods 0.000 description 15
- 230000007613 environmental effect Effects 0.000 description 15
- 238000012360 testing method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000000605 extraction Methods 0.000 description 6
- 230000008676 import Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000004806 packaging method and process Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 241000380131 Ammophila arenaria Species 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 239000007788 liquid Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种应用部署方法、装置和计算机可读存储介质,通过获取目标应用对应的组件部署参数;基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出目标组件;获取目标组件对应的组件配置信息,并基于组件配置信息和目标部署环境,在预设环境参数配置池中识别出目标组件对应的环境变量;根据环境变量构建目标组件对应的镜像文件;基于镜像文件,在目标应用对应的容器集群中部署目标应用。通过目标应用的目标部署环境,对构成目标应用的目标组件的环境变量进行配置,从而根据环境变量构建镜像文件,实现目标应用在目标部署环境中的部署,简化了应用部署流程,缩短了应用上线的周期,提高了应用部署的效率。
Description
技术领域
本申请涉及互联网技术领域,具体涉及一种应用部署方法、装置和计算机可读存储介质。
背景技术
近年来,随着互联网技术的快速发展,云计算的应用越来越广泛,例如,将应用程序运行在容器(Container)中,以基于容器化的方式简化应用程序的构建、部署和运行过程。其中,在进行应用部署时,开发人员需要将开发好的应用程序的代码进行打包,然后根据实际的部署环境分别进行应用部署。
在对现有技术的研究和实践过程中发现,在现有的将开发好的应用代码进行打包,然后根据不同的部署环境分别进行部署的应用部署方法中,开发人员需要跨平台将应用进行适配部署,使得应用的上线周期漫长且繁琐,进而导致应用部署的效率较低。
发明内容
本申请实施例提供一种应用部署方法、装置和计算机可读存储介质,可以简化应用部署流程,缩短应用上线的周期,提高应用部署的效率。
本申请实施例提供一种应用部署方法,包括:
获取目标应用对应的组件部署参数;
基于所述组件部署参数确定所述目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建所述目标应用的目标组件;
获取所述目标组件对应的组件配置信息,并基于所述组件配置信息和目标部署环境,在预设环境参数配置池中识别出所述目标组件对应的环境变量;
根据所述环境变量构建所述目标组件对应的镜像文件,所述镜像文件为将所述目标应用部署在所述目标部署环境中的文件;
基于所述镜像文件,在所述目标应用对应的容器集群中部署所述目标应用。
相应的,本申请实施例提供一种应用部署装置,包括:
获取单元,用于获取目标应用对应的组件部署参数;
确定单元,用于基于所述组件部署参数确定所述目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建所述目标应用的目标组件;
识别单元,用于获取所述目标组件对应的组件配置信息,并基于所述组件配置信息和目标部署环境,在预设环境参数配置池中识别出所述目标组件对应的环境变量;
构建单元,用于根据所述环境变量构建所述目标组件对应的镜像文件,所述镜像文件为将所述目标应用部署在所述目标部署环境中的文件;
部署单元,用于基于所述镜像文件,在所述目标应用对应的容器集群中部署所述目标应用。
在一实施例中,所述识别单元,包括:
环境变量声明信息提取子单元,用于在所述组件配置信息中提取出所述目标组件对应的环境变量声明信息;
候选环境变量确定子单元,用于在预设环境参数配置池中确定所述目标部署环境对应的候选环境变量;
环境变量筛选子单元,用于基于所述环境变量声明信息,在所述候选环境变量中筛选出所述目标组件对应的环境变量。
在一实施例中,所述构建单元,包括:
组件依赖信息提取子单元,用于在所述组件配置信息中提取出所述目标组件对应的组件依赖信息;
依赖镜像文件获取子单元,用于基于所述组件依赖信息,识别出所述目标组件对应的依赖组件以及中间件,并获取所述依赖组件以及中间件的依赖镜像文件;
组件镜像文件构建子单元,用于根据所述环境变量构建所述目标组件对应的组件镜像文件,并将所述组件镜像文件以及依赖镜像文件作为所述目标组件对应的镜像文件。
在一实施例中,所述组件镜像文件构建子单元,包括:
关键信息提取模块,用于获取前置配置脚本,并在所述前置配置脚本中提取出关键信息;
环境变量注入模块,用于根据所述关键信息将所述环境变量注入至所述前置配置脚本,得到目标配置脚本;
镜像构建模块,用于基于所述目标配置脚本,构建所述目标组件对应的组件镜像文件。
在一实施例中,所述部署单元,包括:
检测子单元,用于将所述镜像文件推送到第一镜像库,并通过预设网关接入服务检测针对所述镜像文件的推送请求;
推送子单元,用于当接收到容器集群发送的针对所述镜像文件的推送请求时,获取所述容器集群挂载到所述预设网关接入服务的镜像拉取地址,并通过所述镜像拉取地址,将所述镜像文件推送至所述容器集群对应的第二镜像库;
部署子单元,用于基于所述第二镜像库中的镜像文件,在所述容器集群中部署所述目标应用
在一实施例中,所述部署子单元,包括:
解析模块,用于通过所述容器集群解析所述第二镜像库中的镜像文件,得到所述环境变量对应的容器组信息以及环境参数;
更新模块,用于基于所述容器组信息在所述容器集群中确定目标容器组,并基于所述环境参数对所述目标容器组的配置信息进行更新;
部署模块,用于根据更新后的目标容器组在所述容器集群中部署所述目标应用。
在一实施例中,所述识别单元,包括:
状态获取子单元,用于获取所述目标组件基于所述目标部署环境的部署状态;
信息获取子单元,用于在所述部署状态为未部署状态时,获取所述目标组件对应的组件配置信息。
此外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种应用部署方法中的步骤。
此外,本申请实施例还提供一种计算机设备,包括处理器和存储器,所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序实现本申请实施例提供的应用部署方法。
本申请实施例还提供一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行本申请实施例提供的应用部署方法中的步骤。
本申请实施例通过获取目标应用对应的组件部署参数;基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建目标应用的目标组件;获取目标组件对应的组件配置信息,并基于组件配置信息和目标部署环境,在预设环境参数配置池中识别出目标组件对应的环境变量;根据环境变量构建目标组件对应的镜像文件;基于镜像文件,在目标应用对应的容器集群中部署目标应用。以此,通过在候选组件集合中筛选出构成目标应用的目标组件,并根据目标组件的组件配置信息和目标应用的目标部署环境,在预设环境参数配置池中识别出匹配的环境变量,从而基于环境变量来构建目标组件的镜像文件,以此基于目标应用的部署环境以及目标组件的组件配置信息确定的镜像文件实现目标应用在目标部署环境中的部署,简化了应用在多环境中的部署流程,缩短了应用发布上线的周期,进而提高了应用部署的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种应用部署方法实施场景示意图;
图2是本申请实施例提供的一种应用部署方法的流程示意图;
图3是本申请实施例提供的一种应用部署方法的整体流程示意图;
图4是本申请实施例提供的一种应用部署方法的应用部署流程示意图;
图5是本申请实施例提供的一种应用部署方法的具体流程示意图;
图6是本申请实施例提供的一种应用部署方法的另一流程示意图;
图7是本申请实施例提供的应用部署装置的结构示意图;
图8是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种应用部署方法、装置和计算机可读存储介质。其中,该应用部署装置可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
请参阅图1,以应用部署装置集成在计算机设备中为例,图1为本申请实施例所提供的应用部署方法的实施场景示意图,其中,该计算机设备可以为服务器,该计算机设备可以获取目标应用对应的组件部署参数;基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建目标应用的目标组件;获取目标组件对应的组件配置信息,并基于组件配置信息和目标部署环境,在预设环境参数配置池中识别出目标组件对应的环境变量;根据环境变量构建目标组件对应的镜像文件;基于镜像文件,在目标应用对应的容器集群中部署目标应用。
需要说明的是,本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。图1所示的应用部署方法的实施环境场景示意图仅仅是一个示例,本申请实施例描述的应用部署方法的实施环境场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。本领域普通技术人员可知,随着应用部署的演变和新业务场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
本申请实施例提供的方案具体通过如下实施例进行说明。需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从应用部署装置的角度进行描述,该应用部署装置具体可以集成在计算机设备中,该计算机设备可以是服务器,本申请在此不作限制。
请参阅图2,图2是本申请实施例提供的应用部署方法的流程示意图。该应用部署方法包括:
在步骤101中,获取目标应用对应的组件部署参数。
其中,该目标应用可以为待进行创建以及部署的应用程序,该目标应用可以由至少一个组件构成,组件可以为数据和方法的封装,可以用于负责应用的服务,以此可以基于至少一个组件来构建目标应用,该组件部署参数可以为用于对组成目标应用的组件进行部署的参数,例如,可以包括目标应用部署的环境、目标应用包含的组件等参数,目标应用部署的环境可以包括测试、开发以及生产等环境,以此,目标应用的部署可以基于组件的部署来实现。
其中,获取目标应用对应的组件部署参数的方式可以有多种,例如,可以直接接收开发人员上传的组件部署参数,也可以根据开发人员的操作行为来获取目标应用对应的组件部署参数。譬如,本申请实施例提供的应用部署方法可以为应用于低代码平台中,开发人员可以在该低代码平台中进行目标应用的创建,例如,在低代码平台中选择目标应用对应的组件,以及选中目标应用的部署环境等操作,从而基于开发人员的创建操作,可以获取目标应用对应的组件部署信息。
在步骤102中,基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建目标应用的目标组件。
其中,该目标部署环境可以为目标应用的部署环境,即部署目标应用的环境,该部署环境可以包括开发、测试、生产等环境。该候选组件集合可以为多个组件构成的整体,每一组件可以预先构建,通过选择组件来构建应用。该目标组件可以为构建目标应用的组件。
其中,基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建目标应用的目标组件的方式可以有多种,例如,可以在组件部署参数中提取出目标应用对应的环境信息以及组件信息,根据该环境信息确定目标应用对应的目标部署环境,同时可以根据该组件信息,在候选组件集合中筛选出至少一个目标组件。
其中,该环境信息可以为描述目标应用的部署环境的信息,该组件信息可以为描述构成目标应用的组件的信息。
其中,获取候选组件集合的方式可以有多种,例如,本申请实施例提供的一种应用部署方法可以集成在低代码平台中,从而可以通过低代码平台导入组件,从而可以得到候选组件集合。可选的,请参考图3,图3是本申请实施例提供的一种应用部署方法的整体流程示意图。其中,组件提供方可以根据预先约定好的组件规范开发组件,通过脚手架工具(例如Goff脚手架)初始化组件开发的工程代码,并可以接入软件研发管理平台(Coding)进行代码托管,从而可以根据业务需求进行业务应用服务的开发,并可以采用版本控制工具(Liquibase)对组件开发的相关数据库脚本进行初始化,在进行应用编排时,可以将应用的组件进行容器化,并声明组件依赖的中间件与其他的组件服务,在组件开发完成后可以将组件对应的组件库上传至软件及服务(Software as service,简称SaaS)平台中进行管理,同时可以将组件库对应的组件包(docker package)上传至应用包管理器(hlem)中进行管理。从而低代码平台可以通过SaaS服务获取组件,并进行组件库的导入,进而可以基于导入的组件库得到候选组件集合。
可选的,在进行组件库导入时,可以将导入的组件进行多环境的部署,例如,假设导入组件A对应的组件库,则可以在需要部署应用的容器集群中分别部署测试环境的组件A、开发环境的组件A、生产环境的组件A等。从而可以在项目中新建目标应用,并获取目标应用的组件部署参数,从而可以根据组件部署参数确定目标部署环境以及目标组件,并拖入目标组件进行应用开发与部署。
其中,组件的使用方在通过低代码平台进行组件库导入时,可以先导入组件对应的前端组件库资源,然后,可以查看后端组件库服务是否存在依赖的组件库或者中间件未进行部署,若存在未部署的组件库或者中间件等依赖服务时,可以拉取低代码平台部署依赖服务,从而可以部署前端资源依赖的后端组件服务。然后,可以将部署的服务接口通过服务注册中心(consul)进行接口暴露,以实现组件的服务接口的调用。
在步骤103中,获取目标组件对应的组件配置信息,并基于组件配置信息和目标部署环境,在预设环境参数配置池中识别出目标组件对应的环境变量。
其中,该组件配置信息可以为目标组件的开发过程中声明的配置信息,例如,可以包括服务依赖、环境变量声明、回调地址等信息。可选的,该组件配置信息可以为组件的应用配置文件(application.yaml)中声明的配置信息,例如,可以包括服务依赖(dependencies)、动作(actions)、环境变量声明(env-config)、服务回调地址(service-hook)等变量。该预设环境参数配置池可以为预先设定的环境参数配置池,该环境参数配置池中可以包括多种环境配置的参数,可以用于进行组件的环境变量的配置。该环境变量可以为目标应用运行过程中目标组件所依赖的数据库配置、缓存配置、中间件配置、自定义配置等变量。
其中,获取目标组件对应的组件配置信息的方式可以有多种,例如,可以获取该目标组件基于该目标部署环境的部署状态,在该部署状态为未部署状态时,获取该目标组件对应的组件配置信息。
其中,该部署状态可以为目标组件在目标部署环境下的部署状态,例如,可以包括已部署、未部署等状态。可选的,在进行目标应用的创建和部署之前,可以在应用部署的容器集群中先对导入的组件进行多环境的部署,从而可以在创建目标应用时,先查询目标组件在目标部署环境下的部署状态,在目标组件还未在目标部署环境中部署完成时,可以获取目标组件对应的组件配置信息,以进行候选的目标组件的部署操作。可选的,在目标组件已经在目标部署环境中部署完成时,可以不进行目标组件的部署。
在获取目标组件对应的组件配置信息之后,便可以基于组件配置信息和目标部署环境,在预设环境参数配置池中识别出目标组件对应的环境变量。其中,基于组件配置信息和目标部署环境,在预设环境参数配置池中识别出目标组件对应的环境变量的方式可以有多种,例如,可以在该组件配置信息中提取出该目标组件对应的环境变量声明信息,在预设环境参数配置池中确定该目标部署环境对应的候选环境变量,基于该环境变量声明信息,在该候选环境变量中筛选出该目标组件对应的环境变量。
其中,该环境变量声明信息可以为声明目标组件的环境变量配置的信息,例如,可以为目标组件的application.yaml文件中的环境变量声明env-config。该候选环境变量可以为预设环境参数配置池中目标部署环境下可以进行选择的环境变量。
在一实施例中,请参考图4,图4是本申请实施例提供的一种应用部署方法的应用部署流程示意图,假设根据目标应用的组件部署参数在候选组件集合中筛选出目标组件X,在目标组件X未进行部署时,可以获取组件X对应的组件配置信息(application.yaml)并进行解析,从而可以获取到组件X对应的服务依赖(dependencies)、动作(actions)、环境变量声明(env-config)、服务回调地址(service-hook)等变量信息,从而可以读取解析后的组件配置信息,当dependencies信息中描述组件X存在依赖的其他组件时,可以查看依赖组件是否已部署,若没有部署,则可以先部署依赖组件。在依赖组件部署完成之后,可以根据解析出的变量信息env-config在低代码平台中的预设环境参数配置池中提供的测试环境、开发环境、生产环境等多环境的候选环境变量中选择目标部署环境中的环境变量,例如,可以选择测试环境下的中间件配置、缓存配置、数据库配置、同步数据配置以及自定义配置等环境参数,从而可以得到组件X在目标部署环境中的环境变量。
在步骤104中,根据环境变量构建目标组件对应的镜像文件。
其中,该镜像文件可以为用于将目标应用部署在目标部署环境中的文件,例如,可以为将目标组件的一系列文件按照镜像的格式制作成的单一的文件。
其中,根据环境变量构建目标组件对应的镜像文件的方式可以有多种,例如,可以在该组件配置信息中提取出该目标组件对应的组件依赖信息,基于该组件依赖信息,识别出该目标组件对应的依赖组件以及中间件,并获取该依赖组件以及中间件的依赖镜像文件,根据该环境变量构建该目标组件对应的组件镜像文件,并将该组件镜像文件以及依赖镜像文件作为该目标组件对应的镜像文件。
其中,该组件依赖信息可以为描述目标组件所依赖的组件以及中间件等服务的信息,该依赖组件可以为目标组件依赖的组件,该中间件可以为连接软件组件和应用的计算机软件,例如,可以为关系型数据库管理系统(MySQL)、远程字典服务(Remote DictionaryServer,简称Redis)等类型的中间件。该依赖镜像文件可以为将依赖组件以及中间件打包得到的镜像文件,该组件镜像文件可以为将目标组件进行打包得到的镜像文件。
其中,根据该环境变量构建该目标组件对应的组件镜像文件的方式可以有多种,例如,可以获取前置配置脚本,并在该前置配置脚本中提取出关键信息,根据该关键信息将该环境变量注入至该前置配置脚本,得到目标配置脚本,基于该目标配置脚本,构建该目标组件对应的组件镜像文件。
其中,该前置配置脚本可以为预先配置的脚本文件,可以用于注入目标组件在目标部署环境中的环境变量,该关键信息可以为预先在前置配置脚本中配置的、用于提取目标组件的环境变量的参数值的信息,例如,可以为键值对中的键(key),而环境变量的参数值为值(value)等。该目标配置脚本可以为注入环境变量的值之后的前置配置脚本。
其中,根据该关键信息将该环境变量注入至该前置配置脚本的方式可以有多种,例如,可以根据该关键信息,提取出环境变量对应的参数值,从而可以将每一参数值填充到对应的关键信息所在配置项的值中,得到目标配置脚本。
在根据该关键信息将该环境变量注入至该前置配置脚本之后,便可以基于该目标配置脚本,构建该目标组件对应的组件镜像文件。其中,基于该目标配置脚本,构建该目标组件对应的组件镜像文件的方式可以有多种,例如,可以将目标组件对应的组件包以及目标配置脚本进行打包并制作为镜像,得到目标组件对应的组件镜像文件。
在一实施例中,可以采用流水线来根据环境变量构建目标组件对应的镜像文件,具体的,可以将目标组件的环境变量的配置信息进行加密,并将加密后的环境变量发送至构建的流水线中,请继续参考图4,可以根据目标部署环境构建流水线:设置主机组、服务名称、前置脚本(前置配置脚本),其中,设置主机组可以指设置负责部署目标组件的流水线服务的主机,服务器名称可以为流水线服务的名称,以此可以通过流水线接收加密后的环境变量的配置信息,然后将加密后的环境变量的配置信息进行解密,并将环境变量对应的值注入到前置配置脚本中,从而可以得到目标配置脚本。以此,可以将目标组件以及目标配置脚本进行打包并制作镜像,通过组件包管理器helm推送到Coding的应用容器引擎(docker)的镜像仓库中。
在步骤105中,基于镜像文件,在目标应用对应的容器集群中部署目标应用。
其中,该容器集群可以为多个容器构成的集群,该集群可以为基于容器集群管理系统进行容器管理的集群,该容器集群管理系统架构可以为容器集群管理系统对应的架构,该容器集群管理系统可以为管理云平台上部署的容器集群中多个主机节点上的容器化的应用的系统,例如,可以为容器集群管理系统(Kubernetes,简称K8s)。在此处,该容器集群可以为部署目标应用的集群。
其中,基于镜像文件,在目标应用对应的容器集群中部署目标应用的方式可以有多种,例如,可以将该镜像文件推送到第一镜像库,并通过预设网关接入服务检测针对该镜像文件的推送请求,当接收到容器集群发送的针对该镜像文件的推送请求时,获取该容器集群挂载到该预设网关接入服务的镜像拉取地址,并通过该镜像拉取地址,将该镜像文件推送至该容器集群对应的第二镜像库,基于该第二镜像库中的镜像文件,在该容器集群中部署该目标应用。
其中,该第一镜像库可以为软件研发管理平台的镜像仓库,例如,可以为Coding的docker镜像仓库,该预设网关接入服务可以为预先设置的网关接入服务,该网关接入服务可以用于实现不同网络之间的相互连接,例如,可以为连接互联网与局域网等私有网络之间的网络连接的网关服务,该推送请求可以为预设网关接入服务收到的用于将镜像文件进行推送到另一个网络的请求,该镜像拉取地址可以为该容器集群所在的局域网拉取互联网中镜像制品的超文本传输协议(Hyper Text Transfer Protocol,简称HTTP)地址,该第二镜像库可以为容器集群所在的局域网中部署的镜像仓库。
例如,请参考图5,图5是本申请实施例提供的一种应用部署方法的具体流程示意图,开发人员在开发过程中,可以将应用部署的相关代码提交到互联网区域中的软件研发管理平台Coding平台中进行代码托管,在对目标应用的目标组件进行部署时,可以先将目标组件对应的代码进行检出,然后通过Coding平台的流水线(Continuous integration,简称CI,也作持续集成)将目标组件对应的镜像文件推送(push)到Coding的互联网制品库,即第一镜像库。局域网等进行应用部署的私有网络可以通过代理服务器(nginx)将拉取互联网区镜像制品(即镜像文件)的HTTP地址(即镜像拉取地址)挂载到网关接入服务(即预设网关接入服务)中。以此,网关接入服务可以通过轮训查看的方式将镜像文件push到私有网络的镜像仓库中,例如,当网关接入服务接收到私有网络中容器集群发送的针对镜像文件的推送请求时,可以获取该容器集群挂载到该预设网关接入服务的镜像拉取地址,并通过该镜像拉取地址,将该镜像文件推送到该私有网络中部署的软件研发管理平台代理服务(Codingagentserver)的docker制品库中,从而可以将该镜像文件推送至该容器集群所在微服务平台(Tencent Service Framework,TSF)对应的TSF镜像库(即第二镜像库)中。其中,平台代理(Codingagent)可以为Codingagentserver中的一个代理,TSF应用全生命周期管理平台可以为容器集群中节点服务实现的一个在私有网络中用于管理应用的生命周期的微服务平台,在将目标应用部署在私有网络中时,可以通过该私有网络中的TSF应用全生命周期管理平台来对部署的目标应用的全生命周期进行管理。可选的,可以通过Codingagentserver来调用微服务平台对应的用于应用部署的TSF应用程序编程接口(Application Programming Interface,简称API)来获取应用部署的状态,在将本申请实施例提供的应用部署方法应用在低代码平台中时,低代码平台可以通过调用Codingagentserver中的TSF接口服务来查询目标组件在TSF平台对应的容器集群中的部署状态。
其中,基于该第二镜像库中的镜像文件,在该容器集群中部署该目标应用的方式可以有多种,例如,可以通过该容器集群解析该第二镜像库中的镜像文件,得到该环境变量对应的容器组信息以及环境参数,基于该容器组信息在该容器集群中确定目标容器组,并基于该环境参数对该目标容器组的配置信息进行更新,根据更新后的目标容器组在该容器集群中部署该目标应用。
其中,该容器组信息可以为确定容器集群中负责目标组件的部署的容器组的信息,该环境参数可以为目标组件在目标部署环境中进行部署所需要的环境变量的参数,该目标容器组可以为容器集群中负责目标组件部署的容器组(pod)。
其中,基于该容器组信息在该容器集群中确定目标容器组的方式可以有多种,例如,在容器集群中部署(deploy)目标组件的镜像文件时,可以在容器集群中通过解析镜像文件中的目标配置脚本,从而可以获取到目标组件对应的容器组信息以及环境参数,其中,容器组信息可以包括目标组件对应的命名空间(NAMESPACE)信息、集群(CLUSTER)信息等信息,以此可以根据命名空间信息确定容器集群中的命名空间,从而可以根据集群信息确定命名空间中的集群,进而可以根据容器集群中的资源调度策略在该集群中确定目标容器组。
其中,该环境参数可以为环境变量对应的配置文件(ConfigMap)中描述的环境变量的参数,将ConfigMap中的配置信息挂载在到目标容器组的配置文件中对应另一种标记语言(yaml)的环境变量参数(env)中,以实现基于目标组件在目标部署环境中对应的环境变量对目标容器组的配置信息中的环境变量参数的更新。从而可以启动目标容器组,实现对目标组件的部署,也即对目标应用的部署。以此,通过镜像仓库将目标应用部署到测试、开发、生产等多环境中,并在应用发布时将依赖的目标部署环境的环境变量注入到容器集群的环境变量中,从而容器集群可以将目标应用在镜像部署时获取其依赖且已注入的环境变量来实现应用服务的启动,进而实现目标应用的多环境部署以及发布,简化了应用部署的流程,提高了应用部署的效率。
由以上可知,本申请实施例通过获取目标应用对应的组件部署参数;基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建目标应用的目标组件;获取目标组件对应的组件配置信息,并基于组件配置信息和目标部署环境,在预设环境参数配置池中识别出目标组件对应的环境变量;根据环境变量构建目标组件对应的镜像文件;基于镜像文件,在目标应用对应的容器集群中部署目标应用。以此,通过在候选组件集合中筛选出构成目标应用的目标组件,并根据目标组件的组件配置信息和目标应用的目标部署环境,在预设环境参数配置池中识别出匹配的环境变量,从而基于环境变量来构建目标组件的镜像文件,以此基于目标应用的部署环境以及目标组件的组件配置信息确定的镜像文件实现目标应用在目标部署环境中的部署,简化了应用在多环境中的部署流程,缩短了应用发布上线的周期,进而提高了应用部署的效率。
根据上面实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该应用部署装置具体集成在计算机设备为例进行说明。其中,该应用部署方法以服务器为执行主体为例进行具体的描述。
为了更好的描述本申请实施例,请参阅图6,图6为本申请实施例提供的应用部署方法的另一流程示意图。具体流程如下:
在步骤201中,服务器获取目标应用对应的组件部署参数,基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建目标应用的目标组件。
其中,本申请实施例提供的应用部署方法可以为集成于低代码平台中,以通过低代码平台来实现目标应用在测试、开发、生产等多环境中的部署。
其中,服务器获取目标应用对应的组件部署参数的方式可以有多种,例如,服务器可以直接接收开发人员上传的组件部署参数,也可以根据开发人员的操作行为来获取目标应用对应的组件部署参数。譬如,开发人员可以在低代码平台中进行目标应用的创建,例如,在低代码平台中选择目标应用对应的组件,以及选中目标应用的部署环境等操作,从而基于开发人员的创建操作,可以获取目标应用对应的组件部署信息。
服务器在获取目标应用对应的组件部署参数之后,便可以基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建目标应用的目标组件。其中,服务器基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建目标应用的目标组件的方式可以有多种,例如,可以在组件部署参数中提取出目标应用对应的环境信息以及组件信息,根据该环境信息确定目标应用对应的目标部署环境,同时可以根据该组件信息,在候选组件集合中筛选出至少一个目标组件。
其中,该环境信息可以为描述目标应用的部署环境的信息,该组件信息可以为描述构成目标应用的组件的信息。
其中,服务器获取候选组件集合的方式可以有多种,例如,服务器可以通过低代码平台导入组件,从而可以得到候选组件集合。可选的,请继续参考图3,其中,组件提供方可以为进行组件开发的一方,组件使用方可以为使用组件服务的一方,组件提供方可以根据预先约定好的组件规范开发组件,通过脚手架工具(例如Goff脚手架)初始化组件开发的工程代码,并可以接入软件研发管理平台(Coding)进行代码托管,从而可以根据业务需求进行业务应用服务的开发,并可以采用版本控制工具(Liquibase)对组件开发的相关数据库脚本进行初始化,在进行应用编排时,可以将应用的组件进行容器化,并声明组件依赖的中间件与其他的组件服务,在组件开发完成后可以将组件对应的组件库上传至软件及服务(Software as service,简称SaaS)平台中进行管理,同时可以将组件库对应的组件包(docker package)上传至应用包管理器(hlem)中进行管理。从而低代码平台可以通过SaaS服务获取组件,并进行组件库的导入,进而可以基于导入的组件库得到候选组件集合。
可选的,服务器在进行组件库导入时,可以将导入的组件进行多环境的部署,例如,假设导入组件A对应的组件库,则可以在需要部署应用的容器集群中分别部署测试环境的组件A、开发环境的组件A、生产环境的组件A等。从而可以在项目中新建目标应用,并获取目标应用的组件部署参数,从而可以根据组件部署参数确定目标部署环境以及目标组件,并拖入目标组件进行应用开发与部署。
其中,组件的使用方在通过低代码平台进行组件库导入时,可以先导入组件对应的前端组件库资源,然后,可以查看后端组件库服务是否存在依赖的组件库或者中间件未进行部署,若存在未部署的组件库或者中间件等依赖服务时,可以拉取低代码平台部署依赖服务,从而可以部署前端资源依赖的后端组件服务。然后,服务器可以将部署的服务接口通过服务注册中心(consul)进行接口暴露,以实现组件的服务接口的调用。
在步骤202中,服务器获取目标组件基于目标部署环境的部署状态,在部署状态为未部署状态时,获取目标组件对应的组件配置信息。
可选的,服务器在进行目标应用的创建和部署之前,可以通过低代码平台在应用部署的容器集群中先对导入的组件进行多环境的部署,从而可以在创建目标应用时,先查询目标组件在目标部署环境下的部署状态,在目标组件还未在目标部署环境中部署完成时,可以获取目标组件对应的组件配置信息,以进行候选的目标组件的部署操作。可选的,在目标组件已经在目标部署环境中部署完成时,服务器可以不进行目标组件的部署
在步骤203中,服务器在组件配置信息中提取出目标组件对应的环境变量声明信息,在预设环境参数配置池中确定目标部署环境对应的候选环境变量,基于环境变量声明信息,在候选环境变量中筛选出目标组件对应的环境变量。
在一实施例中,请参考图4,假设服务器根据目标应用的组件部署参数在候选组件集合中筛选出目标组件X,在目标组件X未进行部署时,服务器可以获取组件X对应的组件配置信息(application.yaml)并进行解析,从而可以获取到组件X对应的服务依赖(dependencies)、动作(actions)、环境变量声明(env-config)、服务回调地址(service-hook)等变量信息,从而可以读取解析后的组件配置信息,当dependencies信息中描述组件X存在依赖的其他组件时,可以查看依赖组件是否已部署,若没有部署,则可以先部署依赖组件。在依赖组件部署完成之后,可以根据解析出的变量信息env-config在低代码平台中的预设环境参数配置池中提供的测试环境、开发环境、生产环境等多环境的候选环境变量中选择目标部署环境中的环境变量,例如,可以选择测试环境下的中间件配置、缓存配置、数据库配置、同步数据配置以及自定义配置等环境参数,从而可以得到组件X在目标部署环境中的环境变量。
在步骤204中,服务器在组件配置信息中提取出目标组件对应的组件依赖信息,基于组件依赖信息,识别出目标组件对应的依赖组件以及中间件,并获取依赖组件以及中间件的依赖镜像文件。
其中,该组件依赖信息可以为描述目标组件所依赖的组件以及中间件等服务的信息,该依赖组件可以为目标组件依赖的组件,该中间件可以为连接软件组件和应用的计算机软件,例如,可以为MySQL、Redis等类型的中间件。该依赖镜像文件可以为将依赖组件以及中间件打包得到的镜像文件,该组件镜像文件可以为将目标组件进行打包得到的镜像文件。
在步骤205中,服务器获取前置配置脚本,并在前置配置脚本中提取出关键信息,根据关键信息将环境变量注入至前置配置脚本,得到目标配置脚本。
其中,服务器根据该关键信息将该环境变量注入至该前置配置脚本的方式可以有多种,例如,服务器可以根据该关键信息,提取出环境变量对应的参数值,从而可以将每一参数值填充到对应的关键信息所在配置项的值中,得到目标配置脚本。
在步骤206中,服务器基于目标配置脚本,构建目标组件对应的组件镜像文件,并将组件镜像文件以及依赖镜像文件作为目标组件对应的镜像文件。
其中,服务器基于该目标配置脚本,构建该目标组件对应的组件镜像文件的方式可以有多种,例如,服务器可以将目标组件对应的组件包以及目标配置脚本进行打包并制作为镜像,得到目标组件对应的组件镜像文件。
在一实施例中,服务器可以采用流水线来根据环境变量构建目标组件对应的镜像文件,具体的,服务器可以将目标组件的环境变量的配置信息进行加密,并将加密后的环境变量发送至构建的流水线(Continuous integration,简称CI,也作持续集成)中,请继续参考图4,服务器可以根据目标部署环境构建流水线:设置主机组、服务名称、前置脚本(前置配置脚本),其中,设置主机组可以指设置负责部署目标组件的流水线服务的主机,服务器名称可以为流水线服务的名称,以此可以通过流水线接收加密后的环境变量的配置信息,然后将加密后的环境变量的配置信息进行解密,并将环境变量对应的值注入到前置配置脚本中,从而可以得到目标配置脚本。以此,服务器可以将目标组件以及目标配置脚本进行打包并制作镜像,通过组件包管理器helm推送到Coding的docker的镜像仓库中。
在步骤207中,服务器将镜像文件推送到第一镜像库,并通过预设网关接入服务检测针对镜像文件的推送请求,当接收到容器集群发送的针对镜像文件的推送请求时,获取容器集群挂载到预设网关接入服务的镜像拉取地址,并通过镜像拉取地址,将镜像文件推送至容器集群对应的第二镜像库。
例如,请参考图5,开发人员在开发过程中,可以将应用部署的相关代码提交到互联网区域中的软件研发管理平台Coding平台中进行代码托管,在对目标应用的目标组件进行部署时,可以先将目标组件对应的代码进行检出,然后通过Coding平台的流水线将目标组件对应的镜像文件推送(push)到Coding的互联网制品库,即第一镜像库。局域网等进行应用部署的私有网络可以通过代理服务器(nginx)将拉取互联网区镜像制品(即镜像文件)的HTTP地址(即镜像拉取地址)挂载到网关接入服务(即预设网关接入服务)中。以此,网关接入服务可以通过轮训查看的方式将镜像文件push到私有网络的镜像仓库中,例如,当网关接入服务接收到私有网络中容器集群发送的针对镜像文件的推送请求时,可以获取该容器集群挂载到该预设网关接入服务的镜像拉取地址,并通过该镜像拉取地址,将该镜像文件推送到该私有网络中部署的软件研发管理平台代理服务(Codingagentserver)的docker制品库中,从而可以将该镜像文件推送至该容器集群所在微服务平台对应的TSF镜像库(即第二镜像库)中。其中,平台代理Codingagent可以为Codingagentserver中的一个代理,TSF应用全生命周期管理平台可以为容器集群中节点服务实现的一个在私有网络中用于管理应用的生命周期的微服务平台,在将目标应用部署在私有网络中时,可以通过该私有网络中的TSF应用全生命周期管理平台来对部署的目标应用的全生命周期进行管理。可选的,服务器可以通过Codingagentserver来调用微服务平台对应的用于应用部署的TSF应用程序编程接口(Application Programming Interface,简称API)来获取应用部署的状态,在将本申请实施例提供的应用部署方法应用在低代码平台中时,低代码平台可以通过调用Codingagentserver中的TSF接口服务来查询目标组件在TSF平台对应的容器集群中的部署状态,以基于目标组件的部署状态,实现目标应用的部署。
在步骤208中,服务器通过容器集群解析第二镜像库中的镜像文件,得到环境变量对应的容器组信息以及环境参数,基于容器组信息在容器集群中确定目标容器组,并基于环境参数对目标容器组的配置信息进行更新,根据更新后的目标容器组在容器集群中部署目标应用。
其中,服务器基于该容器组信息在该容器集群中确定目标容器组的方式可以有多种,例如,在容器集群中部署(deploy)目标组件的镜像文件时,服务器可以在容器集群中通过解析镜像文件中的目标配置脚本,从而可以获取到目标组件对应的容器组信息以及环境参数,其中,容器组信息可以包括目标组件对应的命名空间(NAMESPACE)信息、集群(CLUSTER)信息等信息,以此可以根据命名空间信息确定容器集群中的命名空间,从而可以根据集群信息确定命名空间中的集群,进而可以根据容器集群中的资源调度策略在该集群中确定目标容器组。
其中,该环境参数可以为环境变量对应的配置文件(ConfigMap)中描述的环境变量的参数,将ConfigMap中的配置信息挂载在到目标容器组的配置文件中对应另一种标记语言(yaml)的环境变量参数(env)中,以实现基于目标组件在目标部署环境中对应的环境变量对目标容器组的配置信息中的环境变量参数的更新。从而可以启动目标容器组,实现对目标组件的部署,也即对目标应用的部署。以此,通过镜像仓库将目标应用部署到测试、开发、生产等多环境中,并在应用发布时将依赖的目标部署环境的环境变量注入到容器集群的环境变量中,从而容器集群可以将目标应用在镜像部署时获取其依赖且已注入的环境变量来实现应用服务的启动,进而实现目标应用的多环境部署以及发布,简化了应用部署的流程,提高了应用部署的效率。
由以上可知,本申请实施例通过服务器获取目标应用对应的组件部署参数,基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建目标应用的目标组件;服务器获取目标组件基于目标部署环境的部署状态,在部署状态为未部署状态时,获取目标组件对应的组件配置信息;服务器在组件配置信息中提取出目标组件对应的环境变量声明信息,在预设环境参数配置池中确定目标部署环境对应的候选环境变量,基于环境变量声明信息,在候选环境变量中筛选出目标组件对应的环境变量;服务器在组件配置信息中提取出目标组件对应的组件依赖信息,基于组件依赖信息,识别出目标组件对应的依赖组件以及中间件,并获取依赖组件以及中间件的依赖镜像文件;服务器获取前置配置脚本,并在前置配置脚本中提取出关键信息,根据关键信息将环境变量注入至前置配置脚本,得到目标配置脚本;服务器基于目标配置脚本,构建目标组件对应的组件镜像文件,并将组件镜像文件以及依赖镜像文件作为目标组件对应的镜像文件;服务器将镜像文件推送到第一镜像库,并通过预设网关接入服务检测针对镜像文件的推送请求,当接收到容器集群发送的针对镜像文件的推送请求时,获取容器集群挂载到预设网关接入服务的镜像拉取地址,并通过镜像拉取地址,将镜像文件推送至容器集群对应的第二镜像库;服务器通过容器集群解析第二镜像库中的镜像文件,得到环境变量对应的容器组信息以及环境参数,基于容器组信息在容器集群中确定目标容器组,并基于环境参数对目标容器组的配置信息进行更新,根据更新后的目标容器组在容器集群中部署目标应用。以此,通过在候选组件集合中筛选出构成目标应用的目标组件,并根据目标组件的组件配置信息和目标应用的目标部署环境,在预设环境参数配置池中识别出匹配的环境变量,从而基于环境变量来构建目标组件的组件镜像文件,同时,可以根据目标组件的组件依赖信息,获取目标组件对应的依赖组件以及中间件的依赖镜像文件,从而将组件镜像文件以及依赖镜像文件作为目标组件对应的镜像文件并推送到容器集群中,以此基于目标应用的部署环境以及目标组件的组件配置信息确定的镜像文件实现目标应用在目标部署环境中的部署,简化了应用在多环境中的部署流程,缩短了应用发布上线的周期,进而提高了应用部署的效率。
为了更好地实施以上方法,本发明实施例还提供一种应用部署装置,该应用部署装置可以集成在计算机设备中,该计算机设备可以为服务器。
例如,如图7所示,为本申请实施例提供的应用部署装置的结构示意图,该应用部署装置可以包括获取单元301、确定单元302、识别单元303、构建单元304和部署单元305,如下:
获取单元301,用于获取目标应用对应的组件部署参数;
确定单元302,用于基于该组件部署参数确定该目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建该目标应用的目标组件;
识别单元303,用于获取该目标组件对应的组件配置信息,并基于该组件配置信息和目标部署环境,在预设环境参数配置池中识别出该目标组件对应的环境变量;
构建单元304,用于根据该环境变量构建该目标组件对应的镜像文件,该镜像文件为将该目标应用部署在该目标部署环境中的文件;
部署单元305,用于基于该镜像文件,在该目标应用对应的容器集群中部署该目标应用。
在一实施例中,该识别单元303,包括:
环境变量声明信息提取子单元,用于在该组件配置信息中提取出该目标组件对应的环境变量声明信息;
候选环境变量确定子单元,用于在预设环境参数配置池中确定该目标部署环境对应的候选环境变量;
环境变量筛选子单元,用于基于该环境变量声明信息,在该候选环境变量中筛选出该目标组件对应的环境变量。
在一实施例中,该构建单元304,包括:
组件依赖信息提取子单元,用于在该组件配置信息中提取出该目标组件对应的组件依赖信息;
依赖镜像文件获取子单元,用于基于该组件依赖信息,识别出该目标组件对应的依赖组件以及中间件,并获取该依赖组件以及中间件的依赖镜像文件;
组件镜像文件构建子单元,用于根据该环境变量构建该目标组件对应的组件镜像文件,并将该组件镜像文件以及依赖镜像文件作为该目标组件对应的镜像文件。
在一实施例中,该组件镜像文件构建子单元,包括:
关键信息提取模块,用于获取前置配置脚本,并在该前置配置脚本中提取出关键信息;
环境变量注入模块,用于根据该关键信息将该环境变量注入至该前置配置脚本,得到目标配置脚本;
镜像构建模块,用于基于该目标配置脚本,构建该目标组件对应的组件镜像文件。
在一实施例中,该部署单元305,包括:
检测子单元,用于将该镜像文件推送到第一镜像库,并通过预设网关接入服务检测针对该镜像文件的推送请求;
推送子单元,用于当接收到容器集群发送的针对该镜像文件的推送请求时,获取该容器集群挂载到该预设网关接入服务的镜像拉取地址,并通过该镜像拉取地址,将该镜像文件推送至该容器集群对应的第二镜像库;
部署子单元,用于基于该第二镜像库中的镜像文件,在该容器集群中部署该目标应用
在一实施例中,该部署子单元,包括:
解析模块,用于通过该容器集群解析该第二镜像库中的镜像文件,得到该环境变量对应的容器组信息以及环境参数;
更新模块,用于基于该容器组信息在该容器集群中确定目标容器组,并基于该环境参数对该目标容器组的配置信息进行更新;
部署模块,用于根据更新后的目标容器组在该容器集群中部署该目标应用。
在一实施例中,该识别单元303,包括:
状态获取子单元,用于获取该目标组件基于该目标部署环境的部署状态;
信息获取子单元,用于在该部署状态为未部署状态时,获取该目标组件对应的组件配置信息。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由以上可知,本申请实施例通过获取单元301获取目标应用对应的组件部署参数;确定单元302基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建目标应用的目标组件;识别单元303获取目标组件对应的组件配置信息,并基于组件配置信息和目标部署环境,在预设环境参数配置池中识别出目标组件对应的环境变量;构建单元304根据环境变量构建目标组件对应的镜像文件;部署单元305基于镜像文件,在目标应用对应的容器集群中部署目标应用。以此,通过在候选组件集合中筛选出构成目标应用的目标组件,并根据目标组件的组件配置信息和目标应用的目标部署环境,在预设环境参数配置池中识别出匹配的环境变量,从而基于环境变量来构建目标组件的镜像文件,以此基于目标应用的部署环境以及目标组件的组件配置信息确定的镜像文件实现目标应用在目标部署环境中的部署,简化了应用在多环境中的部署流程,缩短了应用发布上线的周期,进而提高了应用部署的效率。
本申请实施例还提供一种计算机设备,如图8所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,该计算机设备可以是服务器,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图8中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及应用部署。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取目标应用对应的组件部署参数;基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建目标应用的目标组件;获取目标组件对应的组件配置信息,并基于组件配置信息和目标部署环境,在预设环境参数配置池中识别出目标组件对应的环境变量;根据环境变量构建目标组件对应的镜像文件;基于镜像文件,在目标应用对应的容器集群中部署目标应用。
以上各个操作的具体实施可参见前面的实施例,在此不作赘述。应当说明的是,本申请实施例提供的计算机设备与上文实施例中的适用于应用部署方法属于同一构思,其具体实现过程详见以上方法实施例,此处不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种应用部署方法中的步骤。例如,该指令可以执行如下步骤:
获取目标应用对应的组件部署参数;基于组件部署参数确定目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建目标应用的目标组件;获取目标组件对应的组件配置信息,并基于组件配置信息和目标部署环境,在预设环境参数配置池中识别出目标组件对应的环境变量;根据环境变量构建目标组件对应的镜像文件;基于镜像文件,在目标应用对应的容器集群中部署目标应用。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请实施例所提供的任一种应用部署方法中的步骤,因此,可以实现本申请实施例所提供的任一种应用部署方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
其中,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例提供的各种可选实现方式中提供的方法。
以上对本申请实施例所提供的一种应用部署方法、装置和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种应用部署方法,其特征在于,包括:
获取目标应用对应的组件部署参数;
基于所述组件部署参数确定所述目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建所述目标应用的目标组件;
获取所述目标组件对应的组件配置信息,并基于所述组件配置信息和目标部署环境,在预设环境参数配置池中识别出所述目标组件对应的环境变量;
根据所述环境变量构建所述目标组件对应的镜像文件,所述镜像文件为将所述目标应用部署在所述目标部署环境中的文件;
基于所述镜像文件,在所述目标应用对应的容器集群中部署所述目标应用。
2.如权利要求1所述的应用部署方法,其特征在于,所述基于所述组件配置信息和目标部署环境,在预设环境参数配置池中识别出所述目标组件对应的环境变量,包括:
在所述组件配置信息中提取出所述目标组件对应的环境变量声明信息;
在预设环境参数配置池中确定所述目标部署环境对应的候选环境变量;
基于所述环境变量声明信息,在所述候选环境变量中筛选出所述目标组件对应的环境变量。
3.如权利要求1所述的应用部署方法,其特征在于,所述根据所述环境变量构建所述目标组件对应的镜像文件,包括:
在所述组件配置信息中提取出所述目标组件对应的组件依赖信息;
基于所述组件依赖信息,识别出所述目标组件对应的依赖组件以及中间件,并获取所述依赖组件以及中间件的依赖镜像文件;
根据所述环境变量构建所述目标组件对应的组件镜像文件,并将所述组件镜像文件以及依赖镜像文件作为所述目标组件对应的镜像文件。
4.如权利要求3所述的应用部署方法,其特征在于,所述根据所述环境变量构建所述目标组件对应的组件镜像文件,包括:
获取前置配置脚本,并在所述前置配置脚本中提取出关键信息;
根据所述关键信息将所述环境变量注入至所述前置配置脚本,得到目标配置脚本;
基于所述目标配置脚本,构建所述目标组件对应的组件镜像文件。
5.如权利要求1所述的应用部署方法,其特征在于,所述基于所述镜像文件,在所述目标应用对应的容器集群中部署所述目标应用,包括:
将所述镜像文件推送到第一镜像库,并通过预设网关接入服务检测针对所述镜像文件的推送请求;
当接收到容器集群发送的针对所述镜像文件的推送请求时,获取所述容器集群挂载到所述预设网关接入服务的镜像拉取地址,并通过所述镜像拉取地址,将所述镜像文件推送至所述容器集群对应的第二镜像库;
基于所述第二镜像库中的镜像文件,在所述容器集群中部署所述目标应用。
6.如权利要求5所述的应用部署方法,其特征在于,所述基于所述第二镜像库中的镜像文件,在所述容器集群中部署所述目标应用,包括:
通过所述容器集群解析所述第二镜像库中的镜像文件,得到所述环境变量对应的容器组信息以及环境参数;
基于所述容器组信息在所述容器集群中确定目标容器组,并基于所述环境参数对所述目标容器组的配置信息进行更新;
根据更新后的目标容器组在所述容器集群中部署所述目标应用。
7.如权利要求1所述的应用部署方法,其特征在于,所述获取所述目标组件对应的组件配置信息,包括:
获取所述目标组件基于所述目标部署环境的部署状态;
在所述部署状态为未部署状态时,获取所述目标组件对应的组件配置信息。
8.一种应用部署装置,其特征在于,包括:
获取单元,用于获取目标应用对应的组件部署参数;
确定单元,用于基于所述组件部署参数确定所述目标应用对应的目标部署环境,以及在候选组件集合中筛选出至少一个用于构建所述目标应用的目标组件;
识别单元,用于获取所述目标组件对应的组件配置信息,并基于所述组件配置信息和目标部署环境,在预设环境参数配置池中识别出所述目标组件对应的环境变量;
构建单元,用于根据所述环境变量构建所述目标组件对应的镜像文件,所述镜像文件为将所述目标应用部署在所述目标部署环境中的文件;
部署单元,用于基于所述镜像文件,在所述目标应用对应的容器集群中部署所述目标应用。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的应用部署方法中的步骤。
10.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可以在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的应用部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211139666.6A CN117762427A (zh) | 2022-09-19 | 2022-09-19 | 应用部署方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211139666.6A CN117762427A (zh) | 2022-09-19 | 2022-09-19 | 应用部署方法、装置和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117762427A true CN117762427A (zh) | 2024-03-26 |
Family
ID=90314999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211139666.6A Pending CN117762427A (zh) | 2022-09-19 | 2022-09-19 | 应用部署方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117762427A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118409759A (zh) * | 2024-06-28 | 2024-07-30 | 杭州云掣科技有限公司 | 基于go语言的自定义离线产品包部署方法及系统 |
-
2022
- 2022-09-19 CN CN202211139666.6A patent/CN117762427A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118409759A (zh) * | 2024-06-28 | 2024-07-30 | 杭州云掣科技有限公司 | 基于go语言的自定义离线产品包部署方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111737032A (zh) | 一种基于微内核系统的子程序运行方法、装置和电子设备 | |
CN103283209B (zh) | 一种应用服务平台系统及其实现方法 | |
US20180113799A1 (en) | Model generation for model-based application testing | |
US20080301629A1 (en) | Integrating aspect oriented programming into the application server | |
US8806475B2 (en) | Techniques for conditional deployment of application artifacts | |
CN111090423B (zh) | 一种webhook框架系统和实现主动调用、实现事件触发的方法 | |
US8640146B2 (en) | Providing extensive ability for describing a management interface | |
US11853808B2 (en) | Visual cluster deployment and operation system and method | |
CN117093286B (zh) | 插件生成方法、装置、设备及计算机可读存储介质 | |
Gómez et al. | A model-based approach for developing event-driven architectures with AsyncAPI | |
CN113360377A (zh) | 一种测试方法和装置 | |
CN117762427A (zh) | 应用部署方法、装置和计算机可读存储介质 | |
US9996344B2 (en) | Customized runtime environment | |
US10182009B1 (en) | Creating endpoints | |
US20080301711A1 (en) | Providing a POJO-based microcontainer for an application server | |
CN114115884B (zh) | 一种编程服务的管理方法以及相关装置 | |
WO2023228127A1 (en) | Techniques for code isolation in static analysis of applications using application framework | |
US12045588B2 (en) | Techniques for recording operations in an application utilizing external initialization engines | |
US20230385089A1 (en) | Dynamic application framework mocking in static analysis | |
CN112732265A (zh) | 一种数据处理方法和相关装置 | |
CN109120473B (zh) | 接口请求框架实现方法、接口测试方法及其对应的装置 | |
CN115729590A (zh) | 服务部署方法、装置、设备和计算机可读存储介质 | |
CN114356520A (zh) | 微应用的运行方法、装置、设备、存储介质及程序产品 | |
CN114610343A (zh) | 一种应用功能实现方法、装置、计算机设备及存储介质 | |
CN112667491A (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 |