在AWS中滚动,滚动与其他批处理和不可变部署之间的区别?

sp4*_*497 9 amazon-web-services amazon-elastic-beanstalk

我正在使用弹性beanstalk来处理我的部署.我阅读了这些部署选项的解释,但不是很清楚.有人可以用更简单的词来解释吗?我正在尝试构建一个nodejs部署系统.

任何帮助,将不胜感激!

谢谢!

err*_*07s 12

我认为这会有所帮助.

不可变 - 首先将应用程序代码部署到单个新创建的EC2实例.在第一个实例上部署成功后,将创建创建并行机群所需的剩余实例数,并将应用程序代码部署到它们.在整个并行机群上部署成功后,运行旧应用程序版本的实例一次终止25%.此部署策略可确保部署失败的影响最小(即:单个EC2实例),并使您的应用程序在正在进行的部署期间以满容量提供流量.

使用其他批处理滚动 - 首先将应用程序代码部署到一批新创建的EC2实例.在第一批实例上部署成功后,应用程序代码将批量部署到其余实例,直到最后一批实例保留为止.此时,最后一批实例终止.此部署策略可确保部署失败的影响仅限于一批实例,并使您的应用程序能够在正在进行的部署期间以完整容量提供流量.

滚动 - 首先将应用程序代码部署到一批现有EC2实例.在第一批部署成功后,应用程序代码将批量部署到其余实例.此部署策略可确保将部署失败的影响限制为单个批处理.但是,由于在部署期间未创建新实例,因此应用程序可以以较低的容量提供流量(即:在部署期间的任何给定时间,单批实例都将停止服务).


Ben*_*Ben 11

我发现这篇文章比接受的答案更容易理解,所以这是我的看法。

按风险从高到低排序,并将已部署的版本调用v1v2

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