1. Devops①
  2. Devops②
  3. Devops③
  4. Devops④
  5. Devops⑤
  6. Devops⑥
  7. Devops⑦
  8. Devops⑧
  9. Devops⑨

第 3 节 · CI/CD 实践指南

🚀 什么是 CI/CD?

CI/CD 指的是:

  • CI(Continuous Integration)持续集成:每次代码变更后,自动化执行构建、测试等流程,确保新代码能和主干稳定集成。
  • CD(Continuous Delivery / Deployment)持续交付 / 持续部署:代码通过测试后,自动部署到测试或生产环境。

🧠 CI/CD 为什么重要?

传统流程里:

  • 上线靠手动部署,容易出错
  • 测试靠人工点击,流程慢又不稳定
  • 一个 bug 可能要几小时甚至几天才能回滚

CI/CD 带来的改变:

目标 CI/CD 带来的好处
快速上线 自动构建 + 自动测试 + 自动部署
降低风险 小步快跑 + 每次变更可回退
团队协作 每人提交后就能自动验证是否会出问题

⚙️ 持续集成(CI)流程

常见步骤如下:

  1. 开发者 push 代码到 Git 仓库

  2. CI 工具监听到变更(如 GitHub Actions)

  3. 自动执行:

    • 安装依赖
    • 静态检查(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

on:
push:
branches: [main]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: 拉取代码
uses: actions/checkout@v3

- name: 安装 Python
uses: actions/setup-python@v4
with:
python-version: "3.10"

- name: 安装依赖
run: |
pip install -r requirements.txt

- name: 运行测试
run: |
pytest

- name: 构建 Docker 镜像
run: |
docker build -t myapp:latest .

🔗 CI/CD 与 Docker、K8s、Vercel 的结合

技术 集成方式
Docker 在 CI 阶段构建镜像,推送到镜像仓库(如 Docker Hub)
Kubernetes CD 阶段更新 K8s 部署(kubectl apply / helm upgrade)
Vercel 直接通过 GitHub push 自动触发部署(支持前后端)

下一节预告 👉 第 4 节:基础设施即代码(IaC)与 Terraform 入门