蓝绿部署详解

100 阅读1分钟

通过同时运行两个版本的系统来实现无缝更新的部署策略。在这种策略中,“蓝”环境和“绿”环境是两个完全独立的生产环境,它们在硬件、软件配置、数据存储等方面都是相互独立的。在部署新版本时,开发团队会先将==新版本==部署到“==绿==”环境,而“==蓝==”环境仍然继续运行==旧版本==。当“绿”环境经过充分的测试,确认没有问题后,通过切换流量的方式,将用户请求从“蓝”环境切换到“绿”环境,从而实现新版本的上线。如果在切换后发现新版本存在问题,可以迅速将流量切换回“蓝”环境,恢复到旧版本,最大限度地减少对用户的影响。

优势:

  • 无缝更新
  • 风险隔离,新版本不会对旧版本产生影响
  • 快速回滚
  • 测试环境与生产环境一致

适用场景:

  • 对可用性要求极高的系统
  • 大型分布式系统
  • 需要频繁更新的系统
  • 对数据一致性要求不高的系统

对于上面的“对数据一致性要求不高的系统”,个人认为也是可以用于对数据一致性要求高的系统的,对于分布式系统,一般可以设置一个单独的系统管理数据,而无需与业务捆绑在一起。

问题:

  • 因为需要部署两套,成本较高
  • 数据同步问题
  • 流量切换的复杂性
  • 环境一致性问题