基于gitlab的CICD流程规范

基于gitlab的CICD流程规范前言:这篇文章主要讲一讲基于gitlab的CICD流程规范基于gitlab的CICD流程规范一、简介二、CICD流程图三、CICD说明四、结合CICD流程拓展1、业务代码-数据库基于flyway实现版本控制2、数据库版本控制3、二进制或内置五、代码质量检查及自动化测试(未来)六、疑问解答与加群交流学习一、简介为了提升线下测试效率,缩短测试时间,提升提测代码质量,规范流程,缩短测试准备和执行时间,缩短问题定位时间,提供预测性指标,规范CICD流程,以提升整体团队效率。二、CICD流程图三、CICD

大家好,又见面了,我是你们的朋友全栈君。

前言:这篇文章主要讲一讲基于gitlab的CICD流程规范

一、简介

为了提升线下测试效率,缩短测试时间,提升提测代码质量,规范流程,缩短测试准备和执行时间,缩短问题定位时间,提供预测性指标,规范CICD流程,以提升整体团队效率。

二、CICD流程图

在这里插入图片描述

三、CICD说明

发布分为大致三个环境:
1、开发环境对应于dev分支
2、测试环境对应于test分支
3、预发布环境对应uat分支
4、生产环境对应于master分支

CICD流程如下:

