CN111610967A - 基于云管理平台的持续集成和部署方法及装置 - Google Patents
基于云管理平台的持续集成和部署方法及装置 Download PDFInfo
- Publication number
- CN111610967A CN111610967A CN202010271364.9A CN202010271364A CN111610967A CN 111610967 A CN111610967 A CN 111610967A CN 202010271364 A CN202010271364 A CN 202010271364A CN 111610967 A CN111610967 A CN 111610967A
- Authority
- CN
- China
- Prior art keywords
- code
- codes
- mirror image
- packaging
- development
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
本发明公开了一种基于云管理平台的持续集成和部署方法及装置。其中,基于云管理平台的持续集成和部署方法包括:基于仓库管理系统gitLab创建代码工程,其中,每个代码工程包括主分支和开发分支,代码工程包括前端代码工程和后端代码工程,后端代码工程包括父工程和子工程;将开发完成的代码传入主分支,将未通过验证或未完成的代码传入开发分支;在持续集成平台的从节点上对开发分支的代码进行前端打包,并在持续集成平台的主节点上对主分支上的代码进行后端打包;生成与打包后的代码对应的容器镜像,并将容器镜像上传至镜像仓库;在云管理平台对容器镜像进行定制化部署。
Description
技术领域
本发明涉及云管理平台技术领域,尤其涉及一种基于云管理平台的持续集成和部署方法及装置。
背景技术
随着科技的不断进步,CI/CD(Continuous Integration、Delivery&Deployment,持续集成/持续交付)已成为推动云管理平台研发的重要基础设施服务,其应用也越来越广泛。CI/CD包含了持续集成和持续测试两大方面。持续集成可以让漏洞Bug容易被发现和改正,在敏捷开发中,持续集成将驱动每个迭代期软件产品质量的持续改进,速度快、效率高。
目前,云计算产品持续集成的流程为:在版本控制中,采用Git工具进行代码管理,云计算平台的各个模块开发人员共用一个代码仓库;在构建过程中,将代码仓库的代码进行检出,打包产生jar包;在安装过程中,部署人员规划环境中各个节点的IP等配置,然后手动安装待测系统的操作系统。操作系统安装完成后,准备部署节点,把jar包、war包等加载到云管理平台中。上述集成过程,会出现其中一个人的代码有问题,导致团队中其他人的代码也无法集成成功。此外,随着云管理平台功能的增加,模块一旦出现问题,会造成全部代码的重新集成和相关研发或者测试环境的重新部署,过程中过多的手动配置环境,会导致各个测试环境的不一致。代码集成和部署之后,出错率较高且不易于复现Bug,导致敏捷开发的迭代器开发效率和测试效率低。
发明内容
本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本发明的第一个目的在于提出一种基于云管理平台的持续集成和部署方法,能够实现云管理平台的快速部署,提高开发和测试的效率。
本发明的第二个目的在于提出一种基于云管理平台的持续集成和部署装置。
本发明的第三个目的在于提出一种计算机设备。
本发明的第四个目的在于提出一种非临时性计算机可读存储介质。
为了实现上述目的,本发明第一方面实施例提出一种基于云管理平台的持续集成和部署方法,该方法包括:
基于仓库管理系统gitLab创建代码工程,其中,每个代码工程包括主分支和开发分支,所述代码工程包括前端代码工程和后端代码工程,所述后端代码工程包括父工程和子工程;
将开发完成的代码传入所述主分支,将未通过验证或未完成的代码传入所述开发分支;
在持续集成平台的从节点上对开发分支的代码进行前端打包,并在所述持续集成平台的主节点上对主分支上的代码进行后端打包;
生成与打包后的代码对应的容器镜像,并将所述容器镜像上传至镜像仓库;
在所述云管理平台对所述容器镜像进行定制化部署。
可选的,方法还包括:
构建所述持续集成平台,所述持续集成平台包括所述主节点和所述从节点;
在所述主节点和所述从节点上安装代码测试工具,在所述从节点上安装代码打包工具。
可选的,在持续集成平台的从节点上对开发分支的代码进行前端打包,并在所述持续集成平台的主节点上对主分支上的代码进行后端打包,包括:
在所述从节点上自动检出前端代码仓库中的开发分支的代码,并利用代码打包工具对所述前端代码仓库中的开发分支的代码进行打包,以生成前端包;
在所述主节点上自动检出后端代码仓库中父工程的开发分支的代码,并更新子工程,以及对所述后端代码仓库中父工程的开发分支的代码进行打包,以生成后端包。
可选的,生成与打包后的代码对应的容器镜像,包括:
自定义容器镜像版本,并开启上传容器镜像开关;
准备所述容器镜像,并将所述打包后的代码及其配置文件保存至预设目录;
生成所述容器镜像。
可选的,在所述云管理平台对所述容器镜像进行定制化部署,包括:
获取模板配置文件;
定义所述模板配置文件中的变量;
基于所述变量对所述容器镜像进行定制化部署。
可选的,方法还包括:
利用代码检测工具对所有代码进行检测,并生成代码质量分析报告。
本发明实施例的基于云管理平台的持续集成和部署方法,通过基于仓库管理系统gitLab创建代码工程,并将开发完成的代码传入所述主分支,将未通过验证或未完成的代码传入所述开发分支,以及在持续集成平台的从节点上对开发分支的代码进行前端打包,并在所述持续集成平台的主节点上对主分支上的代码进行后端打包,然后生成与打包后的代码对应的容器镜像,并将所述容器镜像上传至镜像仓库,以及在所述云管理平台对所述容器镜像进行定制化部署,实现了云管理平台的快速部署,提高了开发和测试的效率。
为了实现上述目的,本发明第二方面实施例提出了一种基于云管理平台的持续集成和部署装置,包括:
创建模块,用于基于仓库管理系统gitLab创建代码工程,其中,每个代码工程包括主分支和开发分支,所述代码工程包括前端代码工程和后端代码工程,所述后端代码工程包括父工程和子工程;
传输模块,用于将开发完成的代码传入所述主分支,将未通过验证或未完成的代码传入所述开发分支;
打包模块,用于在持续集成平台的从节点上对开发分支的代码进行前端打包,并在所述持续集成平台的主节点上对主分支上的代码进行后端打包;
生成模块,用于生成与打包后的代码对应的容器镜像,并将所述容器镜像上传至镜像仓库;
部署模块,用于在所述云管理平台对所述容器镜像进行定制化部署。
可选的,装置还包括:
构建模块,用于构建所述持续集成平台,所述持续集成平台包括所述主节点和所述从节点;
安装模块,用于在所述主节点和所述从节点上安装代码测试工具,在所述从节点上安装代码打包工具。
可选的,所述打包模块,用于:
在所述从节点上自动检出前端代码仓库中的开发分支的代码,并利用代码打包工具对所述前端代码仓库中的开发分支的代码进行打包,以生成前端包;
在所述主节点上自动检出后端代码仓库中父工程的开发分支的代码,并更新子工程,以及对所述后端代码仓库中父工程的开发分支的代码进行打包,以生成后端包。
可选的,所述生成模块,用于:
自定义容器镜像版本,并开启上传容器镜像开关;
准备所述容器镜像,并将所述打包后的代码及其配置文件保存至预设目录;
生成所述容器镜像。
可选的,所述部署模块,用于:
获取模板配置文件;
定义所述模板配置文件中的变量;
基于所述变量对所述容器镜像进行定制化部署。
可选的,装置还包括:
检测模块,用于利用代码检测工具对所有代码进行检测,并生成代码质量分析报告。
本发明实施例的基于云管理平台的持续集成和部署装置,通过基于仓库管理系统gitLab创建代码工程,并将开发完成的代码传入所述主分支,将未通过验证或未完成的代码传入所述开发分支,以及在持续集成平台的从节点上对开发分支的代码进行前端打包,并在所述持续集成平台的主节点上对主分支上的代码进行后端打包,然后生成与打包后的代码对应的容器镜像,并将所述容器镜像上传至镜像仓库,以及在所述云管理平台对所述容器镜像进行定制化部署,实现了云管理平台的快速部署,提高了开发和测试的效率。
为了实现上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如第一方面实施例所述的基于云管理平台的持续集成和部署方法。
为了实现上述目的,本发明第四方面实施例还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如第一方面实施例所述的基于云管理平台的持续集成和部署方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明一实施例的基于云管理平台的持续集成和部署方法的流程图;
图2是本发明一实施例的前端打包和后端打包的流程图;
图3是本发明一实施例的生成容器镜像的流程图;
图4是本发明一实施例的容器镜像定制化部署的流程图;
图5是本发明另一实施例的基于云管理平台的持续集成和部署方法的流程图;
图6是本发明又一实施例的基于云管理平台的持续集成和部署方法的流程图;
图7是本发明一具体实施例的基于云管理平台的持续集成和部署方法的流程图;
图8是本发明一实施例的源代码版本管理效果示意图;
图9是本发明一实施例的基于云管理平台的持续集成和部署装置的结构示意图;
图10是本发明另一实施例的基于云管理平台的持续集成和部署装置的结构示意图;
图11是本发明又一实施例的基于云管理平台的持续集成和部署装置的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
以下结合具体实施例对本发明作进一步详细描述,这些实施例不能理解为限制本发明所要求保护的范围。
下面参考附图描述本发明实施例的基于云管理平台的持续集成和部署方法及装置。
图1是本发明一实施例的基于云管理平台的持续集成和部署方法的流程图,如图1所示,该方法包括以下步骤:
S1,基于仓库管理系统gitLab创建代码工程。
其中,每个代码工程均包括主分支和开发分支。而代码工程又可包括前端代码工程和后端代码工程,后端代码工程进一步包括父工程和子工程。
S2,将开发完成的代码传入主分支,将未通过验证或未完成的代码传入开发分支。
S3,在持续集成平台的从节点上对开发分支的代码进行前端打包,并在持续集成平台的主节点上对主分支上的代码进行后端打包。
具体地,可如图2所示,步骤S3进一步包括:
S31,在从节点上自动检出前端代码仓库中的开发分支的代码,并利用代码打包工具对前端代码仓库中的开发分支的代码进行打包,以生成前端包。
S32,在主节点上自动检出后端代码仓库中父工程的开发分支的代码,并更新子工程,以及对后端代码仓库中父工程的开发分支的代码进行打包,以生成后端包。
S4,生成与打包后的代码对应的容器镜像,并将容器镜像上传至镜像仓库。
具体地,可如图3所示,步骤S4进一步包括:
S41,自定义容器镜像版本,并开启上传容器镜像开关。
S42,准备容器镜像,并将打包后的代码及其配置文件保存至预设目录。
S43,生成容器镜像。
S5,在云管理平台对容器镜像进行定制化部署。
具体地,可如图4所示,步骤S5进一步包括:
S51,获取模板配置文件。
S52,定义模板配置文件中的变量。
S53,基于变量对容器镜像进行定制化部署。
本发明实施例的基于云管理平台的持续集成和部署方法,通过基于仓库管理系统gitLab创建代码工程,并将开发完成的代码传入所述主分支,将未通过验证或未完成的代码传入所述开发分支,以及在持续集成平台的从节点上对开发分支的代码进行前端打包,并在所述持续集成平台的主节点上对主分支上的代码进行后端打包,然后生成与打包后的代码对应的容器镜像,并将所述容器镜像上传至镜像仓库,以及在所述云管理平台对所述容器镜像进行定制化部署,实现了云管理平台的快速部署,提高了开发和测试的效率。
在本发明的另一个实施例中,如图5所示,该方法还包括以下步骤:
S6,构建持续集成平台。
其中,持续集成平台包括主节点和从节点。
S7,在主节点和从节点上安装代码测试工具,在从节点上安装代码打包工具。
在本发明的又一个实施例中,如图6所示,该方法还包括以下步骤:
S8,利用代码检测工具对所有代码进行检测,并生成代码质量分析报告。
通过集成中自动化代码检查和API测试的方法,对产品的代码进行自动化验证,能够及时发现问题并通知相关开发和测试人员进行问题反馈。
下面通过一个具体实施例,来对本发明的基于云管理平台的持续集成和部署方法进行详细阐述。
图7是本发明一具体实施例的基于云管理平台的持续集成和部署方法的流程图。
为解决现有技术中存在的问题,本发明提供了一种基于云管理平台的持续集成和部署方法,从源代码的提交合并到git仓库、云管平台集成打包、测试环境的部署形成一套全自动化的流程。
如图7所示,该方法包括以下步骤:
S701,创建gitLab,并在gitLab上分别创建前端代码工程和后端代码工程。
其中,GitLab是一个用于仓库管理系统的开源项目。后端代码工程包括父工程和子工程。对于每个工程分别创建两个分支,即dev分支和master分支。
源代码版本管理方面,可如图8所示。图中显示有多个项目(工程),包括有计算项目、存储项目、网络项目、测试项目等。每个项目都具有各自的master分支和dev分支。将完成开发的代码合并入master分支,将未通过验证或未完成的代码放入dev分支,dev分支的代码开发完成后,将该分支的代码合并入master分支。
S702,前端代码打包和后端代码打包。
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。Jenkins包括主节点和从节点。在从节点上进行前端代码打包,在主节点上进行后端代码打包,然后通过子模块submodule进行分支代码的更新。
举例来说,在centos7虚拟机上搭建Jenkins主节点,在win10上搭建Jenkins从节点。对Jenkins的主节点和从节点均安装git、jdk工具,从节点安装nodejs工具,完成相关插件的安装和配置的修改。搭建harbor镜像仓库,用来对容器镜像进行管理和保存。
代码的编译打包方面,通过Jenkins从节点上的git工具自动检出前端代码仓库的dev分支代码。通过Jenkins从节点上的nodejs工具进行自动打包,输出并保存编译好的前端包;通过Jenkins主节点自动检出后端代码仓库父工程的dev分支代码,并更新submodlue项目;通过Jenkins主节点上的maven工具进行自动打包,输出并保存编译好的后端jar包。
S703,容器镜像构建。
在Jenkins节点上安装docker服务,通过自动构建脚本,实现前后端服务的容器镜像构建并上传到harbor仓库。使用harbor镜像仓库保存云管理平台的镜像文件,每个服务的镜像可以自定义版本,支持独立自动构建,也可以对全部的服务进行自动构建。同时可以设置是否上传镜像仓库的开关。
S704,云管理平台的部署。
通过kolla-ansible工具定制容器部署脚本,实现前后端服务以及第三方服务(mariadb、redis、rabbitmq、grafana服务)的容器部署。该部署方式可以简单便捷地实现各个服务的配置文件的管理。然后可将配置文件、数据库文件(日志和数据)保存在容器外,实现容器的可抛弃性。下面以grafana服务举例,其他服务均按照该源码结构进行定制开发和实现。在template目录中,定义grafana.ini.j2的配置文件模板,kolla-ansible默认从此目录中查找对应名称的模板文件。
S705,静态代码检查和API自动化测试。
通过Jenkins集成sonarqube工具,可以对前后端所有服务的源码进行缺陷、漏洞的检查,并通过Jenkins查看代码质量分析报告。通过api测试,可以对云管理平台的多个服务的API进行测试。
通过本云管理平台的持续集成和部署流程,可以实现云管理平台自动打包、自动代码检查、自动部署和自动化测试。支持每日集成,在Jenkins上配置了每日晚上11点进行包括自动打包、自动代码检查、自动部署和自动化测试的全流程的自动构建。全流程不需要人工参与,开发人员登录Jenkins平台即可查看代码编译是否成功,代码是否存在严重缺陷和漏洞,云管理平台的基本功能是否可用。
本发明的云计算环境的持续集成和部署方法具有以下几点优势:
1、使用kolla-ansible的变量文件all.yml,可以对云管理平台的各种配置参数进行全局设置,统一变量入口,可以有效避免参数不一致导致的环境配置错误。
2、各个模块使用单独的代码仓库管理,分别创建开发分支dev和集成分支master,任一模块出现问题,可以但单独对该模块进行构建并快速部署到测试环境,大大缩短了环境更新的时间。
3、通过将镜像和配置文件分离和部署容器的方式,可以保持多套环境的一致性,并且通过docker控制服务的启停,服务的启动级别为秒级,能够为开发和测试人员快速提供一套云管理平台,从而提高开发和测试的效率。
4、通过每日集成自动化代码检查和API测试的方法,对产品进行自动化验证,能够及时发现问题并通知相关开发和测试人员进行问题反馈。
为了实现上述实施例,本发明还提出了一种基于云管理平台的持续集成和部署装置。
图9是本发明一实施例的基于云管理平台的持续集成和部署装置的结构示意图。
如图9所示,该装置包括创建模块91、传输模块92、打包模块93、生成模块94以及部署模块95。
创建模块91,用于基于仓库管理系统gitLab创建代码工程,其中,每个代码工程包括主分支和开发分支,代码工程包括前端代码工程和后端代码工程,后端代码工程包括父工程和子工程。
传输模块92,用于将开发完成的代码传入主分支,将未通过验证或未完成的代码传入开发分支。
打包模块93,用于在持续集成平台的从节点上对开发分支的代码进行前端打包,并在持续集成平台的主节点上对主分支上的代码进行后端打包。
打包模块93用于在从节点上自动检出前端代码仓库中的开发分支的代码,并利用代码打包工具对前端代码仓库中的开发分支的代码进行打包,以生成前端包;在主节点上自动检出后端代码仓库中父工程的开发分支的代码,并更新子工程,以及对后端代码仓库中父工程的开发分支的代码进行打包,以生成后端包。
生成模块94,用于生成与打包后的代码对应的容器镜像,并将容器镜像上传至镜像仓库。
生成模块94用于自定义容器镜像版本,并开启上传容器镜像开关;准备容器镜像,并将打包后的代码及其配置文件保存至预设目录;生成容器镜像。
部署模块95,用于在云管理平台对容器镜像进行定制化部署。
部署模块95用于:获取模板配置文件;定义模板配置文件中的变量;基于变量对容器镜像进行定制化部署。
在本发明的另一个实施例中,如图10所示,该装置还包括构建模块96和安装模块97。
构建模块96,用于构建持续集成平台,持续集成平台包括主节点和从节点。
安装模块97,用于在主节点和从节点上安装代码测试工具,在从节点上安装代码打包工具。
在本发明的又一个实施例中,如图11所示,该装置还包括检测模块98。
检测模块98,用于利用代码检测工具对所有代码进行检测,并生成代码质量分析报告。
应当理解的是,本实施例的基于云管理平台的持续集成和部署装置与第一方面实施例的基于云管理平台的持续集成和部署方法的描述一致,此处不再赘述。
本发明实施例的基于云管理平台的持续集成和部署装置,通过基于仓库管理系统gitLab创建代码工程,并将开发完成的代码传入所述主分支,将未通过验证或未完成的代码传入所述开发分支,以及在持续集成平台的从节点上对开发分支的代码进行前端打包,并在所述持续集成平台的主节点上对主分支上的代码进行后端打包,然后生成与打包后的代码对应的容器镜像,并将所述容器镜像上传至镜像仓库,以及在所述云管理平台对所述容器镜像进行定制化部署,实现了云管理平台的快速部署,提高了开发和测试的效率。
为了实现上述实施例,本发明还提出了一种计算机设备。
该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现如第一方面实施例的基于云管理平台的持续集成和部署方法。
为了实现上述实施例,本发明还提出了一种非临时性计算机可读存储介质。
该非临时性计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面实施例的基于云管理平台的持续集成和部署方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
需要说明的是,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
Claims (14)
1.一种基于云管理平台的持续集成和部署方法,其特征在于,包括:
基于仓库管理系统gitLab创建代码工程,其中,每个代码工程包括主分支和开发分支,所述代码工程包括前端代码工程和后端代码工程,所述后端代码工程包括父工程和子工程;
将开发完成的代码传入所述主分支,将未通过验证或未完成的代码传入所述开发分支;
在持续集成平台的从节点上对开发分支的代码进行前端打包,并在所述持续集成平台的主节点上对主分支上的代码进行后端打包;
生成与打包后的代码对应的容器镜像,并将所述容器镜像上传至镜像仓库;
在所述云管理平台对所述容器镜像进行定制化部署。
2.如权利要求1所述的方法,其特征在于,还包括:
构建所述持续集成平台,所述持续集成平台包括所述主节点和所述从节点;
在所述主节点和所述从节点上安装代码测试工具,在所述从节点上安装代码打包工具。
3.如权利要求1所述的方法,其特征在于,在持续集成平台的从节点上对开发分支的代码进行前端打包,并在所述持续集成平台的主节点上对主分支上的代码进行后端打包,包括:
在所述从节点上自动检出前端代码仓库中的开发分支的代码,并利用代码打包工具对所述前端代码仓库中的开发分支的代码进行打包,以生成前端包;
在所述主节点上自动检出后端代码仓库中父工程的开发分支的代码,并更新子工程,以及对所述后端代码仓库中父工程的开发分支的代码进行打包,以生成后端包。
4.如权利要求1所述的方法,其特征在于,生成与打包后的代码对应的容器镜像,包括:
自定义容器镜像版本,并开启上传容器镜像开关;
准备所述容器镜像,并将所述打包后的代码及其配置文件保存至预设目录;
生成所述容器镜像。
5.如权利要求1所述的方法,其特征在于,在所述云管理平台对所述容器镜像进行定制化部署,包括:
获取模板配置文件;
定义所述模板配置文件中的变量;
基于所述变量对所述容器镜像进行定制化部署。
6.如权利要求1所述的方法,其特征在于,还包括:
利用代码检测工具对所有代码进行检测,并生成代码质量分析报告。
7.一种基于云管理平台的持续集成和部署装置,其特征在于,包括:
创建模块,用于基于仓库管理系统gitLab创建代码工程,其中,每个代码工程包括主分支和开发分支,所述代码工程包括前端代码工程和后端代码工程,所述后端代码工程包括父工程和子工程;
传输模块,用于将开发完成的代码传入所述主分支,将未通过验证或未完成的代码传入所述开发分支;
打包模块,用于在持续集成平台的从节点上对开发分支的代码进行前端打包,并在所述持续集成平台的主节点上对主分支上的代码进行后端打包;
生成模块,用于生成与打包后的代码对应的容器镜像,并将所述容器镜像上传至镜像仓库;
部署模块,用于在所述云管理平台对所述容器镜像进行定制化部署。
8.如权利要求7所述的装置,其特征在于,还包括:
构建模块,用于构建所述持续集成平台,所述持续集成平台包括所述主节点和所述从节点;
安装模块,用于在所述主节点和所述从节点上安装代码测试工具,在所述从节点上安装代码打包工具。
9.如权利要求7所述的装置,其特征在于,所述打包模块,用于:
在所述从节点上自动检出前端代码仓库中的开发分支的代码,并利用代码打包工具对所述前端代码仓库中的开发分支的代码进行打包,以生成前端包;
在所述主节点上自动检出后端代码仓库中父工程的开发分支的代码,并更新子工程,以及对所述后端代码仓库中父工程的开发分支的代码进行打包,以生成后端包。
10.如权利要求7所述的装置,其特征在于,所述生成模块,用于:
自定义容器镜像版本,并开启上传容器镜像开关;
准备所述容器镜像,并将所述打包后的代码及其配置文件保存至预设目录;
生成所述容器镜像。
11.如权利要求7所述的装置,其特征在于,所述部署模块,用于:
获取模板配置文件;
定义所述模板配置文件中的变量;
基于所述变量对所述容器镜像进行定制化部署。
12.如权利要求7所述的装置,其特征在于,还包括:
检测模块,用于利用代码检测工具对所有代码进行检测,并生成代码质量分析报告。
13.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-6任一所述的基于云管理平台的持续集成和部署方法。
14.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一所述的基于云管理平台的持续集成和部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271364.9A CN111610967A (zh) | 2020-04-08 | 2020-04-08 | 基于云管理平台的持续集成和部署方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271364.9A CN111610967A (zh) | 2020-04-08 | 2020-04-08 | 基于云管理平台的持续集成和部署方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111610967A true CN111610967A (zh) | 2020-09-01 |
Family
ID=72199313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010271364.9A Pending CN111610967A (zh) | 2020-04-08 | 2020-04-08 | 基于云管理平台的持续集成和部署方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111610967A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052036A (zh) * | 2020-09-07 | 2020-12-08 | 网易(杭州)网络有限公司 | 应用程序管理方法、装置、存储介质及计算机设备 |
CN112162761A (zh) * | 2020-10-14 | 2021-01-01 | 广州欢网科技有限责任公司 | 自动化部署项目至公有云容器化平台的方法、系统及设备 |
CN112346818A (zh) * | 2020-11-02 | 2021-02-09 | 北京新媒传信科技有限公司 | 一种容器应用部署方法、装置、电子设备和存储介质 |
CN112764881A (zh) * | 2021-01-19 | 2021-05-07 | 杭州朗澈科技有限公司 | 流水线部署镜像的方法、系统、计算机设备和存储介质 |
CN112817857A (zh) * | 2021-02-05 | 2021-05-18 | 深圳市世强元件网络有限公司 | 基于JMeter和JenKins的自动监控网站异常方法及计算机设备 |
CN113419744A (zh) * | 2021-06-24 | 2021-09-21 | 广州欢网科技有限责任公司 | 项目自动化部署的方法及装置 |
CN113703730A (zh) * | 2021-08-30 | 2021-11-26 | 平安普惠企业管理有限公司 | 持续集成方法、装置、计算机设备及存储介质 |
CN113849190A (zh) * | 2021-11-30 | 2021-12-28 | 广州鲁邦通智能科技有限公司 | 一种基于云管理平台的持续集成和部署方法及装置 |
CN114237754A (zh) * | 2021-12-20 | 2022-03-25 | 中国平安财产保险股份有限公司 | 一种数据加载方法、装置、电子设备以及存储介质 |
CN115408303A (zh) * | 2022-11-01 | 2022-11-29 | 云账户技术(天津)有限公司 | 前端静态资源的维护方法、装置、电子设备及存储介质 |
-
2020
- 2020-04-08 CN CN202010271364.9A patent/CN111610967A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052036A (zh) * | 2020-09-07 | 2020-12-08 | 网易(杭州)网络有限公司 | 应用程序管理方法、装置、存储介质及计算机设备 |
CN112162761A (zh) * | 2020-10-14 | 2021-01-01 | 广州欢网科技有限责任公司 | 自动化部署项目至公有云容器化平台的方法、系统及设备 |
CN112346818A (zh) * | 2020-11-02 | 2021-02-09 | 北京新媒传信科技有限公司 | 一种容器应用部署方法、装置、电子设备和存储介质 |
CN112764881A (zh) * | 2021-01-19 | 2021-05-07 | 杭州朗澈科技有限公司 | 流水线部署镜像的方法、系统、计算机设备和存储介质 |
CN112764881B (zh) * | 2021-01-19 | 2024-04-05 | 深圳软通动力信息技术有限公司 | 流水线部署镜像的方法、系统、计算机设备和存储介质 |
CN112817857A (zh) * | 2021-02-05 | 2021-05-18 | 深圳市世强元件网络有限公司 | 基于JMeter和JenKins的自动监控网站异常方法及计算机设备 |
CN113419744A (zh) * | 2021-06-24 | 2021-09-21 | 广州欢网科技有限责任公司 | 项目自动化部署的方法及装置 |
CN113703730A (zh) * | 2021-08-30 | 2021-11-26 | 平安普惠企业管理有限公司 | 持续集成方法、装置、计算机设备及存储介质 |
CN113849190A (zh) * | 2021-11-30 | 2021-12-28 | 广州鲁邦通智能科技有限公司 | 一种基于云管理平台的持续集成和部署方法及装置 |
CN114237754A (zh) * | 2021-12-20 | 2022-03-25 | 中国平安财产保险股份有限公司 | 一种数据加载方法、装置、电子设备以及存储介质 |
CN115408303A (zh) * | 2022-11-01 | 2022-11-29 | 云账户技术(天津)有限公司 | 前端静态资源的维护方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111610967A (zh) | 基于云管理平台的持续集成和部署方法及装置 | |
CN109683899B (zh) | 一种软件集成方法及装置 | |
CN109814879B (zh) | 自动化ci/cd项目部署方法、存储介质 | |
US8533676B2 (en) | Single development test environment | |
US8745585B2 (en) | Meta-data for single development test environment | |
CN113703730A (zh) | 持续集成方法、装置、计算机设备及存储介质 | |
US8805804B2 (en) | Configuring an application program in a computer system | |
CN106407101B (zh) | 基于lxc的持续集成方法及装置 | |
US20200233403A1 (en) | Edge Devices and Associated Networks Utilising Microservices | |
CN110795078B (zh) | 基于ios系统下的app工程运作系统的架构方法 | |
CN112965786A (zh) | 一种基于容器化的持续集成和持续交付方法及装置 | |
CN103631720A (zh) | 测试用例的生成方法和装置 | |
US10514898B2 (en) | Method and system to develop, deploy, test, and manage platform-independent software | |
CN109614109B (zh) | 应用部署方法、装置和系统 | |
AU2012201749B2 (en) | Single development test environment | |
CN115098156B (zh) | 一种网络模态管理系统及管理方法 | |
Holzner | Ant: The Definitive Guide: Complete Build Management for Java | |
CN110704113B (zh) | 一种基于fpga平台的启动方法、系统及开发板装置 | |
Koop et al. | The provenance of workflow upgrades | |
CN114003257A (zh) | 一种升级方法及装置 | |
CN113032006B (zh) | 插件构建方法、装置、设备和存储介质 | |
CN110175112A (zh) | 基于过程管理提高版本测试效率的方法及设备 | |
US20240160559A1 (en) | Automated decoupling of unit tests | |
Tabango-Castillo et al. | Firmware Generator for IoT Devices | |
CN116340167A (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 |