企业级持续集成系列(01):DevTestOps自动化平台设计

发布时间 2023-12-02 13:05:53作者: 全栈测试笔记

 

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/16721826.html 

为什么要写企业级持续集成(jenkins + pipeline + k8s)?

目前网上自动化持续集成的资料很多,但基本上都是局限于jenkins自由风格的job,结合shell脚本来实现持续集成,这种方式的缺点也很明显:

  1、构建出问题,排查困难

  2、构建节点挂了,就不能完成构建任务

而当前主流技术是 “ k8s + 微服务 ” 等,我们完全可以利用k8s的优势来完成持续构建任务,每次构建时可以调度到任意节点,或者是具有指定标签的节点,这就实现了高可用,k8s是动态slave,docker是静态slave;

另外,结合pipeline,可以轻松简单实现持续集成,并且哪个阶段出问题了一目了然,排查起来也容易。

 

技术栈及流程设计

用到的技术栈:git + gitlab + jenkins + pipeline + maven + harbor + docker + k8s

可以整合python、java等各种自动化测试框架

流程:开发提交代码--》拉取代码(手动、触发)--》mvn打包--》构建镜像--》新镜像发布到k8s--》拉取自动化测试代码--》自动化测试执行--》allure报告,同时,过程中会有钉钉消息推送。

环境:jenkins使用k8s作为构建环境,在某个节点执行测试

说明:由于环境资源不足,省去了拉取代码后的静态代码扫描(SonarQube)、mvn打包后的上传至Nexus制品库(构建结果的仓库)

 

环境规划

5台虚拟机:

  192.168.117.160:harbor、jenkins、maven

  192.168.117.161:k8s-master

  192.168.117.162:k8s-node01

  192.168.117.163:k8s-node02

  192.168.117.180:gitlab

每台虚拟机都安装了git