Amazon web services AWS中滚动、使用附加批处理和不可变部署的滚动之间的区别?

Amazon web services AWS中滚动、使用附加批处理和不可变部署的滚动之间的区别?,amazon-web-services,amazon-elastic-beanstalk,Amazon Web Services,Amazon Elastic Beanstalk,我正在使用elastic beanstalk来处理部署。 我阅读了关于这些部署选项的解释,但不太清楚。 有人能用更简单的话解释一下吗?我正在尝试构建一个nodejs部署系统 任何帮助都将不胜感激 谢谢 我想这会有点帮助 不可变–首先将应用程序代码部署到一个新创建的EC2实例。在第一个实例上成功部署后,将创建创建并行震源组所需的剩余实例数,并向其部署应用程序代码。在整个并行机队上部署成功后,运行旧应用程序版本的实例一次终止25%。此部署策略可确保部署失败的影响最小(即:单个EC2实例),并使您的应

我正在使用elastic beanstalk来处理部署。 我阅读了关于这些部署选项的解释,但不太清楚。 有人能用更简单的话解释一下吗?我正在尝试构建一个nodejs部署系统

任何帮助都将不胜感激


谢谢

我想这会有点帮助

不可变–首先将应用程序代码部署到一个新创建的EC2实例。在第一个实例上成功部署后,将创建创建并行震源组所需的剩余实例数,并向其部署应用程序代码。在整个并行机队上部署成功后,运行旧应用程序版本的实例一次终止25%。此部署策略可确保部署失败的影响最小(即:单个EC2实例),并使您的应用程序能够在正在进行的部署过程中满负荷服务流量

使用附加批处理—首先将应用程序代码部署到新创建的EC2实例的单个批处理中。在第一批实例上成功部署后,应用程序代码将分批部署到其余实例,直到最后一批实例保留。此时,最后一批实例被终止。此部署策略可确保部署失败的影响仅限于一批实例,并使您的应用程序能够在正在进行的部署过程中满负荷服务流量

滚动–首先将应用程序代码部署到一批现有EC2实例中。一旦第一批部署成功,应用程序代码将分批部署到其余实例。此部署策略可确保部署失败的影响仅限于单个批次。但是,由于在部署过程中没有创建新实例,您的应用程序可以以较低的容量提供流量服务(即:在部署过程中的任何给定时间,都有一批实例停止服务)。

我发现比公认的答案更容易理解,因此下面是我的看法

按高风险到低风险排序,并将部署的版本
v1
调用到
v2

  • 一次全部:同时将所有
    v1
    替换为
    v2
    。未处理故障
  • 金丝雀:部署并观察到
    v2
    。如果成功,将立即部署所有剩余的
    v2
    实例
  • 滚动:用
    v2
    实例一次替换一个
    v1
    实例。注意失败
  • 批量滚动:创建一些新的
    v2
    实例。如果成功,则在
    v1
    实例上展开。当所有实例都是
    v2
    实例时,请缩回到原始大小
  • 不可变:不更改
    v1
    实例。创建相同数量的
    v2
    实例。等待成功,然后停止
    v1
    实例
  • 蓝色/绿色:不要在现有的环境中操作,而是创建一个完全配置了
    v2
    的新环境(网络等),并在准备就绪时切换

谢谢!通过直接从旧机队切换到新的“新并行机队”,而不是一次切换25%,是否有可能以不变的方式切换到新的“新并行机队”?我不希望我的应用程序同时提供旧代码和新代码。不,使用Immutable无法做到这一点,您必须使用“一次完成”部署。蓝色/绿色更适合您