跳转到内容

灰度发布 (canary)

canary 是 GStack 的灰度发布技能。它先将变更部署到 canary 环境,用 QA 验证,监控指标,然后推广到生产环境。

  • 用户要求灰度发布
  • 用户要求渐进式发布
  • 用户要求 canary 部署
Terminal window
# 部署到 canary 分支/环境
git push origin HEAD:canary
# 或者部署到 canary 域名

运行 qa 技能在 canary 环境进行测试

  • 错误率
  • 延迟
  • 用户反馈
  • 业务指标

根据指标决定:

  • 推广到生产
  • 回滚
  • 继续观察
Terminal window
# 合并到 main
git checkout main
git merge canary
git push origin main
  • 小批量开始
  • 逐步扩大范围
  • 随时准备回滚
  • 基于指标决策
  • 不基于假设
  • 量化风险

何时使用

  • 用户要求灰度发布
  • 用户要求渐进式发布
  • 高风险变更

工作流

  • 部署 Canary
  • QA 验证
  • 监控指标
  • 决策
  • 推广生产

核心原则

  • 渐进式
  • 数据驱动
  • 快速回滚

关联技能

  • ship - 发布
  • land-and-deploy - 部署
  • qa - 测试

查看源文件: GitHub原始文件