knowledge-base

我的知识库 / DevOps / 蓝绿部署、滚动部署和灰度部署

蓝绿部署、滚动部署和灰度部署

直接举例说明:

现环境中运行着3个V1版本的实例,计划更新到V2版本。

蓝绿部署

image-20201127093631647

直接使用新的服务资源部署3个V2版本实例(仍然保留3个V1版本),然后将请求流量全部转到V2版本。

优点

无需中断服务;

有回旋的余地,如果V2版本有bug的话,可以很快速的重新回到V1版本。

缺点

资源占用较大,在发布过程中需要用到6个实例的服务资源。

滚动部署

image-20201127093649768

现停掉一个V1版本的实例,待其停止后,部署一个V2版本的实例,V2实例部署成功之后,再停掉一个V1实例,往复,直至全部替换为V2版本实例。

优点

无需中断服务;

部署新版本时无需增加服务资源,节省成本。

缺点

V2版本有bug的话,不能及时回滚。

灰度部署

也叫金丝雀部署,停掉一个V1版本的实例,部署一个V2版本的实例,将部分用户请求流量的转到V2版本,如果没有问题,再逐步替换V1版本。A/B测试就是一种灰度发布。

image-20201127093703768

优点

无需中断服务;

同样无需增加服务器,能较为平稳的过渡到新版本,并且当有bug时也能做到快速回滚。


« Ansible

» 混沌工程原则 (PRINCIPLES OF CHAOS ENGINEERING)