本发明属于微服务项目代码配置领域,尤其涉及一种基于gitlab的微服务项目代码配置方法及系统。
背景技术:
1、本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
2、gitlab是当前被广泛使用的开源企业代码仓库管理平台,主要从group和project两个维度进行代码和文档管理,其中group是群组,project是工程项目,一个group可以管理多个project。一般的,一个微服务项目在构建过程中,会放在一个group中,并在该group中创建多个微服务子项目project。ci/cd是指可持续集成持续部署,目前主流的ci/cd工具是jenkins,但是鉴于jenkins联动gitlab需要配置插件以及鉴于目前广泛地使用gitlab来进行版本管理的情况,gitlab-ci搭配自动部署方案渐渐成为更好的替代方案。使用gitlab-ci作为ci/cd需要在project中创建.gitlab-ci.yml,如果ci/cd流程复杂还需要创建其他文件,造成对微服务项目代码的侵入,并且不方便devops人员的维护。
技术实现思路
1、为了解决上述背景技术中存在的技术问题,本发明提供一种基于gitlab的微服务项目代码配置方法及系统,其能够降低ci/cd维护难度,提高代码质量,提高工作效率。
2、为了实现上述目的,本发明采用如下技术方案:
3、本发明的第一个方面提供一种基于gitlab的微服务项目代码配置方法。
4、一种基于gitlab的微服务项目代码配置方法,其包括:
5、获取业务代码和运维代码;
6、基于gitlab将业务代码和运维代码拆分到不同微服务项目;
7、通过微服务项目间引用代码的方式,自动化完成微服务项目的部署。
8、作为一种实施方式,在基于gitlab将业务代码和运维代码拆分到不同微服务项目的过程中,根据业务流程环节,基于gitlab将各个业务流程环节所对应的业务代码及运维代码拆分至相匹配的微服务项目中。
9、作为一种实施方式,在基于gitlab将业务代码和运维代码拆分到不同微服务项目之前,还包括:
10、在gitlab中创建group群组,用于存放微服务各项目。
11、作为一种实施方式,在基于gitlab将业务代码和运维代码拆分到不同微服务项目的过程中,在group群组中创建微服务项目各个子项目的project,用于存放项目所对应的业务代码。
12、作为一种实施方式,在基于gitlab将业务代码和运维代码拆分到不同微服务项目的过程中,在group群组中创建一个部署微服务项目的project deploy,用于存放项目相应运维代码。
13、作为一种实施方式,通过微服务项目间引用代码的方式,自动化完成微服务项目的部署的过程包括:
14、在部署微服务的项目project deploy中构建ci/cd的流水线管道,配置ci/cd通用组件模板;
15、在各个微服务子项目project中引用ci/cd通用组件模板,触发下游微服务部署项目的ci/cd的流水线管道,在部署项目的流水线中,通过触发认证获取部署服务的权限来完成微服务项目的部署。
16、本发明的第二个方面提供一种基于gitlab的微服务项目代码配置系统。
17、一种基于gitlab的微服务项目代码配置系统,其包括:
18、代码获取模块,其用于获取业务代码和运维代码;
19、代码拆分模块,其用于基于gitlab将业务代码和运维代码拆分到不同微服务项目;
20、代码引用模块,其用于通过微服务项目间引用代码的方式,自动化完成微服务项目的部署。
21、作为一种实施方式,在基于gitlab将业务代码和运维代码拆分到不同微服务项目的过程中,根据业务流程环节,基于gitlab将各个业务流程环节所对应的业务代码及运维代码拆分至相匹配的微服务项目中。
22、本发明的第三个方面提供一种计算机可读存储介质。
23、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的基于gitlab的微服务项目代码配置方法中的步骤。
24、本发明的第四个方面提供一种电子设备。
25、一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的基于gitlab的微服务项目代码配置方法中的步骤。
26、与现有技术相比,本发明的有益效果是:
27、本发明通过gitlab将业务代码和运维代码拆分到不同项目,并通过项目间引用代码的方式,完成自动化部署的过程,减少了自动化部署相关代码对项目代码的侵入,降低了开发难度,提升了代码安全性;降低了ci/cd流水线的维护难度,简化运维工作流程,提示项目上线效率;使用本方法代码组织管理架构,使得代码开发工作效率提升、代码质量更高,提升了生产环境的稳定性。
28、本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
1.一种基于gitlab的微服务项目代码配置方法,其特征在于,包括:
2.如权利要求1所述的基于gitlab的微服务项目代码配置方法,其特征在于,在基于gitlab将业务代码和运维代码拆分到不同微服务项目的过程中,根据业务流程环节,基于gitlab将各个业务流程环节所对应的业务代码及运维代码拆分至相匹配的微服务项目中。
3.如权利要求1所述的基于gitlab的微服务项目代码配置方法,其特征在于,在基于gitlab将业务代码和运维代码拆分到不同微服务项目之前,还包括:
4.如权利要求3所述的基于gitlab的微服务项目代码配置方法,其特征在于,在基于gitlab将业务代码和运维代码拆分到不同微服务项目的过程中,在group群组中创建微服务项目各个子项目的project,用于存放项目所对应的业务代码。
5.如权利要求3所述的基于gitlab的微服务项目代码配置方法,其特征在于,在基于gitlab将业务代码和运维代码拆分到不同微服务项目的过程中,在group群组中创建一个部署微服务项目的project deploy,用于存放项目相应运维代码。
6.如权利要求5所述的基于gitlab的微服务项目代码配置方法,其特征在于,通过微服务项目间引用代码的方式,自动化完成微服务项目的部署的过程包括:
7.一种基于gitlab的微服务项目代码配置系统,其特征在于,包括:
8.如权利要求5所述的基于gitlab的微服务项目代码配置系统,其特征在于,在基于gitlab将业务代码和运维代码拆分到不同微服务项目的过程中,根据业务流程环节,基于gitlab将各个业务流程环节所对应的业务代码及运维代码拆分至相匹配的微服务项目中。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一项所述的基于gitlab的微服务项目代码配置方法中的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一项所述的基于gitlab的微服务项目代码配置方法中的步骤。