![65d4d2fc5abc779a378bf1ffeb760a63.gif](https://i-blog.csdnimg.cn/blog_migrate/08c9e3f16b48d06a7ff57661de65cbcd.gif)
![e2dd60cc8d7b9b1bc4def56800036670.png](https://i-blog.csdnimg.cn/blog_migrate/ad7e92edcbfe93bd8276500b5b969067.jpeg)
没有 CI/CD 的团队
- 项目创建
- 功能编写
- 代码提交
- 功能自测
- 代码 Review
- 合并发布分支
- 人工构建
- 人工部署
- 产品发布
- 人工观察线上质量
- 质量修复、持续改进(循环第3步开始的内容)
有部分自动化脚本的团队
- 项目创建
- 功能编写
- 代码提交
- 功能自测
- 代码 Review [这里可能使用了一些lint、coverage、risk scanner功能分摊了一些Review压力]
- 合并发布分支 [这里可能使用了一些脚本进行对非敏感内容进行自动合并]
- 人工构建 [有抽象构建过程为脚本,然后通过手工调用]
- 人工部署 [有抽象部署过程为脚本,然后通过手工调用]
- 产品发布 [有抽象发布过程为脚本,然后通过手工调用]
- 人工观察线上质量 [有编写一些监控程序,然后通过手工调用]
- 质量修复、持续改进(循环第3步开始的内容)
maven build
npm build
docker build
使用 CI/CD 基础设施的团队
- 项目创建
- 功能编写
- 代码提交 [CI工具介入]
- 功能自测
- 代码 Review [CI工具介入]
- 合并发布分支 [CI工具介入]
- 人工构建 [CI工具介入]
- 人工部署 [CD工具介入]
- 产品发布 [CI/CD工具介入]
- 人工观察线上质量 [CI工具介入]
- 质量修复、持续改进(循环第3步开始的内容)
如果你的研发流程是正常的,CI/CD并不改造你的研发流程,只是给你进行标准化的工程流水线改造。以 GitLab + GitLab CI Runner 环境下的CI/CD为例:
- 在代码提交之后,将会根据提交分支进行不同的自动化处理:
- 代码常规检查
- 自动化单元测试
- 依赖漏洞检查
在代码 Review 阶段,因为上一阶段已经进行了 Code Style、代码底层实现 Code Lint等检查,相关reviewer只需要对逻辑和实现方案进行Review。
在合并发布分支阶段,可以自动检查是否冲突,如果没有冲突自动进行合并,有则进行通知,等待人工介入,人工只做必须介入的事情。
在构建过程,CI可基于标准的容器镜像进行构建,依赖被约束在稳定的镜像二进制包内,唯一的变量就是你有变动的代码,保障构建环境是可准确、可靠、可迁移的。因为使用 dockerfile 进行描述,容器环境的分析和升级也变的透明、可追溯。在构建结束将成功与否的结果告知工程师,但仅仅是告知即可,因为软件已经可以到下一个阶段进行自动化部署了。
在部署阶段,CI可基于上一步构建结果是否正确进行下一步的分发操作,包括交付测试使用的测试环境、给开发自行联调使用的开发环境、给团队成员验收使用的预发或者叫仿真环境、乃至线上正式的生产环境。
最后,当部署完成之后,等待人工介入完成产品上线切换,会触发CI的线上复查、监控验收。
CI/CD 价值小结
- 流水线标准化生产和交付
- 最大化减少人为介入和决策,提高交付效率、节约人力成本在机器可以做的很好的情况下的浪费。
- 环境标准化,避免硬编码的脚本带来后续升级改造成本或者绑架技术栈。
- 流程标准化有助于扩展性提升,连接研发流程的设施可以相对轻松的进行升级维护。
- “简化”研发流程
- 开发人员可以更加专注于产品打磨,而非周边“乱七八糟”的一堆事情上。
- 研发质量辅助提升
- 原本需要人工执行的代码质量检查的操作,统一由机器去完成。
- 结合数据工具,可以针对性的自动化产出某个项目上线前后的数据变化,回馈产品、运营团队,辅助后续的产品决策。
来源:https://soulteary.com,本文转自公众号 DevOps 技术栈。
2020 DevOps 线上峰会,台湾著名精益布道师、91APP总经理室敏捷教练、GOPS/DOIS金牌讲师,李智桦老师将首次用直播的方式与你面对面交流哦~
![ad356578293bd7d0a20d72c777082e39.png](https://i-blog.csdnimg.cn/blog_migrate/2993347e68f527ee1f0898ee4b03f8b4.png)
阿里工程师:Code Review 是一场苦涩但有意思的修行
2020 年 10 种最佳持续集成工具,总有一款适合你
CI/CD 管道:揭开复杂性的神秘面纱
“DevOps时代”公众号诚邀广大技术人员投稿。 投稿邮箱:jiachen@greatops.net 或 添加联系人微信:135 2116 9787(同微信)。 点击 ,立即报名 2020 DevOps 线上峰会,联系上方图片中小伙伴,可以领取5折优惠券,名额有限先到先得~![5e32d312e954203acbe2b634bf1a3694.png](https://i-blog.csdnimg.cn/blog_migrate/93933d1c13e37e330513ab7f39b584b0.png)