持续集成/持续交付
持续集成
定义
- 持续:高频的执行任务,高度依赖工程自动化
- 集成:把多个模块组合在一起形成一个子系统
持续交付和持续部署
定义
- 持续交付的产出物,可以直接交付给客户部署的产出物,从0到1的
- 持续部署:直接把包部署到生产环境
使用
- 代码提交
- 流水线
** 代码扫描
** 单元测试
** 覆盖率统计
** 编译出包(jar/镜像) - 环境部署
- 自动化集成测试
- 示例
** master:生产环境,功能验证
** release:预发环境,测试回归,
** develop:研发主要的代码提交分支,主测试分支
** Feat(特性分支):研发各自的主要开发分支,完毕后提交合并到develop
** toB或私有化部署,针对不同定制需求会有不同的版本,测试时也需要针对不同版本进行设定测试
Jenkins
-
config system 配置插件
-
git maven pipeline docker allure
-
执行任务,指定label为想要执行的机器,负载均衡
-
不同的机器打上满足条件的标签,可以打多个标签,空格分隔
用法:
-
- 尽可能使用此节点标签
-
- 选择标签后使用
K8S 流程
-
- jenkins通过K8S api创建一个pod
-
- pod中启动一个jnlp容器
-
- jnlp容器负责与Jenkins通信并把自己注册成一个work系欸但那
-
- 任务结束后Jenkins调用K8S销毁容器