蓝绿部署与滚动部署?

Blue Green Deployments vs Rolling Deployments?

blue/green 部署和滚动部署有什么区别?我一直认为 blue/green 部署是流量从旧版本立即突然切换到新版本。

这个讲讲Blue/Green deployment on AWS shows various different strategies to implement a blue/green deployment, but they also seem to match the definition of a rolling deployment.

blue/green 部署是滚动部署的子集吗?

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

一个是蓝色环境运行,另一个是您要升级到的绿色环境。 将环境从蓝色切换为绿色后,流量将定向到新的绿色环境。 您可以删除或保存旧的蓝色环境进行备份,直到绿色环境稳定。

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

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

So both are different in various factors and you need to choose the deployment model based on the scenario. Blue/green deployment is not a subset of rolling deployments.

我在这里写了一篇关于这个主题的文章:http://blog.itaysk.com/2017/11/20/deployment-strategies-defined

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

Blue-Green部署:

两种环境,蓝色环境是“旧的”并且包含一个或多个应用程序(实例或容器)绿色环境是“新的” " 并包含一个或多个应用程序(实例或容器)

然后,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

创建

此外,还有Canary Deployment,这是Blue-Green Deployment的渐进方式。本次Canary Deployment100%流量逐渐从蓝环境切换到绿色环境Blue-Green部署花费更长的时间(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

创建