0

我正在尝试在 AWS 弹性 beantalk 上实现零停机时间重新部署。

我的环境中基本上有两个实例,再加上 Jenkins for CI(使用 Tomcat)。我想要实现的是每次我从 Jenkins 触发重新部署时,只重新部署一个环境实例,然后有一个超时以允许新实例加载应用程序,然后重新部署第二个实例。

为了实现该超时,我设置了“暂停时间”和“命令超时”,但不幸的是,如果不遵守此限制。第一个实例被重新部署,但大约 1 分钟后,第二个实例被重新部署,无论我设置的超时值如何。有人存档这个吗?关于如何实现它的任何见解?

4

1 回答 1

1

“暂停时间”涉及对实例进行的环境配置。“命令超时”与为构建环境而执行的命令有关(例如,如果您自定义了容器)。两者都与滚动应用程序更新或零​​停机部署无关。围绕这些东西的文档令人困惑且支离破碎。

对于零停机应用程序部署,AWS EB 为您提供两种选择:

  1. 批量应用程序更新
  2. 运行两个环境并切换

选项 1 感觉工作量少了很多,但在我的测试中并不是真正的零停机时间。有一个HARDCODED 超时值,无论负载均衡器运行状况检查是否通过,流量都将在 1 分钟后路由到实例

但是,如果您仍然想继续,那么运行两个实例并将批量大小设置为 50% 或 1 应该可以满足您的需求。

于 2015-01-02T14:54:10.703 回答