CN112764753B - 一种项目的部署方法、装置、电子设备及存储介质 - Google Patents
一种项目的部署方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112764753B CN112764753B CN202011618329.6A CN202011618329A CN112764753B CN 112764753 B CN112764753 B CN 112764753B CN 202011618329 A CN202011618329 A CN 202011618329A CN 112764753 B CN112764753 B CN 112764753B
- Authority
- CN
- China
- Prior art keywords
- service
- deployed
- deployment
- environment
- sub
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000009826 distribution Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- 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/60—Software deployment
- G06F8/65—Updates
-
- 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
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种项目的部署方法、装置、电子设备及存储介质,所述方法包括:获取待更新子项目的待部署代码,并对所述待部署代码进行编译,确定所述待更新子项目对应的可执行代码包;基于所述可执行代码包,生成所述待更新子项目的目标镜像文件;针对所述待更新子项目,根据所述目标镜像文件创建所述待更新子项目对应的待部署服务;针对于所述待部署服务,识别所述待部署服务的所属环境,将所述待部署服务部署到所属环境对应的服务器上。本申请可以针对不同的部署环境,将服务部署在相对应的服务器上,在提高服务的部署效率的同时,减轻了运维人员的工作压力。
Description
技术领域
本发明涉及项目部署技术领域,具体而言,涉及一种项目的部署方法、装置、电子设备及存储介质。
背景技术
随着项目迭代速度的提高,我们需要持续集成的对项目进行开发与部署,传统的部署模式是由开发人员对项目进行开发与测试,再由运维人员在单独的服务器上进行部署,而随着项目越来越大,项目的模块也随之增多,导致需要部署在服务器上应用程序变得越来越复杂,同时对中间件的数据及配置进行增删改的动作也越来越多,并且,对于运维人员来说,面对成百上千台服务器,使用传统的模式来部署包含多个组件的应用程序,效率低且容易出错。
发明内容
有鉴于此,本申请的目的在于提供了一种项目的部署方法、装置、电子设备及存储介质,针对不同的部署环境,将服务部署在相对应的服务器上,在提高服务的部署效率的同时,减轻了运维人员的工作压力。
第一方面,本发明实施例提供了一种项目的部署方法,所述部署方法包括:
获取待更新子项目的待部署代码,并配置所述待更新子项目在各个部署环境下的环境变量参数信息和服务启动参数信息;
对所述待部署代码进行编译,确定所述待更新子项目对应的可执行代码包;
基于所述可执行代码包,生成所述待更新子项目的目标镜像文件;
针对于每个部署环境下的环境变量参数信息,根据所述目标镜像文件、所述部署环境下的环境变量参数信息以及所述服务启动参数信息,创建所述待更新子项目在该部署环境下对应的至少一个待部署服务;
针对于每个待部署服务,识别所述待部署服务的所属部署环境,将所述待部署服务部署到所属部署环境对应的服务器上。
可选的,所述获取待更新子项目的待部署代码之后,所述部署方法还包括:
关闭所述待更新子项目在各个服务器中已部署的历史部署服务。
可选的,所述基于所述可执行代码包,生成所述待更新子项目的目标镜像文件之后,所述部署方法还包括:
将所述目标镜像文件存储至所述待更新子项目所属的目标应用的中央镜像仓库中。
可选的,所述针对于每个部署环境下的环境变量参数信息,根据所述目标镜像文件、所述部署环境下的环境变量参数信息以及所述服务启动参数信息,创建所述待更新子项目在该部署环境下对应的至少一个待部署服务,包括,包括:
基于所述环境变量参数信息和所述服务启动参数信息成所述待更新子项目对应的配置文件;
根据目标镜像文件和所述配置文件,创建所述待更新子项目对应的待部署服务。
可选的,所述针对于每个待部署服务,确定所述待部署服务的所属部署环境,将所述待部署服务部署到所属部署环境对应的服务器上,包括:
根据所述待部署服务的环境变量参数信息,确定待部署服务的所属部署环境;
根据预设的分发机制,将属于同一环境中的待部署服务部署到所属部署环境对应的多个服务器上。
第二方面,本发明实施例提供了一种项目的部署装置,所述部署装置包括:
获取模块,具体用于获取待更新子项目的待部署代码,并配置所述待更新子项目在各个部署环境下的环境变量参数信息和服务启动参数信息;
代码编译模块,具体用于对所述待部署代码进行编译,确定所述待更新子项目对应的可执行代码包;
镜像生成模块,具体用于基于所述可执行代码包,生成所述待更新子项目的目标镜像文件;
服务创建模块,具体用于针对于每个部署环境下的环境变量参数信息,根据所述目标镜像文件、所述部署环境下的环境变量参数信息以及所述服务启动参数信息,创建所述待更新子项目在该部署环境下对应的至少一个待部署服务;
服务部署模块,具体用于针对于每个待部署服务,识别所述待部署服务的所属部署环境,将所述待部署服务部署到所属部署环境对应的服务器上。
可选的,所述服务创建模块在用于针对于每个部署环境下的环境变量参数信息,根据所述目标镜像文件、所述部署环境下的环境变量参数信息以及所述服务启动参数信息,创建所述待更新子项目在该部署环境下对应的至少一个待部署服务时,所述服务创建模块用于:
基于所述环境变量参数信息和所述服务启动参数信息成所述待更新子项目对应的配置文件;
根据目标镜像文件和所述配置文件,创建所述待更新子项目对应的待部署服务。
可选的,所述服务部署模块,在用于针对于每个待部署服务,具体用于识别所述待部署服务的所属部署环境,将所述待部署服务部署到所属部署环境对应的服务器上时,所述服务部署模块用于:
根据所述待部署服务的环境变量参数信息,确定待部署服务的所属部署环境;
根据预设的分发机制,将属于同一环境中的待部署服务部署到所属部署环境对应的多个服务器上。
第三方面,本发明实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述项目的部署方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述项目的部署方法的步骤。
本申请通过获取待更新子项目的待部署代码,并对所述待部署代码进行编译,确定所述待更新子项目对应的可执行代码包;基于所述可执行代码包,生成所述待更新子项目的目标镜像文件;针对所述待更新子项目,根据所述目标镜像文件创建所述待更新子项目对应的待部署服务;针对于所述待部署服务,识别所述待部署服务的所属环境,将所述待部署服务部署到所属环境对应的服务器上。
这样,本申请可以针对不同的部署环境,将服务部署在相对应的服务器上,在提高服务的部署效率的同时,减轻了运维人员的工作压力。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的一种项目的部署方法的流程图;
图2示出了项目部署流程的示意图;
图3示出了本发明实施例所提供的一种项目的部署装置的结构示意图之一;
图4示出了本发明实施例所提供的一种项目的部署装置的结构示意图之二;
图5示出了本发明实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
有鉴于此,本发明实施例提供了一种项目的部署方法,可以提高服务的部署效率,减轻运维人员的工作压力。
随着开发的进行,项目会持续增大,导致每一次编译都需要消耗大量的时间,但是,对于项目而言,往往只是修改了其中一部分的代码,在部署项目时,并不需要每次都将整个项目进行更新,因此,为了便于项目的部署,可以将项目分为不同的子项目,针对于其中的子项目,对项目代码进行更新。
如图1所示,图1为本申请提供的一种项目的部署方法的步骤流程图,所述部署方法包括以下步骤:
S101,获取待更新子项目的待部署代码,并配置待更新子项目在各个部署环境下的环境变量参数信息和服务启动参数信息。
该步骤中,当开发人员将待更新子项目的待部署代码放入代码仓库后,即可从代码仓库中获取待更新子项目的待部署代码,作为示例,针对于开发环境和测试环境,当开发人员将待更新子项目的待部署代码放入代码仓库后,Jenkins工具可以自动从代码仓库中获取待部署代码,针对于预发布环境和生产环境,则需要由运维人员启动Jenkins工具,然后Jenkins工具从代码仓库中获取待部署代码。
其中,针对于不同的部署环境,需要配置不同的环境变量参数信息,本实施例中,使用命名空间作为环境变量参数信息,以标记待更新项目所属的部署环境。
这里,为了在将待部署服务部署在服务器上之后,服务能够正常启动,还需要使用配置中心提前配置好服务启动参数信息,依据该服务启动参数信息可以使服务正常启动。
进一步的,在所述获取待更新子项目的待部署代码之前,所述部署方法还包括:关闭所述待更新子项目在各个服务器中已部署的历史部署服务。
该步骤中,确定出待更新子项目对应的在各个服务器中已部署的历史部署服务,并将历史部署服务关闭。
S102,对待部署代码进行编译,确定待更新子项目对应的可执行代码包。
该步骤中,对待部署代码进行编译的过程就是将高级语言变为计算机可识别的二进制语言的过程,开发人员向代码仓库所提交的待部署代码为源代码,源代码不能够被计算机所识别,因此,需要将待部署代码进行编译,已生成可以被计算机识别的可执行代码,并将该可执行代码打包成一个可执行代码包。
S103,基于可执行代码包,生成待更新子项目的目标镜像文件。
该步骤中,基于生成的待更新子项目对应的可执行代码包,使用Docker容器生成待更新子项目对应的目标镜像文件。具体的,将可执行代码包进行复制,生成与可执行代码包完全相同的一个可读的副本,将该副本作为可执行代码包的目标镜像文件。
这里,依据之前被关闭的历史部署服务,识别出待更新子项目的历史部署服务所对应的服务器,从服务器的本地镜像仓库中识别出待更新项目的历史镜像文件,并从服务器的本地镜像仓库中将该历史镜像文件删除,以便为待部署服务提供可用的部署空间。
进一步的,在步骤S103之后,所述部署还包括:将目标镜像文件存储至待更新子项目所属的目标应用的中央镜像仓库中。
该步骤中,将生成的待更新子项目的目标镜像文件存储于中央镜像仓库中,该中央镜像仓库还储存有待更新子项目所对应历史镜像文件,以便在必要时可以从中央镜像仓库中调取历史镜像文件。
S104,针对于每个部署环境下的环境变量参数信息,针对于每个部署环境下的环境变量参数信息,根据目标镜像文件、部署环境下的环境变量参数信息以及服务启动参数信息,创建待更新子项目在该部署环境下对应的至少一个待部署服务。
该步骤中,由于目标镜像文件只是一个可读的副本,不能够将其直接部署于服务器上,因此,需要创建相对应的待部署服务,并将待部署服务部署于服务器上,以对待更新子项目进行更新。
进一步的,步骤S104包括:基于环境变量参数信息和服务启动参数信息成待更新子项目对应的配置文件;根据目标镜像文件和所述配置文件,所述待更新子项目在该部署环境下对应的至少一个待部署服务。
该步骤中,针对于每个部署环境下的环境变量参数信息,基于环境变量参数信息和服务启动参数信息成待更新子项目对应的配置文件,具体的,对于不同的部署环境,均可以按照同样的方式创建待部署服务,只是每个部署环境所对应的环境变量和参数信息不同,将已经配置好的环境变量参数信息和服务启动参数信息进行打包生成一份配置文件,这里的环境变量参数信息用于识别待部署服务的部署环境,服务启动参数信息用于启动服务;然后,根据生成的目标镜像文件和配置文件,创建待更新子项目在该部署环境下对应的至少一个待部署服务。
示例性的,将待更新子项目对应的配置文件和目标镜像文件进行结合,以创建待部署服务,在这里,针对不同的部署环境,可以设定待部署服务的数目,在本实施例中,设定开发环境保持1个待部署服务,测试环境保持1-2个待部署服务,预发布环境保持2-6个待部署服务,生产环境保持4-10个待部署服务。
S105,针对于每个待部署服务,识别待部署服务的所属部署环境,将待部署服务部署到所属部署环境对应的服务器上。
该步骤中,首先,通过待部署服务对应的环境变量参数信息,识别待部署服务的所属部署环境,按照待部署服务的所属部署环境,依据预设的分发机制将同一环境下的多个待部署服务部署到所属部署环境对应的服务器上。
其中,分发机制可以是按照服务器的服务压力将待部署服务部署到服务压力较小的服务器上,或者,将服务器打上与待部署服务相对应的标签,依据该标签将待部署服务部署至相对应的服务器上。
进一步的,在将待部署服务部署于服务器上之后,服务启动之前,还包括中间件参数信息的配置过程,此时的中间件包括但不限于:Mysql关系数据库、Nginx代理服务、Elasticsearch分布式索引数据库以及其他组件,基于配置好的中间件参数信息,在服务运行后,可以依据数据库信息为服务器指定文件路径,或者在需要时调用其他服务。
进一步的,在将待部署服务部署于服务器上之后,如果待部署服务无法正常启动,则获取待部署服务所对应的待部署子项目的上一个项目版本,根据上一个项目版本的版本信息,从中央镜像仓库中获取上一个项目版本所对应的历史镜像信息,根据历史镜像信息、环境变量参数信息和服务启动参数信息重新生成上一个项目版本所对应的历史部署服务,已实现项目版本的回滚。
请参阅图2,图2为项目部署流程的示意图,本申请的项目部署方法的流程为:首先从代码仓库中获取待部署代码,然后对待部署代码进行编译,以生成可执行代码,基于可执行代码生成目标镜像文件,再结合环境变量参数信息和服务启动参数信息,创建待部署服务,最后将待部署服务部署于不同环境所对应的服务器上。
本申请实施例提供的项目的部署方法,获取待更新子项目的待部署代码,并配置所述待更新子项目在各个部署环境下的环境变量参数信息和服务启动参数信息;对所述待部署代码进行编译,确定所述待更新子项目对应的可执行代码包;基于所述可执行代码包,生成所述待更新子项目的目标镜像文件;针对于每个部署环境下的环境变量参数信息,根据所述目标镜像文件、所述部署环境下的环境变量参数信息以及所述服务启动参数信息,创建所述待更新子项目在该部署环境下对应的至少一个待部署服务;针对于每个待部署服务,识别所述待部署服务的所属部署环境,将所述待部署服务部署到所属部署环境对应的服务器上。
这样,本申请可以针对不同的部署环境,将服务部署在相对应的服务器上,在提高服务的部署效率的同时,减轻了运维人员的工作压力。
请参阅图3、图4,图3为本申请提供的一种项目的部署装置的结构示意图之一,图4为本申请提供的一种项目的部署装置的结构示意图之二,所述部署装置300包括:
获取模块301,具体用于获取待更新子项目的待部署代码,并配置所述待更新子项目在各个部署环境下的环境变量参数信息和服务启动参数信息;
代码编译模块302,具体用于对所述待部署代码进行编译,确定所述待更新子项目对应的可执行代码包;
镜像生成模块303,具体用于基于所述可执行代码包,生成所述待更新子项目的目标镜像文件;
服务创建模块304,具体用于针对于每个部署环境下的环境变量参数信息,根据所述目标镜像文件、所述部署环境下的环境变量参数信息以及所述服务启动参数信息,创建所述待更新子项目在该部署环境下对应的至少一个待部署服务;
服务部署模块305,具体用于针对于每个待部署服务,具体用于识别所述待部署服务的所属部署环境,将所述待部署服务部署到所属部署环境对应的服务器上。
进一步的,所述服务创建模块304用于针对于每个部署环境下的环境变量参数信息,根据所述目标镜像文件、所述部署环境下的环境变量参数信息以及所述服务启动参数信息,创建所述待更新子项目在该部署环境下对应的至少一个待部署服务时,所述服务创建模块304于:
基于所述环境变量参数信息和所述服务启动参数信息成所述待更新子项目对应的配置文件;
根据所述目标镜像文件和所述配置文件,创建所述待更新子项目对应的待部署服务。
进一步的,所述服务部署模块305在用于针对于每个待部署服务,确定所述待部署服务的所属部署环境,将所述待部署服务部署到所属部署环境对应的服务器上时,所述服务部署模块305用于:
根据所述待部署服务的环境变量参数信息,确定待部署服务的所属部署环境;
根据预设的分发机制,将属于同一环境中的待部署服务部署到所属部署环境对应的多个服务器上。
进一步的,如图4所示,所述部署装置300还包括服务关闭模块306,所述服务关闭模块306用于:
关闭所述待更新子项目在各个服务器中已部署的历史部署服务。
进一步的,如图4所示,所述部署装置300还包括存储模块307,所述镜像存储模块307用于:
将所述目标镜像文件存储至所述待更新子项目所属的目标应用的中央镜像仓库中。
本申请实施例提供的项目的部署装置,获取待更新子项目的待部署代码,并配置所述待更新子项目在各个部署环境下的环境变量参数信息和服务启动参数信息;对所述待部署代码进行编译,确定所述待更新子项目对应的可执行代码包;基于所述可执行代码包,生成所述待更新子项目的目标镜像文件;针对于每个部署环境下的环境变量参数信息,根据所述目标镜像文件、所述部署环境下的环境变量参数信息以及所述服务启动参数信息,创建所述待更新子项目在该部署环境下对应的至少一个待部署服务;针对于每个待部署服务,识别所述待部署服务的所属部署环境,将所述待部署服务部署到所属部署环境对应的服务器上。
这样,本申请可以针对不同的部署环境,将服务部署在相对应的服务器上,在提高服务的部署效率的同时,减轻了运维人员的工作压力。
如图5所示,为本申请实施例所提供的一种电子设备的结构示意图,所述电子设备500包括处理器501、存储器502和总线503。
所述存储器502存储有所述处理器501可执行的机器可读指令,当电子设备500运行时,所述处理器501与所述存储器502之间通过总线503通信,所述机器可读指令被所述处理器501执行时,可以执行如上述图1所示方法实施例中的方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请实施例所提供的项目的部署方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种项目的部署方法,其特征在于,所述部署方法包括:
获取待更新子项目的待部署代码,并配置所述待更新子项目在各个部署环境下的环境变量参数信息和服务启动参数信息;
对所述待部署代码进行编译,确定所述待更新子项目对应的可执行代码包;
基于所述可执行代码包,生成所述待更新子项目的目标镜像文件;
针对于每个部署环境下的环境变量参数信息,根据所述目标镜像文件、所述部署环境下的环境变量参数信息以及所述服务启动参数信息,创建所述待更新子项目在该部署环境下对应的至少一个待部署服务;
针对于每个待部署服务,识别所述待部署服务的所属部署环境,将所述待部署服务部署到所属部署环境对应的服务器上;
在将所述待部署服务部署于服务器上之后,所述待部署服务启动之前,所述部署方法还包括:中间件参数信息的配置过程,以在所述待部署服务运行后,为服务器指定文件路径;所述中间件包括:Mysql关系数据库、Nginx代理服务以及Elasticsearch分布式索引数据库。
2.根据权利要求1所述的部署方法,其特征在于,在所述获取待更新子项目的待部署代码之前,所述部署方法还包括:
关闭所述待更新子项目在各个服务器中已部署的历史部署服务。
3.根据权利要求1所述的部署方法,其特征在于,所述基于所述可执行代码包,生成所述待更新子项目的目标镜像文件之后,所述部署方法还包括:
将所述目标镜像文件存储至所述待更新子项目所属的目标应用的中央镜像仓库中。
4.根据权利要求1所述的部署方法,其特征在于,所述针对于每个部署环境下的环境变量参数信息,根据所述目标镜像文件、所述部署环境下的环境变量参数信息以及所述服务启动参数信息,创建所述待更新子项目在该部署环境下对应的至少一个待部署服务,包括:
基于所述环境变量参数信息和所述服务启动参数信息生成所述待更新子项目对应的配置文件;
根据所述目标镜像文件和所述配置文件,创建所述待更新子项目在该部署环境下对应的至少一个待部署服务。
5.根据权利要求1所述的部署方法,其特征在于,所述针对于每个待部署服务,确定所述待部署服务的所属部署环境,将所述待部署服务部署到所属部署环境对应的服务器上,包括:
根据所述待部署服务的环境变量参数信息,确定待部署服务的所属部署环境;
根据预设的分发机制,将属于同一环境中的待部署服务部署到所属部署环境对应的多个服务器上。
6.一种项目的部署装置,其特征在于,所述部署装置包括:
获取模块,具体用于获取待更新子项目的待部署代码,并配置所述待更新子项目在各个部署环境下的环境变量参数信息和服务启动参数信息;
代码编译模块,具体用于对所述待部署代码进行编译,确定所述待更新子项目对应的可执行代码包;
镜像生成模块,具体用于基于所述可执行代码包,生成所述待更新子项目的目标镜像文件;
服务创建模块,具体用于针对于每个部署环境下的环境变量参数信息,根据所述目标镜像文件、所述部署环境下的环境变量参数信息以及所述服务启动参数信息,创建所述待更新子项目在该部署环境下对应的至少一个待部署服务;
服务部署模块,具体用于针对于每个待部署服务,识别所述待部署服务的所属部署环境,将所述待部署服务部署到所属部署环境对应的服务器上;
在将所述待部署服务部署于服务器上之后,所述待部署服务启动之前,所述部署装置还用于:中间件参数信息的配置过程,以在所述待部署服务运行后,为服务器指定文件路径;所述中间件包括:Mysql关系数据库、Nginx代理服务以及Elasticsearch分布式索引数据库。
7.根据权利要求6所述的部署装置,其特征在于,所述服务创建模块,具体用于:
基于所述环境变量参数信息和所述服务启动参数信息生成所述待更新子项目对应的配置文件;
根据目标镜像文件和所述配置文件,创建所述待更新子项目对应的待部署服务。
8.根据权利要求6所述的部署装置,其特征在于,所述服务部署模块,具体用于:
根据所述待部署服务的环境变量参数信息,确定待部署服务的所属部署环境;
根据预设的分发机制,将属于同一环境中的待部署服务部署到所属部署环境对应的多个服务器上。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1-5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-5任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011618329.6A CN112764753B (zh) | 2020-12-31 | 2020-12-31 | 一种项目的部署方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011618329.6A CN112764753B (zh) | 2020-12-31 | 2020-12-31 | 一种项目的部署方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112764753A CN112764753A (zh) | 2021-05-07 |
CN112764753B true CN112764753B (zh) | 2024-04-12 |
Family
ID=75698183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011618329.6A Active CN112764753B (zh) | 2020-12-31 | 2020-12-31 | 一种项目的部署方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112764753B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360164B (zh) * | 2021-05-27 | 2022-09-23 | 上海信宝博通电子商务有限公司 | 快速部署应用的方法、装置及存储介质 |
CN113568623B (zh) * | 2021-07-23 | 2024-07-09 | 上海淇玥信息技术有限公司 | 一种部署应用的方法、装置和电子设备 |
CN113946350B (zh) * | 2021-10-28 | 2022-08-19 | 苏州万店掌网络科技有限公司 | 一种共享工作空间的部署方法及系统 |
CN114564226B (zh) * | 2022-02-25 | 2023-03-17 | 深圳市云视机器人有限公司 | 代码部署方法、装置、电子设备及可读存储介质 |
CN115065595B (zh) * | 2022-08-17 | 2022-12-02 | 湖南云畅网络科技有限公司 | 一种自动化发布部署方法 |
CN116400934B (zh) * | 2023-06-08 | 2023-09-15 | 北京随信云链科技有限公司 | 一种基于jenkins的项目自动部署方法 |
CN116737173A (zh) * | 2023-08-11 | 2023-09-12 | 华控清交信息科技(北京)有限公司 | 一种在k8s容器集群上的服务集成方法、装置及电子设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325951A (zh) * | 2016-08-30 | 2017-01-11 | 广西电网有限责任公司 | 一种支持多数据库、多中间件类型的应用系统自动化部署方法 |
CN106528170A (zh) * | 2016-11-25 | 2017-03-22 | 上海找钢网信息科技股份有限公司 | 一种基于多语言环境的软件包发布方法及系统 |
CN106815052A (zh) * | 2017-01-10 | 2017-06-09 | 南威软件股份有限公司 | 一种适配多环境配置的快速部署系统的方法 |
CN107483245A (zh) * | 2017-08-14 | 2017-12-15 | 上海新炬网络信息技术股份有限公司 | 一种基于karaf_agent的主动采集实现装置 |
CN109308184A (zh) * | 2018-09-26 | 2019-02-05 | 广东电网有限责任公司 | 一种中间件安装和更新方法、装置及计算机可读存储介质 |
CN109725911A (zh) * | 2017-10-31 | 2019-05-07 | 北京国双科技有限公司 | 一种多环境项目部署方法、装置、存储介质及处理器 |
CN110187890A (zh) * | 2019-05-29 | 2019-08-30 | 掌阅科技股份有限公司 | 项目部署的方法、电子设备、存储介质 |
CN110413288A (zh) * | 2019-07-31 | 2019-11-05 | 新华三大数据技术有限公司 | 应用部署方法、装置、服务器及存储介质 |
CN110609732A (zh) * | 2019-08-13 | 2019-12-24 | 平安普惠企业管理有限公司 | 应用程序部署方法、装置、计算机设备和存储介质 |
CN111625316A (zh) * | 2020-05-15 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种环境部署方法、装置及电子设备和存储介质 |
CN111708560A (zh) * | 2020-06-17 | 2020-09-25 | 云和恩墨(北京)信息技术有限公司 | 数据库高可用管理系统的自动化部署方法及装置 |
CN112130871A (zh) * | 2020-09-27 | 2020-12-25 | 平安医疗健康管理股份有限公司 | 远程部署中间件的方法、装置、计算机设备及存储介质 |
CN112148315A (zh) * | 2020-09-22 | 2020-12-29 | 京东数字科技控股股份有限公司 | 软件部署方法、装置、服务器及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453367B (zh) * | 2007-11-30 | 2011-12-28 | 华为技术有限公司 | 软件部署方法和系统及软件部署服务器和用户服务器 |
CN107885551A (zh) * | 2017-11-27 | 2018-04-06 | 山东浪潮商用系统有限公司 | 一种服务部署方法、装置、可读介质及存储控制器 |
CN108196843B (zh) * | 2018-01-09 | 2021-03-26 | 成都睿码科技有限责任公司 | 可视化Docker容器自动编译部署的运维方法 |
CN109358858B (zh) * | 2018-09-19 | 2022-03-22 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
CN109710524A (zh) * | 2018-12-19 | 2019-05-03 | 上海华兴数字科技有限公司 | 一种自动测试方法、系统和计算机存储介质 |
-
2020
- 2020-12-31 CN CN202011618329.6A patent/CN112764753B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325951A (zh) * | 2016-08-30 | 2017-01-11 | 广西电网有限责任公司 | 一种支持多数据库、多中间件类型的应用系统自动化部署方法 |
CN106528170A (zh) * | 2016-11-25 | 2017-03-22 | 上海找钢网信息科技股份有限公司 | 一种基于多语言环境的软件包发布方法及系统 |
CN106815052A (zh) * | 2017-01-10 | 2017-06-09 | 南威软件股份有限公司 | 一种适配多环境配置的快速部署系统的方法 |
CN107483245A (zh) * | 2017-08-14 | 2017-12-15 | 上海新炬网络信息技术股份有限公司 | 一种基于karaf_agent的主动采集实现装置 |
CN109725911A (zh) * | 2017-10-31 | 2019-05-07 | 北京国双科技有限公司 | 一种多环境项目部署方法、装置、存储介质及处理器 |
CN109308184A (zh) * | 2018-09-26 | 2019-02-05 | 广东电网有限责任公司 | 一种中间件安装和更新方法、装置及计算机可读存储介质 |
CN110187890A (zh) * | 2019-05-29 | 2019-08-30 | 掌阅科技股份有限公司 | 项目部署的方法、电子设备、存储介质 |
CN110413288A (zh) * | 2019-07-31 | 2019-11-05 | 新华三大数据技术有限公司 | 应用部署方法、装置、服务器及存储介质 |
CN110609732A (zh) * | 2019-08-13 | 2019-12-24 | 平安普惠企业管理有限公司 | 应用程序部署方法、装置、计算机设备和存储介质 |
CN111625316A (zh) * | 2020-05-15 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种环境部署方法、装置及电子设备和存储介质 |
CN111708560A (zh) * | 2020-06-17 | 2020-09-25 | 云和恩墨(北京)信息技术有限公司 | 数据库高可用管理系统的自动化部署方法及装置 |
CN112148315A (zh) * | 2020-09-22 | 2020-12-29 | 京东数字科技控股股份有限公司 | 软件部署方法、装置、服务器及存储介质 |
CN112130871A (zh) * | 2020-09-27 | 2020-12-25 | 平安医疗健康管理股份有限公司 | 远程部署中间件的方法、装置、计算机设备及存储介质 |
Non-Patent Citations (6)
Title |
---|
Visual GUI testing in continuous integration environment;Fachrul Pralienka Bani Muhamad;《2016 International Conference on Information & Communication Technology and Systems (ICTS)》;1-6 * |
云计算环境下业务自动化部署的设计与实现;汪源;《软件》;66-72 * |
基于容器的持续集成和部署方法研究;丘晖;;广东通信技术(第10期);1-4 * |
基于消息中间件的数据库复制模型及其应用研究;宋明;《万方》;20070429;1-56 * |
大型分布式系统服务对象部署与运行监控技术的研究与实践;王晓鹏;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;I138-891 * |
虚拟化自动部署技术应用;李凯;《国网新疆电力公司信息通信公司 》;20161216;1-6 * |
Also Published As
Publication number | Publication date |
---|---|
CN112764753A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112764753B (zh) | 一种项目的部署方法、装置、电子设备及存储介质 | |
CN111382070B (zh) | 兼容性测试方法、装置、存储介质和计算机设备 | |
US20080276221A1 (en) | Method and apparatus for relations planning and validation | |
US10063409B2 (en) | Management of computing machines with dynamic update of applicability rules | |
WO2004111764A2 (en) | Computer language translation system and method of converting procedural computer language software to object-oriented computer language software | |
CN105867903A (zh) | 代码库拆分的方法及装置 | |
EP4184330A1 (en) | Code analysis method and system, and computing device | |
CN110716786B (zh) | 一种页面展示方法、系统及存储介质 | |
CN114237754A (zh) | 一种数据加载方法、装置、电子设备以及存储介质 | |
CN108376082B (zh) | 一种引用库版本更新方法和系统 | |
US9396239B2 (en) | Compiling method, storage medium and compiling apparatus | |
CN113553089A (zh) | 一种代码增量发布更新方法及系统 | |
CN111722597B (zh) | 准备用于工业控制系统的工程数据的方法和系统 | |
CN112835587A (zh) | 一种编译集成方法及装置 | |
CN111078236A (zh) | 一种软件自动安装方法、系统、电子设备及存储介质 | |
CN110737438A (zh) | 一种数据处理方法和装置 | |
CN111400243B (zh) | 基于流水线服务的研发管理系统以及文件存储方法、装置 | |
US10958514B2 (en) | Generating application-server provisioning configurations | |
CN112953721A (zh) | 一种ipa文件的解析方法、装置、设备及存储介质 | |
CN111930387A (zh) | 一种集成包的集成方法及装置、电子设备和存储介质 | |
CN111651189A (zh) | 持续集成系统的产品交付方法及装置、电子设备 | |
CN116016158B (zh) | 一种混合云的aPaaS平台部署方法、装置、设备和计算机存储介质 | |
US11775293B1 (en) | Deploying a static code analyzer based on program synthesis from input-output examples | |
CN114579135B (zh) | 一种安装包生成方法及装置 | |
CN110858806B (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 |