蓝/绿部署和滚动部署有什么区别?我一直认为蓝/绿部署是流量突然从旧版本立即切换到新版本。
有关 AWS 上的蓝/绿部署的讨论展示了实现蓝/绿部署的各种不同策略,但它们似乎也符合 滚动部署的定义。 蓝/绿部署是滚动部署的子集吗?
中,您拥有两个完整的环境。 一个是正在运行的蓝色环境和要升级到的绿色环境。 将环境从蓝色切换为绿色后,流量将定向到新的绿色环境。 您可以删除或保存旧的蓝色环境进行备份,直到绿色环境稳定为止。
在
滚动部署中,您只有ONE完整的环境。 一旦开始升级您的环境。代码部署在同一环境的实例子集中,完成后移动到另一个子集。
所以两者在各种因素上都有所不同,您需要选择 基于场景的部署模型。 蓝/绿部署不是滚动部署的子集。
和 绿色环境是“新”环境,包含一个或多个应用程序(实例或容器)。 然后,
100%流量立刻从蓝色环境切换到绿色环境,如下图:
上面的图片来自 https://www.encora.com/insights/zero-downtime-deployment-techniques-blue-green-deployments 最初由公司 “Encora” 创建
上面的图片来自 https://avikdas.com/2020/06/30/scalability-concepts-zero-downtime-deployments.html 最初由 Avik Das 创建 此外,还有
金丝雀部署,这是蓝绿部署的渐进方式。在金丝雀部署的情况下,100%流量逐渐从蓝色环境切换到绿色环境,比蓝绿部署需要更长的时间(30分钟、小时或天),如下所示:
上面的图片来自 https://www.encora.com/insights/zero-downtime-deployment-techniques-canary-deployments 最初由公司 “Encora” 创建 滚动部署:
。 然后,
一个或多个“旧”应用程序(实例或容器)被一一替换为一个或多个“新”应用程序(实例或容器),如下所示:
上面的图片来自 https://avikdas.com/2020/06/30/scalability-concepts-zero-downtime-deployments.html 最初由 Avik Das 创建