← 返回 Day 83 正文

Day 83 · 图解

Day 083 — 部署策略架构图解

三大部署策略对比

滚动更新 (Rolling Update):
时间线 ──────────────────────────────────────────►

服务器:   S1    S2    S3    S4    S5
 旧版本:  v1    v1    v1    v1    v1
 步骤1:   v2 ─────────────────────────  ← 更新 S1
 步骤2:        v2 ────────────────────  ← 更新 S2
 步骤3:             v2 ───────────────  ← 更新 S3
 步骤4:                  v2 ──────────  ← 更新 S4
 步骤5:                       v2 ─────  ← 更新 S5

✅ 优点: 零停机、资源占用少
❌ 缺点: 部署期间版本不一致


蓝绿部署 (Blue-Green):
┌─────────────────────────────────────────────────┐
│                   负载均衡                        │
│                      │                           │
│         ┌────────────┴────────────┐             │
│         │                         │             │
│    ┌────▼────┐              ┌────▼────┐         │
│    │  Blue   │              │  Green  │         │
│    │  v1     │              │  v2     │         │
│    │ (活跃)   │              │ (部署中) │         │
│    └─────────┘              └─────────┘         │
└─────────────────────────────────────────────────┘

切换瞬间:
┌─────────────────────────────────────────────────┐
│                   负载均衡                        │
│                      │                           │
│         ┌────────────┴────────────┐             │
│         │                         │             │
│    ┌────▼────┐              ┌────▼────┐         │
│    │  Blue   │              │  Green  │         │
│    │  v1     │              │  v2     │         │
│    │ (备用)   │              │ (活跃)   │         │
│    └─────────┘              └─────────┘         │
└─────────────────────────────────────────────────┘

✅ 优点: 版本一致、快速切换、简单回滚
❌ 缺点: 资源翻倍


金丝雀部署 (Canary):
┌─────────────────────────────────────────────────┐
│                   负载均衡                        │
│                      │                           │
│         ┌────────────┴────────────┐             │
│         │           │             │             │
│    ┌────▼────┐ ┌────▼────┐ ┌────▼────┐         │
│    │  95%    │ │   5%    │ │  其他    │         │
│    │  v1     │ │  v2     │ │  v1     │         │
│    └─────────┘ └─────────┘ └─────────┘         │
└─────────────────────────────────────────────────┘

流量渐进:
  5% ──► 10% ──► 30% ──► 50% ──► 100%
  新版本逐步接管所有流量

✅ 优点: 风险可控、可观察、渐进式
❌ 缺点: 复杂度高、需要完善的监控

部署流水线

┌─────────┐   ┌─────────┐   ┌─────────┐   ┌─────────┐
│  打包    │──►│  上传    │──►│  备份    │──►│  部署    │
│ tar.gz  │   │ SCP/SFTP│   │ 旧版本   │   │ 解压    │
└─────────┘   └─────────┘   └─────────┘   └────┬────┘
                                                │
┌─────────┐   ┌─────────┐   ┌─────────┐        │
│  完成    │◄──│  验证    │◄──│  重启    │◄───────┘
│  通知    │   │ 健康检查 │   │  服务    │
└─────────┘   └─────────┘   └─────────┘
      │
      ▼ 失败
┌─────────┐
│  回滚    │
│ 恢复旧版 │
└─────────┘

监控告警流程

┌──────────────────────────────────────────────────────┐
│                    监控系统                           │
│                                                      │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐          │
│  │ CPU 监控  │  │ 内存监控  │  │ 磁盘监控  │          │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘          │
│       │              │              │                │
│       └──────────────┼──────────────┘                │
│                      ▼                               │
│              ┌──────────────┐                        │
│              │   阈值判断    │                        │
│              └──────┬───────┘                        │
│                     │                               │
│         ┌───────────┼───────────┐                   │
│         ▼           ▼           ▼                   │
│    ┌─────────┐ ┌─────────┐ ┌─────────┐            │
│    │ ✅ 正常  │ │ ⚠️ 警告  │ │ 🔴 严重  │            │
│    └─────────┘ └────┬────┘ └────┬────┘            │
│                     │           │                   │
│                     ▼           ▼                   │
│              ┌────────────┐ ┌────────────┐          │
│              │  记录日志   │ │ 发送告警    │          │
│              └────────────┘ └────────────┘          │
└──────────────────────────────────────────────────────┘