用途
Canary Deployment(金丝雀发布)指南用于指导团队在发布新版本时,先只把新版本放开给一小部分用户,观察运行表现,再决定是继续扩大范围还是回滚。它强调以真实流量做验证,并通过指标驱动发布决策,目标是降低发布风险、减少对用户的影响。
主要能力
- 渐进式发布:将新版本逐步推送给小比例用户,而非一次性全量替换。
- 指标监控与阈值判断:发布过程中监控指标,依据预设阈值决定继续推进或回滚。
- 自动回滚:当出现问题时自动回滚,避免错误扩大。
- 自动推进:在指标健康时按规则自动推进发布。
- 与 A/B 测试结合:资料将 A/B testing integration 列为适用方向之一。
- 高流量服务场景:适合需要降低全量发布风险的高流量服务。
使用方式
资料提供 Quick Start 章节,给出一个最小可用示例,文件名示例为 canary-deployment-istio.yaml,内容涉及 Kubernetes Deployment 资源,包含 metadata、replicas、selector、template、containers、image 和 containerPort 等字段,示例中应用名为 myapp,版本标签为 v1,镜像为 myrepo/myapp:1.0.0。示例在注释中说明完整实现需参考参考指南。
文档还列出 references/ 目录下的详细实现指南,包括:Istio-based Canary Deployment(基于 Istio 的金丝雀部署)、Kubernetes Native Canary Script(Kubernetes 原生金丝雀脚本)、Metrics-Based Canary Analysis(基于指标的金丝雀分析)、Automated Canary Promotion(自动化金丝雀推进)。这些指南的具体步骤、配置和阈值未在提供内容中展开。
适用场景
资料明确列出的适用场景包括:低风险渐进式发布、使用真实在线流量进行验证、出现错误时自动回滚、尽量降低用户影响、与 A/B 测试集成、指标驱动发布,以及高流量服务。
限制与注意事项
资料中的最佳实践部分给出以下要求:
- 应当遵循既有模式和约定。
- 编写清晰、可维护的代码。
- 添加适当文档。
- 部署前充分测试。
同时明确不应:
- 跳过测试或验证。
- 忽略错误处理。
- 硬编码配置值。
关于具体阈值数值、指标类型、回滚触发条件、支持平台范围、收费方式、部署环境要求等信息,资料中暂未提供,需参考其 references/ 目录下的完整实现指南。