通过就地部署是否可以实现零停机时间部署?我知道在部署组描述(就地部署)中,我们有以下内容:
使用最新的应用程序版本更新部署组中的实例。在部署期间,每个实例都会暂时脱机以进行更新。
我的问题是:假设我至少有两个实例连接到负载均衡器。是否可以使用以下顺序进行原位部署:
以上可能吗?如果是这样,我该如何设置?我曾经尝试一次部署一次,一次全部部署,但是发生的是,在所有情况下,部署总是总是同时发生在所有实例上,因此会有一些停机时间。
答案 0 :(得分:1)
我认为一种选择是为每个部署在单独的文件夹中创建一个修订,并在部署完成后最终使用afterInstall钩子通过symlink进行链接。
例如
releases
├── release1
└── release2
public_html -> (symlink) release2
答案 1 :(得分:0)
是的,您可以完全按照自己的描述进行操作。如果使用deployment option WITH_TRAFFIC_CONTROL
配置部署组并配置a load balancer,则CodeDeploy将在运行常规的Lifecycle挂钩脚本集之前从负载均衡器中删除实例。
您可以看到图表here,该图表演示了挂钩的执行顺序(请注意BlockTraffic
和AllowTraffic
正在执行绑定和取消绑定)。主机选择逻辑将相同-您的最低正常主机设置。如果您一次将部署设置为一个,则CodeDeploy将不会同时部署到多个实例。