CN117827665A - 项目的部署方法及装置、存储介质及电子装置 - Google Patents
项目的部署方法及装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN117827665A CN117827665A CN202410015946.9A CN202410015946A CN117827665A CN 117827665 A CN117827665 A CN 117827665A CN 202410015946 A CN202410015946 A CN 202410015946A CN 117827665 A CN117827665 A CN 117827665A
- Authority
- CN
- China
- Prior art keywords
- deployed
- item
- test
- environment
- online 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 53
- 238000003860 storage Methods 0.000 title claims abstract description 12
- 238000012360 testing method Methods 0.000 claims abstract description 311
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000012795 verification Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 15
- 238000013515 script Methods 0.000 description 16
- 230000001960 triggered effect Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种项目的部署方法及装置、存储介质及电子装置,其中,该方法包括:确定待部署项目;将待部署项目部署至测试环境中进行测试,得到第一测试结果;响应于第一测试结果指示待部署项目在测试环境中通过测试,将待部署项目部署至预上线环境中进行测试,得到第二测试结果;响应于第二测试结果指示待部署项目在预上线环境中通过测试,将待部署项目部署至线上环境中。本申请解决了项目无法自动化部署的技术问题。
Description
技术领域
本申请涉及项目开发领域,具体而言,涉及一种项目的部署方法及装置、存储介质及电子装置。
背景技术
随着科技的发展和人们对数字化生活的需求增加,软件行业发展迅速。为了保证软件项目的质量和稳定性,通常会设置测试环境、预上线环境和生产环境来对软件项目进行测试。这些环境需要保持统一的标准化,以确保开发人员、测试人员和运维人员能够在不同环境中进行协作和交付。
在相关技术中,软件项目在开发、测试、上线时,由于测试环境和上线环境没有统一标准化,不易于维护管理,容易出现问题,只解决某一个环境的自动化持续部署,各环境底层基础环境有差异,不易于构建、迁移和部署,存在项目无法自动化部署的技术问题。
针对上述项目无法自动化部署的技术问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种项目的部署方法及装置、存储介质及电子装置,以至少解决项目无法自动化部署的技术问题。
根据本申请实施例的一方面,提供了一种项目的部署方法,包括:确定待部署项目;将待部署项目部署至测试环境中进行测试,得到第一测试结果;响应于第一测试结果指示待部署项目在测试环境中通过测试,将待部署项目部署至预上线环境中进行测试,得到第二测试结果;响应于第二测试结果指示待部署项目在预上线环境中通过测试,将待部署项目部署至线上环境中。
可选地,将待部署项目部署至测试环境中进行测试,包括:基于待部署项目的标识信息,从镜像仓库中调用待部署项目对应的测试镜像;利用测试镜像将待部署项目部署至测试环境中进行测试。
可选地,将待部署项目部署至预上线环境中进行测试,包括:基于待部署项目的标识信息,从镜像仓库中调用待部署项目对应的预上线环境镜像;利用预上线环境镜像将待部署项目部署至预上线环境中进行测试。
可选地,将待部署项目部署至线上环境中,包括:基于待部署项目的标识信息,从镜像仓库中调用待部署项目对应的线上环境镜像;利用线上环境镜像将待部署项目部署至线上环境中。
可选地,项目的部署方法还包括:在线上环境中对待部署项目进行灰度测试,得到第三测试结果,其中,灰度测试用于指示对待部署项目的稳定性进行测试;响应于第三测试结果指示待部署项目的稳定性高于稳定性阈值,对待部署项目进行升级。
可选地,项目的部署方法还包括:获取待部署项目的项目代码;对项目代码进行安全校验,得到校验结果;响应于校验结果指示项目代码安全,分别获取测试环境的第一相关参数、预上线环境的第二相关参数以及线上环境的第三相关参数;基于项目代码和第一相关参数,生成测试镜像;基于项目代码和第二相关参数,生成预上线环境镜像;基于项目代码和第三相关参数,生成线上环境镜像。
可选地,项目的部署方法还包括:将测试镜像、预上线环境镜像和线上环境镜像,存储至镜像仓库。
根据本申请实施例的另一方面,还提供了一种项目的部署装置,包括:确定模块,用于确定待部署项目;第一测试模块,用于将待部署项目部署至测试环境中进行测试,得到第一测试结果;第二测试模块,用于响应于第一测试结果指示待部署项目在测试环境中通过测试,将待部署项目部署至预上线环境中进行测试,得到第二测试结果;部署模块,用于响应于第二测试结果指示待部署项目在预上线环境中通过测试,将待部署项目部署至线上环境中。
根据本申请实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述项目的部署方法。
根据本申请实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述项目的部署方法。
通过本申请,确定待部署项目;将待部署项目部署至测试环境中进行测试,得到第一测试结果;响应于第一测试结果指示待部署项目在测试环境中通过测试,将待部署项目部署至预上线环境中进行测试,得到第二测试结果;响应于第二测试结果指示待部署项目在预上线环境中通过测试,将待部署项目部署至线上环境中。也就是说,在本申请实施例中,将待部署项目部署至测试环境中进行测试,如果测试通过,则将待部署项目自动部署至预上线环境中进行测试,如果测试通过,则将待部署项目自动部署至线上环境中,由于本申请可以自动将待部署项目部署依次部署至测试环境、预上线环境以及线上环境中,达到了全环境自动化管理部署项目的目的,解决了项目无法自动化部署的技术问题,实现了项目自动化部署的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示例性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例的项目的部署方法的计算机终端的硬件结构框图;
图2是根据本申请实施例的项目的部署方法的流程图;
图3是根据本申请实施例的一种全环境式自动化持续化代码部署项目发布管理方法的流程图;
图4是根据本申请实施例的一种项目的部署装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语和“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本申请实施例的项目的部署方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器(Microprocessor Unit,简称是MPU)或可编程逻辑器件(Programmable logic device,简称是PLD))和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的项目的部署方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,相当于实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种项目的部署方法,图2是根据本申请实施例的项目的部署方法的流程图,该流程包括如下步骤:
步骤S201,确定待部署项目。
在本申请上述步骤S201提供的技术方案中,确定待部署项目,其中,待部署项目即为待部署至测试环境和线上环境中的项目,该待部署项目可以为软件应用,此处不做具体限定。
在该实施例中,根据确定的待部署项目,执行步骤S202。
步骤S202,将待部署项目部署至测试环境中进行测试,得到第一测试结果。
在本申请上述步骤S202提供的技术方案中,在根据步骤S201确定出待部署项目后,将待部署项目部署至测试环境中进行测试,得到第一测试结果。其中,第一测试结果可以用于指示待部署项目是否通过测试环境的测试。
在该实施例中,在确定待部署项目后,将待部署项目部署至测试环境中进行测试。例如,可以从镜像仓库中调用待部署项目对应的测试镜像,进而利用测试镜像将待部署项目部署至测试环境中。其中,镜像仓库可以为:容器镜像管理工具(harbor),镜像仓库也可以称为镜像私有仓库。测试镜像可以为容器镜像,可以预先根据待部署项目的代码和测试环境的相关参数生成。
举例而言,可以预先对待部署项目的项目代码和测试环境的相关参数进行编译构建,生成测试镜像,并将生成的测试镜像存储至镜像仓库中,这样,当后续需要将待部署项目部署至测试环境中进行测试时,可以利用容器集群管理系统(Kubernetes,简称为k8s)从镜像仓库中调用测试镜像,进而利用测试镜像将待部署项目部署至测试环境中。
可选地,将待部署项目部署至测试环境中后,测试环境可以对待部署项目进行测试,进而得到第一测试结果,根据该第一测试结果可以确定待部署项目是否通过测试环境的测试。
步骤S203,响应于第一测试结果指示待部署项目在测试环境中通过测试,将待部署项目部署至预上线环境中进行测试,得到第二测试结果。
在本申请上述步骤S203提供的技术方案中,在根据步骤S202确定第一测试结果后,当第一测试结果指示待部署项目在测试环境中通过测试时,将待部署项目部署至预上线环境中进行测试,得到第二测试结果。其中,第二测试结果用于指示待部署项目是否通过预上线环境的测试。
在该实施例中,在确定第一测试结果后,当第一测试结果指示待部署项目在测试环境中通过测试时,将待部署项目部署至预上线环境中进行测试。
举例而言,可以预先对待部署项目的项目代码和预上线环境的相关参数进行编译构建,生成预上线镜像,并将生成的预上线镜像存储至镜像仓库中,这样,当后续需要将待部署项目部署至预上线环境中进行测试时,可以利用k8s根据配制从镜像仓库中调用预上线镜像,进而利用预上线镜像将待部署项目部署至预上线环境中。
可选地,将待部署项目部署至预上线环境中后,预上线环境可以对待部署项目进行测试,进而得到第二测试结果,根据该第二测试结果可以确定待部署项目是否通过预上线环境的测试。
步骤S204,响应于第二测试结果指示待部署项目在预上线环境中通过测试,将待部署项目部署至线上环境中。
在本申请上述步骤S204提供的技术方案中,在根据步骤S203确定第二测试结果后,当第二测试结果指示待部署项目在预上线环境中通过测试时,将待部署项目部署至线上环境中。
在该实施例中,在确定第二测试结果后,当第二测试结果指示待部署项目在预上线环境中通过测试时,将待部署项目部署至线上环境中。
举例而言,可以预先对待部署项目的项目代码和线上环境的相关参数进行编译构建,生成线上镜像,并将生成的线上镜像存储至镜像仓库中,这样,当后续需要将待部署项目部署至线上环境中进行测试时,可以利用k8s从镜像仓库中调用线上镜像,进而利用线上镜像将待部署项目部署至线上环境中。
通过本申请,将待部署项目部署至测试环境中进行测试,如果测试通过,则将待部署项目自动部署至预上线环境中进行测试,如果测试通过,则将待部署项目自动部署至线上环境中,由于本申请可以自动将待部署项目部署依次部署至测试环境、预上线环境以及线上环境中,达到了全环境自动化管理部署项目的目的,解决了项目无法自动化部署的技术问题,实现了项目自动化部署的技术效果。
下面对该实施例的上述方法进行进一步介绍。
作为一种可选的实施例方式,步骤S202,将待部署项目部署至测试环境中进行测试,包括:基于待部署项目的标识信息,从镜像仓库中调用待部署项目对应的测试镜像;利用测试镜像将待部署项目部署至测试环境中进行测试。
在该实施例中,镜像仓库中存储待部署项目的测试镜像时,可以将待部署项目的标识信息作为索引来存储待部署项目的测试镜像,基于此,在获取到待部署项目的标识信息之后,可以根据待部署项目的标识信息,从镜像仓库中调用待部署项目对应的测试镜像。其中,镜像仓库可以为镜像私有仓库harbor,此处仅为示例性举例,并不对镜像仓库进行限定。
可选地,在调用到测试镜像后,利用测试镜像将待部署项目部署至测试环境中进行测试。例如,利用持续集成工具(Jenkins)执行远程脚本调用k8s从镜像私有仓库harbor中拉取测试镜像,并利用测试镜像将待部署项目部署在测试环境中进行测试。
作为一种可选的实施例方式,步骤S203,将待部署项目部署至预上线环境中进行测试,包括:基于待部署项目的标识信息,从镜像仓库中调用待部署项目对应的预上线环境镜像;利用预上线环境镜像将待部署项目部署至预上线环境中进行测试。
在该实施例中,镜像仓库中存储待部署项目的预上线镜像时,可以将待部署项目的标识信息作为索引来存储待部署项目的预上线镜像,基于此,在获取到待部署项目的标识信息之后,可以根据待部署项目的标识信息,从镜像仓库中调用待部署项目对应的预上线镜像。
可选地,在调用到预上线镜像后,利用预上线镜像将待部署项目部署至预上线环境中进行测试。例如,利用Jenkins执行远程脚本调用k8s从镜像私有仓库harbor中拉取预上线镜像,并利用预上线镜像将待部署项目部署在预上线环境中进行测试。
作为一种可选的实施例方式,步骤S204,将待部署项目部署至线上环境中,包括:基于待部署项目的标识信息,从镜像仓库中调用待部署项目对应的线上环境镜像;利用线上环境镜像将待部署项目部署至线上环境中。
在该实施例中,镜像仓库中存储待部署项目的线上镜像时,可以将待部署项目的标识信息作为索引来存储待部署项目的线上镜像,基于此,在获取到待部署项目的标识信息之后,可以根据待部署项目的标识信息,从镜像仓库中调用待部署项目对应的线上镜像。
可选地,在调用到线上镜像后,利用线上镜像将待部署项目部署至线上环境中。例如,利用Jenkins执行远程脚本调用k8s从镜像私有仓库harbor中拉取线上镜像,并利用线上镜像将待部署项目部署在线上环境中。
作为一种可选的实施例方式,项目的部署方法还包括:在线上环境中对待部署项目进行灰度测试,得到第三测试结果,其中,灰度测试用于指示对待部署项目的稳定性进行测试;响应于第三测试结果指示待部署项目的稳定性高于稳定性阈值,对待部署项目进行升级。
在该实施例中,在线上环境中对待部署项目进行灰度测试,得到第三测试结果。其中,灰度测试用于对待部署项目的稳定性进行测试,第三测试结果用于指示待部署项目的稳定性,此处仅为示例性举例,并不对第三测试结果的具体内容进行限定。
可选地,将第三测试结果与预设的稳定性阈值进行比较,当第三测试结果中的待部署项目的稳定性高于稳定性阈值时,说明待部署项目通过线上环境中的灰度测试,可以对待部署项目进行升级。
举例而言,假设第三测试结果中待部署项目的稳定性为80%,稳定性阈值为75%,由于80%>75%,也即,第三测试结果中的待部署项目的稳定性高于稳定性阈值,则对待部署项目进行升级。
作为一种可选的实施例方式,项目的部署方法还包括:获取待部署项目的项目代码;对项目代码进行安全校验,得到校验结果;响应于校验结果指示项目代码安全,分别获取测试环境的第一相关参数、预上线环境的第二相关参数以及线上环境的第三相关参数;基于项目代码和第一相关参数,生成测试镜像;基于项目代码和第二相关参数,生成预上线环境镜像;基于项目代码和第三相关参数,生成线上环境镜像。
在该实施例中,获取待部署项目的项目代码,例如,通过代码仓库获取研发人员通过脚本上传的待部署项目的项目代码,此处仅为示例性举例,并不对获取待部署项目的项目代码的具体方法进行限定。
可选地,对项目代码进行安全校验,得到校验结果。其中,校验结果可以用于指示待部署项目的项目代码是否安全。
举例而言,通过代码管理软件(gitlib)触发自定义脚本(hook),通过hook配制项目代码检查测试,对项目代码进行自动校验、规范校验、安全检查及测试,得到校验结果。
可选地,当校验结果为项目代码安全时,分别获取测试环境的第一相关参数、预上线环境的第二相关参数以及线上环境的第三相关参数。其中,第一相关参数可以为测试环境中的相关参数数据,第二相关参数可以为预上线环境中的相关参数数据,第三相关参数可以为线上环境中的相关参数数据。此处仅为示例性举例,并不对第一相关参数、第二相关参数和第三相关参数的具体内容进行限定。
举例而言,当校验结果为项目代码安全时,触发webhook,Webhook向webhook URL发送请求,触发jenkins请求。Jenkins通过接口调取环境和参数配制中心的数据,进而读取测试环境的相关变量,取得测试环境所需的相关参数数据;同理,Jenkins通过接口调取环境和参数配制中心的数据,进而读取预上线环境的相关变量,取得预上线环境所需的相关参数数据;同理,Jenkins通过接口调取环境和参数配制中心的数据,进而读取线上环境的相关变量,取得线上环境所需的相关参数数据。
可选地,根据项目代码和第一相关参数,生成测试镜像。例如,利用Jenkin通过编写配制好的脚本对项目代码和第一相关参数进行打包编译构建,生成测试环境的镜像。此处仅为示例性举例,并不对生成测试镜像的具体方法进行限定。
可选地,根据项目代码和第二相关参数,生成预上线环境镜像。例如,利用Jenkin通过编写配制好的脚本对项目代码和第二相关参数进行打包编译构建,生成预上线镜像。此处仅为示例性举例,并不对生成预上线镜像的具体方法进行限定。
可选地,根据项目代码和第三相关参数,生成线上环境镜像。例如,利用Jenkin通过编写配制好的脚本对项目代码和第三相关参数进行打包编译构建,生成线上环境的镜像。此处仅为示例性举例,并不对生成线上镜像的具体方法进行限定。
作为一种可选的实施例方式,项目的部署方法还包括:将测试镜像、预上线环境镜像和线上环境镜像,存储至镜像仓库。
在该实施例中,在生成测试镜像、预上线环境镜像和线上环境镜像之后,将测试镜像、预上线环境镜像和线上环境镜像,存储至镜像仓库中,以便后续将待部署项目部署至测试环境、预上线环境和线上环境中时,可以在镜像仓库中调用测试镜像、预上线环境镜像和线上环境镜像,来实现将待部署项目分别部署至测试环境、预上线环境和线上环境。
举例而言,将生成的测试镜像、预上线环境镜像和线上环境镜像上传到镜像私有仓库horbor。
通过本申请,将待部署项目部署至测试环境中进行测试,如果测试通过,则将待部署项目自动部署至预上线环境中进行测试,如果测试通过,则将待部署项目自动部署至线上环境中,由于本申请可以自动将待部署项目部署依次部署至测试环境、预上线环境以及线上环境中,达到了全环境自动化管理部署项目的目的,解决了项目无法自动化部署的技术问题,实现了项目自动化部署的技术效果。
下面结合优选的实施方式对本申请实施例的技术方案进行举例说明。
下面对本申请实施例的项目的部署方法进行进一步的介绍。
图3是根据本申请实施例的一种全环境式自动化代码部署项目发布管理方法的流程图,如图3所示,该自动化代码部署项目发布管理方法包括以下步骤:
步骤S301,编写并提交代码。
在该实施例中,编写项目代码,并将项目代码提交至版本仓库,其中,可以通过脚本进行代码提交,服务器中部署相关代码仓库软件。
可选地,当代码提交后,代码管理软件gitlib会触发自定义脚本hook,对提交的项目代码进行检查安全测试,自动校验测试等。
举例而言,使用gitlib配制自定义脚本hook,源代码仓库git注册Jenkins的触发器,通过提交的代码自动触发。研发人员编写完代码,通过脚本程序上传代码至Gitlab代码仓库,经过git hook自动触发构建,即通过gitlab的webhook实现将项目代码发送到仓库,然后触发项目进行自动构建。
步骤S302,生成不同的环境镜像。
在该实施例中,根据步骤S301提交的项目代码生成不同的环境镜像,以将项目代码部署至不同的测试环境中。
可选地,当提交的代码通过测试后,通过相关技术将代码编译构建生成测试环境的镜像、预上线环境所需的镜像以及线上环境所需镜像,并将以上打包构建生成的三种环境镜像上传到镜像仓库中,进而存储至镜像仓库中。
举例而言,当提交的代码通过测试后,则触发webhook,不通过则自动将测试结果反馈至研发人员,并邮件通知。Webhook向webhook URL发送请求,触发jenkins请求。
可选地,项目打包编译,配制相应的参数变更,使用maven工具将所述项目代码打包成Docker容器镜像,将容器镜像上传至镜像仓库harbor里,进行镜像管理,之后,利用K8s从镜像仓库里取出容器镜像,进行分布式部署。
举例而言,当触发jenkins请求后,jenkins通过接口调取环境和参数配制中心的数据,根据参数读取数据库中的测试环境的相关变量,取得所需环境的相关参数数据;jenkin通过编写配制好的脚本对代码进行打包编译构建,生成测试环境的镜像;
可选地,Jenkins通过接口调取环境和参数配制中心的数据,根据参数读取数据库中的预上线环境的相关变量,取得所需环境的相关参数数据;jenkin通过编写配制好的脚本对代码进行打包编译构建,生成预上线环境所需的镜像。
可选地,Jenkins通过接口调取环境和参数配制中心的数据,根据参数读取数据库中的线上环境的相关变量,取得线上环境所需的相关参数数据;jenkin通过编写配制好的脚本对代码进行打包编译构建,生成线上环境所需镜像。
步骤S303,在测试环境中部署项目并测试。
在该实施例中,在步骤S302生成测试环境的镜像后,可以利用该镜像将项目部署在测试环境进行测试;如果通过测试,则执行步骤S304,如果没有通过测试,则返回步骤S301。
可选地,Jenkins通过执行远程脚本调用k8s从镜像仓库中拉取测试镜像,进而在测试环境进行部署,至此测试环境完成集成部署。
可选地,当项目测试环境部署完成,此处会触发选择自动测试还是人工测试,选择人工测试会自动发送通知,通知测试人员进行测试。自动测试则依据配制的自动测试实例进行自动化测试。
可选地,如果选取自动化测试,则可以通过自动化测试工具进行自动化测试,测试完成通过集成的JIRA Bug来管理bug,由内置mail进行邮件通过研发。例如:测试通过发布系统将自动进行预上线环境发布流程,过程同测试环境发布部署一样;预上线环境测试通过则灰度部署至线上正式环境。
步骤S304,在预上线环境中部署项目并测试。
在该实施例中,在测试环境中通过测试后,则自动化部署项目至预上线环境。
可选地,当完成在预上线环境中部署项目后,对项目进行测试,如果通过测试,则执行步骤S305,如果没有通过测试,则返回步骤S301。
步骤S305,在线上环境中部署项目。
在该实施例中,在预上线环境中通过测试后,脚本将调用k8s从镜像仓库中拉取线上环境镜像,进而在线上环境进行灰度部署,如果灰度部署不通过,则自动提交bug并反馈给研发人员进行代码修改和调整,返回步骤S301,如果灰度部署通过,则执行步骤S306。
步骤S306,部署完成。
在该实施例中,灰度上线成功后,经验证成功后,则进行全量升级,至此整个全环境的持续集成部署完成。
根据本发明实施例,还提供了一种项目的部署装置。需要说明的是,该项目的部署装置可以用于执行前述的项目的部署方法。
图4是根据本申请实施例的一种项目的部署装置的示意图。如图4所示,该项目的部署装置400包括:确定模块401、第一测试模块402、第二测试模块403和部署模块404。
确定模块401,用于确定待部署项目。
第一测试模块402,用于将待部署项目部署至测试环境中进行测试,得到第一测试结果。
第二测试模块403,用于响应于第一测试结果指示待部署项目在测试环境中通过测试,将待部署项目部署至预上线环境中进行测试,得到第二测试结果。
部署模块404,用于响应于第二测试结果指示待部署项目在预上线环境中通过测试,将待部署项目部署至线上环境中。
可选地,第一测试模块402,可以包括:第一调用单元,用于基于待部署项目的标识信息,从镜像仓库中调用待部署项目对应的测试镜像;第一测试单元,用于利用测试镜像将待部署项目部署至测试环境中进行测试。
可选地,第二测试模块403,可以包括:第二调用单元,用于基于待部署项目的标识信息,从镜像仓库中调用待部署项目对应的预上线环境镜像;第二测试单元,用于利用预上线环境镜像将待部署项目部署至预上线环境中进行测试。
可选地,部署模块404,可以包括:第三调用单元,用于基于待部署项目的标识信息,从镜像仓库中调用待部署项目对应的线上环境镜像;部署单元,用于利用线上环境镜像将待部署项目部署至线上环境中。
可选地,项目的部署装置400,还可以包括:第三测试模块,用于在线上环境中对待部署项目进行灰度测试,得到第三测试结果,其中,灰度测试用于指示对待部署项目的稳定性进行测试;升级模块,用于响应于第三测试结果指示待部署项目的稳定性高于稳定性阈值,对待部署项目进行升级。
可选地,项目的部署装置400,还可以包括:第一获取模块,用于获取待部署项目的项目代码;对项目代码进行安全校验,得到校验结果;第二获取模块,用于响应于校验结果指示项目代码安全,分别获取测试环境的第一相关参数、预上线环境的第二相关参数以及线上环境的第三相关参数;第一生成模块,用于基于项目代码和第一相关参数,生成测试镜像;第二生成模块,用于基于项目代码和第二相关参数,生成预上线环境镜像;第三生成模块,用于基于项目代码和第三相关参数,生成线上环境镜像。
可选地,项目的部署装置400,还可以包括:存储模块,用于将测试镜像、预上线环境镜像和线上环境镜像,存储至镜像仓库。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
本申请的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述项目的部署方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,确定待部署项目。
S2,将待部署项目部署至测试环境中进行测试,得到第一测试结果。
S3,响应于第一测试结果为待部署项目在测试环境中通过测试,将待部署项目部署至预上线环境中进行测试,得到第二测试结果,其中,预上线环境用于模拟线上环境。
S4,响应于第二测试结果为待部署项目在预上线环境中通过测试,将待部署项目部署至线上环境中。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种项目的部署方法,其特征在于,包括:
确定待部署项目;
将所述待部署项目部署至测试环境中进行测试,得到第一测试结果;
响应于所述第一测试结果为所述待部署项目在所述测试环境中通过测试,将所述待部署项目部署至预上线环境中进行测试,得到第二测试结果,其中,所述预上线环境用于模拟线上环境;
响应于所述第二测试结果为所述待部署项目在所述预上线环境中通过测试,将所述待部署项目部署至所述线上环境中。
2.根据权利要求1所述的方法,其特征在于,将所述待部署项目部署至测试环境中进行测试,包括:
基于所述待部署项目的标识信息,从镜像仓库中调用所述待部署项目对应的测试镜像;
利用所述测试镜像将所述待部署项目部署至所述测试环境中进行测试。
3.根据权利要求1所述的方法,其特征在于,将所述待部署项目部署至预上线环境中进行测试,包括:
基于所述待部署项目的标识信息,从镜像仓库中调用所述待部署项目对应的预上线环境镜像;
利用所述预上线环境镜像将所述待部署项目部署至所述预上线环境中进行测试。
4.根据权利要求1所述的方法,其特征在于,将所述待部署项目部署至线上环境中,包括:
基于所述待部署项目的标识信息,从镜像仓库中调用所述待部署项目对应的线上环境镜像;
利用所述线上环境镜像将所述待部署项目部署至所述线上环境中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述线上环境中对所述待部署项目进行灰度测试,得到第三测试结果,其中,所述灰度测试用于指示对所述待部署项目的稳定性进行测试;
响应于所述第三测试结果为所述待部署项目的所述稳定性高于稳定性阈值,对所述待部署项目进行升级。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述待部署项目的项目代码;
对所述项目代码进行安全校验,得到校验结果;
响应于所述校验结果为所述项目代码安全,分别获取所述测试环境的第一相关参数、所述预上线环境的第二相关参数以及所述线上环境的第三相关参数;
基于所述项目代码和所述第一相关参数,生成所述测试镜像;
基于所述项目代码和所述第二相关参数,生成所述预上线环境镜像;基于所述项目代码和所述第三相关参数,生成所述线上环境镜像。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将所述测试镜像、所述预上线环境镜像和所述线上环境镜像,存储至镜像仓库。
8.一种项目的部署装置,其特征在于,包括:
确定模块,用于确定待部署项目;
第一测试模块,用于将所述待部署项目部署至测试环境中进行测试,得到第一测试结果;
第二测试模块,用于响应于所述第一测试结果为所述待部署项目在所述测试环境中通过测试,将所述待部署项目部署至预上线环境中进行测试,得到第二测试结果,其中,所述预上线环境用于模拟线上环境;
部署模块,用于响应于所述第二测试结果为所述待部署项目在所述预上线环境中通过测试,将所述待部署项目部署至所述线上环境中。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为在计算机或处理器上运行时,执行上述权利要求1至7任一项中所述的项目的部署方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述权利要求1至7任一项中所述的项目的部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410015946.9A CN117827665A (zh) | 2024-01-03 | 2024-01-03 | 项目的部署方法及装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410015946.9A CN117827665A (zh) | 2024-01-03 | 2024-01-03 | 项目的部署方法及装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117827665A true CN117827665A (zh) | 2024-04-05 |
Family
ID=90515139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410015946.9A Pending CN117827665A (zh) | 2024-01-03 | 2024-01-03 | 项目的部署方法及装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827665A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118631827A (zh) * | 2024-08-14 | 2024-09-10 | 天翼视联科技有限公司 | 一种镜像分发方法、装置、电子装置和存储介质 |
-
2024
- 2024-01-03 CN CN202410015946.9A patent/CN117827665A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118631827A (zh) * | 2024-08-14 | 2024-09-10 | 天翼视联科技有限公司 | 一种镜像分发方法、装置、电子装置和存储介质 |
CN118631827B (zh) * | 2024-08-14 | 2024-11-05 | 天翼视联科技有限公司 | 一种镜像分发方法、装置、电子装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109683899A (zh) | 一种软件集成方法及装置 | |
RU2628176C2 (ru) | Системы, способы и компьютерные программные продукты для процесса сборки и загрузки программного обеспечения с использованием службы компиляции и развертывания | |
CN108319460B (zh) | 应用程序安装包的生成方法、装置、电子设备及存储介质 | |
CN113703730A (zh) | 持续集成方法、装置、计算机设备及存储介质 | |
US20130179865A1 (en) | Automated error checking system for a software application and method therefor | |
CN113111000B (zh) | 持续集成自动化测试系统和方法、电子设备、存储介质 | |
CN107092489B (zh) | 基于应用版本发布的处理方法和系统 | |
CN110532182B (zh) | 一种虚拟化平台的自动化测试方法及装置 | |
CN112379969B (zh) | 一种基于容器化应用的持续集成交付方法及相关设备 | |
CN117370203B (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN112596784B (zh) | 一种迭代版本部署方法及装置 | |
CN117827665A (zh) | 项目的部署方法及装置、存储介质及电子装置 | |
CN112579099A (zh) | 代码的部署方法、装置、存储介质及电子设备 | |
CN111651169A (zh) | 基于web容器的区块链智能合约运行方法及系统 | |
CN114237754A (zh) | 一种数据加载方法、装置、电子设备以及存储介质 | |
CN111767218A (zh) | 一种用于持续集成的自动化测试方法、设备及存储介质 | |
CN117270864A (zh) | 代码编译方法、装置、设备及存储介质 | |
CN112015436A (zh) | 短信平台部署方法及装置、计算设备、计算机存储介质 | |
CN116521530A (zh) | 单元测试方法、装置、设备、存储介质和产品 | |
CN114003257A (zh) | 一种升级方法及装置 | |
CN115729590A (zh) | 服务部署方法、装置、设备和计算机可读存储介质 | |
CN112667491B (zh) | 虚拟机的功能测试方法及装置 | |
CN115543491A (zh) | 微服务处理方法和装置 | |
CN114895916A (zh) | 代码部署方法、装置、存储介质以及电子设备 | |
CN113934405A (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 |