🏠 首页 / DevOps / 蓝绿部署、滚动部署和灰度部署
蓝绿部署、滚动部署和灰度部署 #
直接举例说明:
现环境中运行着3个V1版本的实例,计划更新到V2版本。
蓝绿部署 #
直接使用新的服务资源部署3个V2版本实例(仍然保留3个V1版本),然后将请求流量全部转到V2版本。
优点:
无需中断服务;
有回旋的余地,如果V2版本有bug的话,可以很快速的重新回到V1版本。
缺点:
资源占用较大,在发布过程中需要用到6个实例的服务资源。
滚动部署 #
现停掉一个V1版本的实例,待其停止后,部署一个V2版本的实例,V2实例部署成功之后,再停掉一个V1实例,往复,直至全部替换为V2版本实例。
优点:
无需中断服务;
部署新版本时无需增加服务资源,节省成本。
缺点:
V2版本有bug的话,不能及时回滚。
灰度部署 #
也叫金丝雀部署,停掉一个V1版本的实例,部署一个V2版本的实例,将部分用户请求流量的转到V2版本,如果没有问题,再逐步替换V1版本。A/B测试就是一种灰度发布。
优点:
无需中断服务;
同样无需增加服务器,能较为平稳的过渡到新版本,并且当有bug时也能做到快速回滚。