![BlockTraffic 和 AllowTraffic](https://linux22.com/image/676893/BlockTraffic%20%E5%92%8C%20AllowTraffic.png)
我正在使用 AWS CodeDeploy 部署我的网站,我发现它的速度并不稳定;有时它非常快,但有时部署的每个步骤都需要几分钟。当部署应该快速完成时,如果出现错误或中断,这非常烦人。
不过,我找不到任何有关 CodeDeploy 速度的文档,而且我似乎找不到它何时慢或何时快的任何逻辑。有没有办法加快速度,有没有办法知道为什么花了这么长时间?
答案1
CodeDeploy 默认只执行很少的操作 - 它从 S3 或 Github 获取代码,然后运行你的根据appspec.yml
文件的说明编写脚本。
如果您的部署从 S3 获取千兆字节的数据,您会发现数据传输需要一些时间(特别是在带宽有限的小型 EC2 实例上),但除此之外,部署延迟更可能是由于您在部署脚本中所做的任何操作造成的。
CodeDeploy 部署中的步骤如下:
- ApplicationStop - 你控制这个钩子
- DownloadBundle - CodeDeploy 从 S3/Github 获取代码
- BeforeInstall - 你控制这个钩子
- 安装 - CodeDeploy 将代码从临时位置复制到最终目标
- AfterInstall - 你控制这个钩子
- ApplicationStart-你控制这个钩子
- ValidateService - 你控制这个钩子
粗体部分由 CodeDeploy 决定,其他部分由您决定。如果您在粗体部分中看到不同的延迟,请联系 AWS 支持,否则您可能需要调查您的挂钩。
答案2
答案3
另一个需要检查的设置是目标组的“取消注册延迟”。我的健康检查设置已经很低了,而这在我的案例中就是瓶颈。
答案4
不要在管道的 Code Deploy 部署组上启用负载均衡器,这样您将摆脱 BlockTraffic 和 AllowTraffic 步骤。