Deployment 蓝绿色部署与滚动部署?

Deployment 蓝绿色部署与滚动部署?,deployment,blue-green-deployment,Deployment,Blue Green Deployment,蓝色/绿色部署和滚动部署之间有什么区别?我一直认为蓝色/绿色部署是流量从旧版本突然切换到新版本 这个讨论展示了实现蓝/绿部署的各种不同策略,但它们似乎也与部署的定义相匹配 蓝色/绿色部署是滚动部署的子集吗 在蓝绿色部署中,您有两个完整的环境 一个是正在运行的蓝色环境,另一个是要升级到的绿色环境。 一旦您将环境从蓝色切换为绿色,交通将被引导到新的绿色环境。 您可以删除或保存旧的蓝色环境以进行备份,直到绿色环境稳定为止 在滚动部署中,您只有一个完整的环境 一旦您开始升级您的环境。代码部署在同一环境的

蓝色/绿色部署和滚动部署之间有什么区别?我一直认为蓝色/绿色部署是流量从旧版本突然切换到新版本

这个讨论展示了实现蓝/绿部署的各种不同策略,但它们似乎也与部署的定义相匹配


蓝色/绿色部署是滚动部署的子集吗

蓝绿色部署中,您有两个完整的环境

一个是正在运行的蓝色环境,另一个是要升级到的绿色环境。 一旦您将环境从蓝色切换为绿色,交通将被引导到新的绿色环境。 您可以删除或保存旧的蓝色环境以进行备份,直到绿色环境稳定为止

滚动部署中,您只有一个完整的环境

一旦您开始升级您的环境。代码部署在同一环境的实例子集中,并在完成后移动到另一个子集

所以两者在不同的因素上是不同的,你需要选择 基于场景的部署模型。 蓝色/绿色部署不是滚动部署的子集


我在这里写了一篇关于这个话题的文章:


在我看来,区别在于是通过替换现有设置中的实例来应用新版本(在滚动升级的情况下),还是为新版本创建完全隔离的设置(在蓝色/绿色的情况下)。在我看来,蓝色/绿色是最安全的策略,并且在大多数情况下对于生产部署来说更好。详细比较请阅读文章。

滚动部署是交错的。蓝色/绿色是金丝雀测试后的突然切换。这也是我的理解,但如果你观看解决方案架构师的AWS视频,他们的蓝色/绿色解决方案不是突然的,而是渐进的,因此我的问题。你必须意识到这其中有很多是观点和理论。这两种方法都是为了最大限度地减少应用程序的生产停机时间。你应该确保你总是能够在这里“见树不见林”。了解这两者的工作原理,然后调整它们以最适合您的环境。对于生产部署,蓝绿色更好?我认为基于docker的生产环境更适合滚动升级。这个答案很古老,但我仍然认为b/g更安全,如果它适合您的话。您可以使用docker执行蓝色/绿色:如果您有两个容器服务于流量,并且您创建了一对新的容器来服务新版本,然后交换流量,使新的容器不处于活动状态,这就是b/g。但是如果你有两个容器,并且一次升级一个,那么这就是滚动。不仅仅是容器的数量,我们在AWS vpc中运行容器。B/G将创建不必要的呼叫资源(子网/安全组等)。。。不是吗?如果你想说会有冗余-那么是的,这就是b/g的工作方式。在迁移期间,您需要运行(并支付)两个版本的应用程序。然而,什么是“应用程序”的粒度由您决定,这也在博客文章中讨论过。它不必是整个网络环境。如果您愿意,它可以在“服务”的范围内,这可能只是几个容器和一个虚拟负载平衡器。单独升级单个服务可能容易,也可能困难,这取决于系统设计的好坏。