【发布时间】:2015-12-14 14:58:11
【问题描述】:
使用 AWS 时,通过 AWS CodeDeploy 将应用程序部署到新创建的实例似乎是一种不错的方法。其工作原理如下:
- 为应用设置自动伸缩组
- 为自动缩放组编写用户数据 bash 脚本,该脚本从 S3 中提取 CodeDeploy 代理,安装并启动它
- 设置部署到自动扩展组的 CodeDeploy 部署组
现在,当应用程序包(例如 jar 或 debian 包)部署到部署组时,它会自动部署到自动扩展组中启动的新实例。
我的问题是:这种部署策略如何适合 Travis CI 等 CI 工具?
具体来说:
- CodeDeploy 如何获取由 Travis CI 等 CI 工具构建的包?构建作业是否需要将包上传到 S3?
- 如何使用 CodeDeploy 逐步部署应用程序(例如一次一个实例)?
- 此部署策略是否需要关闭和替换每个正在运行的实例,或者是否将新版本的应用程序部署在现有实例上?如果是前者,在部署过程中机器IP地址会发生变化,那么其他服务如何发现新部署的应用程序(即没有硬编码的IP地址)?
【问题讨论】:
标签: amazon-web-services deployment cloud travis-ci aws-code-deploy