我正在使用 Elastic Beanstalk 来处理我的部署。
我阅读了这些部署选项的解释,但我不太清楚。
有人可以用更简单的语言解释一下吗?
我认为这会有所帮助。
Immutable
– 首先将应用程序代码部署到单个新创建的 EC2 实例。在第一个实例上成功部署后,将创建创建并行队列所需的剩余实例数,并将应用程序代码部署到它们。在整个并行队列上部署成功后,运行旧应用程序版本的实例一次终止 25%。此部署策略可确保部署失败的影响最小(即:单个 EC2 实例),并使您的应用程序能够在持续部署期间以满负荷提供流量。
Rolling with an additional batch
– 首先将应用程序代码部署到一批新创建的 EC2 实例。一旦第一批实例部署成功,应用代码将分批部署到剩余实例,直到剩下最后一批实例。至此,最后一批实例终止。此部署策略可确保部署失败的影响仅限于单批实例,并使您的应用程序能够在持续部署期间以满负荷提供流量。
Rolling
– 首先将应用程序代码部署到一批现有 EC2 实例。一旦第一批部署成功,应用程序代码将分批部署到其余实例。此部署策略可确保部署失败的影响仅限于单个批次。但是,由于在部署期间不会创建新实例,因此您的应用程序可以以降低的容量提供流量(即:在部署期间的任何给定时间,一批实例都停止服务)。
我发现这篇文章比接受的答案更容易理解,所以这是我的看法。
按风险从高到低排序,并将已部署的版本称为
v1
至v2
:
v1
替换为 v2
。失败未处理。v2
。 如果成功,所有剩余的 v2
实例将立即部署。v1
实例替换为 v2
实例,一次一个。注意失败。v2
实例。如果成功,请在 v1
实例上推出。当全部都是 v2
实例时,缩放回原始大小。v1
实例。创建相同数量的 v2
实例。等待成功,然后停止 v1
个实例。v2
的新环境(网络等),并在准备好时进行切换。这篇文章也是一个很好的参考,带有有用的图表:https://webmobilez.com/awsmaterial/elastic-beanstalk-deployment/