#开发环境
推送代码->编译->生成的jar包发布到私服->打包为docker镜像->推送到Harbor镜像仓库->部署到k8s集群->健康检查(成功,微信通知,c结束返回成功|失败,微信通知,ci结束返回失败

#测试环境
1、推送代码->编译->生成的jar包发布到私服->打包为docker镜像->推送到Harbor镜像仓库(成功,微信通知,c结束返回成功|失败,微信通知,ci结束返回失败)
2、测试人员触发部署到k8s集群->健康检查(成功,微信通知,c结束返回成功|失败,微信通知,ci结束返回失败)

预发布环境
1、推送代码->编译->生成的jar包发布到私服->打包为docker镜像->推送到Harbor镜像仓库(成功,微信通知,c结束返回成功|失败,微信通知,ci结束返回失败)
2、测试人员|运维人员 触发部署到k8s集群->健康检查(成功,微信通知,c结束返回成功|失败,微信通知,ci结束返回失败)

生产环境
1、推送代码->编译->生成的jar包发布到私服->打包为docker镜像->推送到Harbor镜像仓库(成功,微信通知,c结束返回成功|失败,微信通知,ci结束返回失败)
2、运维人员 触发部署到k8s集群->健康检查(成功,微信通知,c结束返回成功|失败,微信通知,ci结束返回失败)

实现效果如下:
1、自动触发构建-test
在这里插入图片描述
2、自动触发构建-master(人工确认部署)
在这里插入图片描述
实现细节如下:

步骤为:
1、配置环境变量
2、拉取代码
3、编译(打包和推送到私服)
4、编译产物修改名称(用作部署指定版本)
5、运行程序
6、反馈编译状态结果

四、结合CICD流程拓展

1、业务代码-数据库基于flyway实现版本控制

引入原因:

  • Schema 变更往往会添加或重命名多个列或表。如果应用程序版本与 schema 版本不匹配,还有可能彻底破坏应用程序的正常运行。最后,由于存在两套不同的系统,通过应用程序升级来协调数据库变更也比较困难。

2、数据库版本控制

FlyWay 允许用户轻松创建各数据库版本、跟踪数据库迁移并轻松完成 schema 变更的前滚与回滚——整个过程无需配合定制构建解决方案。

3、二进制或内置

可以选择在应用程序的启动过程中、或者以二进制可执行文件的形式运行 Flyway。用户可以在代码中直接使用此工具,使其在启动时能够检查版本功能并运行适当迁移,从而令数据库与应用程序的版本保持同步。当然也可以临时运行 cmd 行,在无需重建整体应用程序的前提下为现有数据库提供良好的灵活性。

使用后操作数据库的改变:
对于数据库表接口的变更就要关闭这几个途径

  1. 直接通过工具登录数据去修改表结构
  2. 已经发布的sql脚本不允许修改

正确的表结构调整途径:
在flyway脚本配置路径下编写新的脚本,启动程序来执行变更。这样可以获得几个很大的好处:

  1. 脚本受Git版本管理控制,可以方便的找到过去的历史
  2. 脚本在程序启动的时候先加载,再提供接口服务,一起完成部署步骤
  3. 所有表结构的历史变迁,在管理目录中根据版本号就能很好的追溯

五、代码质量检查及自动化测试(未来)

开发层面建议:

  1. 每次 Review 的代码量不要太多,控制在 400 行以内
  2. 最好的建议是将一次 Review 的时间控制在 60 分钟以内
  3. 提交 Review 之前,需要做严格的自我检查,根据 Checklist

引入原因:

  • 与动态分析相比,执行速度更快;
  • 可以对代码质量维护进行自动化;
  • 在早期阶段 (尽管不是所有阶段) 可以自动检索 bug;
  • 在早期阶段可以自动发现安全问题;

SonarQube 是一种很流行的静态分析工具,用于持续检查代码库的代码质量和安全性,并在代码评审期间指导开发团队。SonarQube 可与 CI/CD 集成,进行自动化代码检查。它还提供了质量管理工具帮你主动纠正错误:IDE 集成、Jenkins 集成和代码评审工具。

访问地址:https://www.sonarqube.org

关键特性:

  • 多语言支持;
  • 安全性分析;
  • 发布质量代码;
  • 可维护性;
  • 可以识别蹊跷的问题

引入集成测试等相关测试平台与Devops结合提升整体项目交付能力

在这里插入图片描述

六、疑问解答与加群交流学习

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130244.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python中的if语句怎么用_iserror函数的使用方法

    python中的if语句怎么用_iserror函数的使用方法if语句用来表示某种可能的情况,并如何处理该情况。if语句可以用来表示一种可能性、两种可能性或者多种可能性。1一种可能性单个的if语句表示一种可能性,if关键字后面跟着表达式,当表达式是True时,表示这种情况发生了,则执行指定的语句,即处理该情况,如图1所示。图1单个if语句的使用其中,图1①使用input()函数接收用户输入的数值,将其转换成int类型并保存在变量中;图1②通过if语句对变量x进行判断,如果x的值大于0,则输出“您输入的是一个非负数”这个信息(图1③)。需要注意.

    2022年9月26日
    0
  • linux top 指定进程_linux top 排序

    linux top 指定进程_linux top 排序top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器第一行,任务队列信息,同uptime命令的执行结果第二行,Tasks—任务(进程)第三行,cpu状态信息第四行,内存状态第五行,swap交换分区信息第六行,空行第七行以下:各进程(任务)的状态监控详解top使用方法:使用格式:top[-][d][p][q][c]…

    2022年9月24日
    0
  • PyCharm激活码永久有效PyCharm2018.3.7激活码教程-持续更新,一步到位[通俗易懂]

    PyCharm激活码永久有效PyCharm2018.3.7激活码教程-持续更新,一步到位[通俗易懂]PyCharm激活码永久有效2018.3.7激活码教程-Windows版永久激活-持续更新,Idea激活码2018.3.7成功激活

    2022年6月19日
    32
  • 【交换机】MAC-VLAN的功能作用是什么,如何设置[通俗易懂]

    【交换机】MAC-VLAN的功能作用是什么,如何设置[通俗易懂]MACVLAN就是基于MAC地址划分的VLAN,MACVLAN的最大优点就是用户不需要固定在某些端口下,可以随意移动,比如当用户物理位置移动时,即从一台交换机换到其它的交换机时,VLAN不用重新配置,所以,可以认为这种根据MAC地址的划分VLAN方法是基于用户的MAC地址信息来的。MACVLAN的缺点是初始化时,所有的用户都必须进行配置MAC与VLAN的对应关系。主要有两个配置步骤:1、所

    2022年8月10日
    18
  • 红帽linux中安装oracle数据库_红帽系统下载

    红帽linux中安装oracle数据库_红帽系统下载Linux下安装Oracle系统最好是1G内存,2G的swap空间,硬盘至少需要4.5G空间。至少环境在LinuxServerrelease5.3以上如果是LinuxServerrelease5.1,改装oracle10.2g吧一、查看Linux版本[root@localhost~]#cat/etc/issueRedHatEnterpriseLinuxServerrel…

    2022年9月21日
    0
  • 什么是透传(虚拟服务器地址)

    moxa串口服务器配置点对点透传模式步骤MOXA串口服务器基本要点:使用TCP/IP通讯协议,需要2个串口服务器配对使用。将串口服务器A设置为Server模式(出厂默认模式),另一个串口服务器B设置为Client模式。将串口服务器B要连接的远程主机地址和端口,设置为A的IP地址和监听端口,即可完成配对。RS232/RS485串口服务器A(Client)串口服务器B(Server)RS232/RS4…

    2022年4月10日
    124

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号