CI/CD 流水线梳理
对工作中碰到的 CI/CD 流程做一点简单梳理。
CI/CD 流水线
本文参考以下文档:
什么是 CI/CD
抽象的 CI/CD 流程并不复杂。
- CI「持续集成」使得开发者可以频繁提交更改的代码,合并到应用当中,并自动构建应用镜像,运行不同级别的自动化测试(针对类、函数、功能模块等)来验证更改没有产生破坏性的错误,也没有与现存代码产生冲突。
- 代码库提交 -> 静态(代码)分析 ->
- CD(Continuous Delivery)「持续交付」将 CI 已经验证的代码合并到代码库,满足可以随时部署到生产环境的条件。
- CD(Continuous Deployment)「持续部署」将前一个 CD 构建就绪的应用镜像部署到生产环境。
对应 Console 的流水线流程
- 构建
- 推到 Repo 合并入 master,从此步骤开始构建一个可部署的镜像 Deploy Candidate,进入后面的步骤
- Linting 静态分析
- 单元测试
- 集成测试
- 部署
- 部署到开发环境
- 部署到 QA 环境
- 部署到 UAT 验收
- 部署到 Staging 环境预览
- 发布
- 部署到生产环境,k8s 管理的一个个服务容器
金丝雀发布
将新镜像的实例发布到一组金丝雀容器,将原有镜像发布到另一组基线容器上,对比两者的 metrics,分析是否存在问题。逐步用新镜像的实例替换将所有旧实例
- 部署到生产环境,k8s 管理的一个个服务容器
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
