cicd详解
cicd详解
1、cicd是什么

让代码写完后,自动编译、测试、打包、上线,不用人工一步步操作
1、ci(Continuous Integration) 持续集成
多人写代码,频繁合并到主干
自动:编译,单元测试,代码检查
目标:尽早发现bug,避免到部署的时候炸锅
在awx对接gitlab中就是
-
把代码打包,编译,检查
-
在gitlab中提交yml代码,awx把它拉取下来,确保这个代码跑的通,语法没有问题
2、cd(Continuous Deployment) 持续部署
持续交付: 在CI的基础上,将集成到主干的代码,产出的可部署软件版本,部署到类生产环境进行测试验证,没问题在手动部署到生产环境。
持续部署: 在持续交付基础上,部署到生产环境是自动操作的。
在awx对接gitlab中就是
-
把打包好的东西,自动的放到服务器上运行
-
awx拿到没有问题的代码,在k8s里面创建临时pod,去控制目标节点执行任务
3、完整的流程(awx+gitlab)
ci(输入与构建)
-
在本地写好yml文件
-
推送到gitlab仓库
-
ci阶段 AWX 从 GitLab 拉取代码,进行语法检查(Syntax Check),确保代码没问题。
cd(测试与部署)
-
代码检查通过
-
在k8s中自动创建临时pod(这个是执行环境)
-
Pod 里运行 Ansible,去连接你的被控节点,执行配置修改、软件安装等操作
-
执行完毕,Pod 销毁,任务完成
4、总结
持续交付的最终流程

容器实现CICD的优势:
- 标准化打包方式,解决应用部署依赖问题。
- 屏蔽不同语言、不同框架、不同系统之间的持续集成与持续交付流程的差异性
- 提升软件交付和迭代效率,还能避免交付内容不同导致的人为错误。

浙公网安备 33010602011771号