用途
蓝绿部署(Blue-Green Deployment)用于以蓝绿部署模式发布应用,维护两套完全相同的生产环境,从而支持流量瞬时切换和快速回滚能力。
适用场景
- 零停机发布
- 高风险部署
- 复杂的应用迁移
- 数据库架构变更
- 快速回滚需求
- 环境隔离下的 A/B 测试
- 分阶段发布策略
使用方式
文档提供了一个最小可用的快速开始示例,使用名为 blue-green-setup.yaml 的 Kubernetes ConfigMap 定义配置,其中包含一个 switch-traffic.sh 脚本,用于在蓝色与绿色环境之间切换流量。脚本逻辑包括:读取当前活动环境(默认 blue)与目标环境(默认 green)、指定 ALB ARN,并通过 aws elbv2 describe-target-groups 查询蓝色与绿色目标组 ARN 等步骤。
示例配置如下:
# blue-green-setup.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: blue-green-config
namespace: production
data:
switch-traffic.sh: |
#!/bin/bash
set -euo pipefail
CURRENT_ACTIVE="${1:-blue}"
TARGET="${2:-green}"
ALB_ARN="arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/myapp-alb/1234567890abcdef"
echo "Switching traffic from $CURRENT_ACTIVE to $TARGET..."
# Get target group ARNs
BLUE_TG=$(aws elbv2 describe-target-groups \
--load-balancer-arn "$ALB_ARN" \
--query "TargetGroups[?Tags[?Key=='Name' && Value=='blue']].TargetGroupArn" \
--output text)
GREEN_TG=$(aws elbv2 describe-target-groups \
--load-balancer-arn "$ALB_ARN" \
示例中注释说明,完整实现可参见参考指南。
参考指南
详细信息位于 references/ 目录下,包含以下指南:
| 指南 | 内容 |
|---|---|
| Blue-Green with Load Balancer | 使用负载均衡器的蓝绿部署 |
| Blue-Green Rollback Script | 蓝绿回滚脚本 |
| Monitoring and Validation | 监控与验证 |
最佳实践
✅ 建议:
- 遵循既有模式与约定
- 编写整洁、可维护的代码
- 添加适当的文档
- 在部署前充分测试
❌ 避免:
- 跳过测试或验证
- 忽略错误处理
- 硬编码配置值
限制
当前资料未提供完整的脚本实现、收费与价格信息、具体平台支持范围及实际使用效果的量化数据。