在微服务、DevOps、Cloud-native、系统部署等的讨论中,蓝绿发布、A/B 测试、灰度发布、滚动发布、红黑部署等概念经常被提到,它们究竟是什么呢?
一、蓝绿发布
1.1 什么是蓝绿发布
蓝绿发布,英文名Blue Green Deployment,是一种最常见的0 downtime部署的方式,可以保证系统在不间断提供服务的情况下上线的部署方式。
蓝绿部署原理上很简单,就是通过冗余来解决问题。通常生产环境需要两组配置(蓝绿配置),一组是active的生产环境的配置(绿配置),一组是inactive的配置(蓝绿配置)。用户访问的时候,只会让用户访问active的服务器集群。当蓝色环境(inactive)部署新版本应用,并进行测试。如果测试没问题,就可以把负载均衡器/反向代理/路由指向蓝色环境了。随后需要监测新版本应用,也就是version2 是否有故障和异常。如果运行良好,就可以删除version1 使用的资源。如果运行出现了问题,可以通过负载均衡器指向快速回滚到绿色环境。
1.2 蓝绿发布的弱点
使用蓝绿部署需要注意的一些细节包括:
1、当切换到蓝色环境时,需要妥当处理未完成的业务和新的业务。如果数据库后端无法处理,会是一个比较麻烦的问题。