Devops③
第 3 节 · CI/CD 实践指南
🚀 什么是 CI/CD?
CI/CD 指的是:
- CI(Continuous Integration)持续集成:每次代码变更后,自动化执行构建、测试等流程,确保新代码能和主干稳定集成。
- CD(Continuous Delivery / Deployment)持续交付 / 持续部署:代码通过测试后,自动部署到测试或生产环境。
🧠 CI/CD 为什么重要?
传统流程里:
- 上线靠手动部署,容易出错
- 测试靠人工点击,流程慢又不稳定
- 一个 bug 可能要几小时甚至几天才能回滚
CI/CD 带来的改变:
目标 | CI/CD 带来的好处 |
---|---|
快速上线 | 自动构建 + 自动测试 + 自动部署 |
降低风险 | 小步快跑 + 每次变更可回退 |
团队协作 | 每人提交后就能自动验证是否会出问题 |
⚙️ 持续集成(CI)流程
常见步骤如下:
-
开发者 push 代码到 Git 仓库
-
CI 工具监听到变更(如 GitHub Actions)
-
自动执行:
- 安装依赖
- 静态检查(lint / type check)
- 单元测试 / 集成测试
- 构建产物(Docker 镜像 / 静态文件)
🚚 持续交付 / 部署(CD)流程
CD 的目标是“代码提交后可以快速、安全地上线”
两种含义:
名称 | 说明 |
---|---|
持续交付(Delivery) | 自动部署到测试 / staging 环境,上线还需人工批准 |
持续部署(Deployment) | 自动部署到生产环境,无需人工干预 |
🔧 常用 CI/CD 工具链
工具 | 特点 |
---|---|
GitHub Actions | GitHub 原生集成,免费额度高,YAML 配置简洁 |
GitLab CI | 与 GitLab 紧密集成,自带 runner 支持 Docker |
Jenkins | 老牌工具,自由度高但维护复杂,需要搭建服务器 |
CircleCI / TravisCI | 云服务型,配置简单,适合开源项目 |
📝 GitHub Actions 示例:FastAPI 项目 CI/CD
name: CI Pipeline |
🔗 CI/CD 与 Docker、K8s、Vercel 的结合
技术 | 集成方式 |
---|---|
Docker | 在 CI 阶段构建镜像,推送到镜像仓库(如 Docker Hub) |
Kubernetes | CD 阶段更新 K8s 部署(kubectl apply / helm upgrade) |
Vercel | 直接通过 GitHub push 自动触发部署(支持前后端) |
下一节预告 👉 第 4 节:基础设施即代码(IaC)与 Terraform 入门
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xiaotan's Blog!
评论