温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

蓝绿部署怎样回滚版本

发布时间:2026-09-22 02:12:34 来源:亿速云 阅读:105 作者:小樊 栏目:系统运维

蓝绿部署(Blue-Green Deployment) 的回滚是最简单、最安全的回滚方式之一,核心思想是:不修代码,直接切流量。


一、蓝绿部署回滚的基本原理

  • Blue:当前线上运行的老版本
  • Green:刚部署的新版本

部署流程通常是:

  1. 老版本(Blue)在线
  2. 新版本(Green)部署完成并测试
  3. 流量从 Blue → Green
  4. 若 Green 出问题 → 流量切回 Blue

✅ 回滚 = 切换路由,而不是重新发布


二、标准回滚步骤

1️⃣ 发现问题

  • 监控报警(错误率、延迟、CPU)
  • 用户反馈
  • 自动化健康检查失败

2️⃣ 切换流量回 Blue

根据切换方式不同:

✅ 负载均衡 / 网关层切换

LB:
  Blue  → 100%
  Green → 0%

✅ Kubernetes(Service 切换)

selector:
  app: myapp
  version: blue

或:

kubectl patch service myapp -p '{"spec":{"selector":{"version":"blue"}}}'

✅ Ingress / Route 切换

upstream myapp {
  server blue:8080;
}

3️⃣ 停止或保留 Green

  • 保留 Green:用于排查问题
  • 销毁 Green:节省资源(推荐)

4️⃣ 问题修复(不在线上做)

  • 在 Green 环境修复
  • 重新测试
  • 再次切流

三、回滚的关键前提(非常重要)

✅ 1. 数据库必须兼容

蓝绿回滚最容易出问题的地方:

  • 新版本改了表结构
  • 回滚后老代码不认识新字段

✅ 解决方案:

  • 只加字段,不删不改
  • 使用兼容迁移(expand/contract)
  • 回滚前确认 DB 无破坏

✅ 2. 会话状态处理

  • 无状态服务:回滚无痛
  • 有状态服务:
    • 使用共享 Session(Redis)
    • 或允许短暂掉线

✅ 3. 自动化健康检查

回滚前应:

  • 健康检查通过
  • 冒烟测试通过
  • 自动报警触发

四、蓝绿回滚 vs 其他回滚

方式 回滚速度 风险 复杂度
蓝绿 秒级 低 中
滚动 慢 中 低
金丝雀 快 低 高

五、一句话总结

蓝绿部署的回滚不是“修 bug”,而是“切回去”。

如果你愿意,我也可以:

  • 给你画一个蓝绿切换示意图
  • 结合 K8s / Nginx / Spring Cloud 讲具体实现
  • 讲蓝绿 + 数据库迁移的最佳实践
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手