Auto-sync: 2026-04-22 04:02

This commit is contained in:
2026-04-22 04:03:04 +08:00
parent 24218550d2
commit de096f2f88
232 changed files with 16604 additions and 514 deletions

View File

@@ -0,0 +1,106 @@
---
title: "Progressive Rollout (渐进式放量)"
tags: [devops, continuous-delivery, feature-management, risk-mitigation]
aliases: [Canary Deployment, 灰度发布, Canary Release]
created: 2026-04-25
---
# Progressive Rollout (渐进式放量)
**Progressive Rollout**(渐进式放量/灰度发布)是一种通过 [[Feature Flag]] 控制新功能逐步向用户群发布的风险管理策略。与"全有或全无"的传统部署不同Progressive Rollout 将影响范围控制在最小范围内,从而实现**可量化的 RTO**。
## Aliases
- Canary Deployment
- Canary Release
- 灰度发布
- Staged Rollout
## Core Mechanism
> "Instead of flipping the switch for everyone simultaneously, roll out gradually."
```
1% 用户 → 观察错误率、性能指标
5% 用户 → 监控转化率、用户反馈
25% 用户 → 检查下游系统负载
100% 用户 → 完成全量发布
```
## Progressive Rollout vs. Big Bang Release
| 维度 | Big Bang全量发布 | Progressive Rollout渐进式放量 |
|------|---------------------|----------------------------------|
| 影响范围 | 全部用户 | 受控小群体 |
| 问题发现 | 事后 | 事中1% 阶段即可发现) |
| RTO如果出问题 | 小时级(紧急回滚) | 秒级(关闭开关) |
| 回滚风险 | 可能丢失新事务 | 无数据损失 |
| 团队压力 | 高2AM 部署) | 低(白天放量) |
| 反馈收集 | 事后分析 | 实时监控 |
## RTO 重新定义
> "If something breaks at the 5% mark, you've contained the damage. Your RTO is measured in seconds (flip the flag off) instead of hours (emergency rollback deployment)."
| 场景 | RTOBig Bang | RTOProgressive Rollout |
|------|-----------------|---------------------------|
| 发现问题 | 全量发布后 | 1% 阶段即可监控到 |
| 止血时间 | 小时级(回滚部署) | 秒级(关闭开关) |
| 受影响用户 | 100% | 最多 5%(当前阶段) |
## 放量策略
### 基于用户群体的定向放量
| 策略 | 说明 | 适用场景 |
|------|------|----------|
| 随机抽样 | 随机选取 X% 用户 | 通用场景 |
| 地区定向 | 先在特定地区放量 | 法规合规、时区测试 |
| 用户分层 | 优先向付费用户放量 | 降低高价值用户风险 |
| 设备类型 | 先桌面后移动 | 移动端兼容性风险 |
| Beta 用户 | 先向内部/Beta 用户开放 | 需要早期反馈 |
### 基于指标的自动 gates
```yaml
rollout_stages:
- percentage: 1
gates:
- error_rate < 0.1%
- p95_latency < 500ms
- percentage: 5
gates:
- conversion_rate > baseline - 5%
- support_tickets < 10
- percentage: 25
gates:
- downstream_api_latency < 200ms
- no_critical_errors
```
## 与 [[Kill Switch]] 的关系
Progressive Rollout 和 Kill Switch 是同一机制的两面:
- **Progressive Rollout**:控制功能如何到达用户(渐进式)
- **Kill Switch**:在发现问题时紧急切断(防御性)
两者结合 → 既有渐进放量的可控性,又有 Kill Switch 的应急保障。
## 实践要点
1. **监控先行**:每次放量前确保监控仪表盘就绪
2. **定义回退标准**:什么指标触发停止放量或回退?
3. **自动化放量**:避免手动操作带来的错误
4. **跨团队对齐**:产品、工程、运营需要共同定义放量节奏
## Related Concepts
- [[Feature Flag]] — Progressive Rollout 的技术基础
- [[Kill Switch]] — Progressive Rollout 的应急保障
- [[RTO]] — Progressive Rollout 将 RTO 从小时降至秒级
- [[Deployment-vs-Release]] — Progressive Rollout 实现部署与发布的解耦
- [[Micro-Recovery]] — Progressive Rollout 支持 feature 级别的精准恢复
## Sources
- [[sources/rto-vs-rpo-key-differences-for-modern-disaster-recovery.md]]