1. 蓝绿发布概述

1.1 蓝绿发布的概念

蓝绿发布(Blue-Green Deployment)是一种零停机的应用发布策略,通过维护两套完全独立的生产环境(蓝环境与绿环境)来实现无缝切换。在任何时刻,只有一套环境承载全部生产流量,另一套环境则处于待命或空闲状态。

核心思想: 两套环境交替升级,流量瞬间切换,用户无感知。

蓝绿发布的工作流程如下:

  1. 初始状态: 蓝环境(Blue)运行当前生产版本 v1.0,承载 100% 流量;绿环境(Green)空闲或运行旧版本。
  2. 部署新版本: 将新版本 v2.0 部署到绿环境,进行内部验证与健康检查。
  3. 流量切换: 验证通过后,通过负载均衡器或网关将流量从蓝环境瞬间切换至绿环境。
  4. 蓝环境待命: 蓝环境保留 v1.0 版本,作为快速回滚的备用环境。
蓝绿发布流量切换流程 用户流量 负载均衡器 / 网关 蓝环境 (Blue) v1.0 (当前生产) 流量: 100% → 0% 绿环境 (Green) v2.0 (新版本) 流量: 0% → 100% 流量瞬间切换

1.2 核心优势

优势 说明 业务价值
零停机 流量切换在秒级完成,用户无感知 保障 SLA,提升用户体验
快速回滚 只需将流量切回旧环境,无需重新部署 故障恢复时间从分钟级降至秒级
环境隔离 新旧版本完全独立,互不干扰 降低发布风险,便于问题定位
全量验证 新版本可在生产级环境中完整测试 提前发现配置与兼容性问题
关键指标: 蓝绿发布可将发布失败的平均恢复时间(MTTR)从传统方式的 10-30 分钟降低至 30 秒以内。

1.3 与传统滚动发布的对比

滚动发布(Rolling Deployment)是逐步替换旧实例的发布方式,而蓝绿发布采用全量切换策略。两者在多个维度存在显著差异:

对比维度 蓝绿发布 滚动发布
停机时间 零停机(切换瞬间完成) 接近零停机(需逐步替换)
回滚速度 秒级(流量切回) 分钟级(逐步回滚)
资源成本 高(需两套完整环境) 低(仅需额外 1-2 个实例)
验证能力 全量验证(完整生产环境) 部分验证(仅新实例)
适用场景 核心服务、高 SLA 要求 非关键服务、资源受限
数据库兼容 需向前/向后兼容 需向后兼容
蓝绿发布 vs 滚动发布:发布与回滚时间对比 蓝绿发布 发布: 部署 → 验证 → 切换 (秒级) 回滚: 流量切回旧环境 (秒级) 滚动发布 发布: 逐个替换实例 (分钟级) 回滚: 逐个回滚实例 (分钟级) 核心差异总结 蓝绿发布:资源成本高,但发布与回滚速度极快,适合核心业务 滚动发布:资源成本低,但操作时间长,适合非关键业务