Code → Build → Test → Release → Deploy → Monitor
│ CI │ CD │
| 阶段 | 说明 |
|---|---|
| CI (持续集成) | 代码合并后自动构建和测试 |
| CD (持续交付) | 自动部署到预发布环境,人工审批上线 |
| CD (持续部署) | 全自动部署到生产环境 |
name: CI/CD Pipeline
on:
push:
branches: [main]
jobs:
build-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: docker build -t $/myapp:$ .
- name: Test
run: docker run --rm myapp:$ pytest
- name: Push
run: docker push $/myapp:$
deploy:
needs: build-test
runs-on: ubuntu-latest
environment: production
steps:
- name: Deploy to K8s
run: |
kubectl set image deploy/myapp app=$/myapp:$
kubectl rollout status deploy/myapp
| 策略 | 说明 | 风险 |
|---|---|---|
| 滚动更新 | 逐一替换实例 | 低 |
| 蓝绿部署 | 新旧两套环境,切流量 | 低,需要双倍资源 |
| 金丝雀发布 | 5%→20%→100% 渐进切流 | 低,需流量控制能力 |
| A/B 测试 | 按用户特征分流 | 需细分流量 |