关于AWS自动调节和部署有两个问题,我无法清楚地回答:
到目前为止,EC2设置将使用puppet完成,包括应用程序的部署,在jenkins成功构建之后触发。
我找到的最佳解决方案是检查每个脚本在ELB注册了多少个实例。如果注册了一个,则生成一个新的,在启动时运行puppet(新节点将是最新的)并终止旧节点。
可能的解决方案:检查每个脚本向ELB注册了多少EC2实例,生成相同数量的实例,注册所有新实例并取消注册所有旧实例。
我与AWS的经验告诉我,AWS为所有事情提供服务。那么有没有任何服务来满足我的要求,我的解决方案很不方便?
答案 0 :(得分:0)
您可以使用自己的ELB创建一个全新的环境,当它准备好并经过检查时,您可以将DNS记录切换到新的ELB。
无论如何短时间(60秒左右,取决于您的DNS记录的TTL),一些用户将看到您的旧版本,而其他用户将看到新版本。
答案 1 :(得分:0)
最后有两种可能的解决方案。他们俩都会暂时提供两个版本的应用程序。
使用AWS CodeDeploy执行顺序部署(一个接一个)。此解决方案提供了回滚到先前状态的可能性,可视化显示部署的状态和结果。
创建一个python脚本来获取已注册的节点(使用Boto)并在其上运行相应的puppet脚本(使用Fabric)。此解决方案提供了更多的部署控制,但需要一些时间来构建这些脚本。也可能有错误..
现在我选择AWS CodeDeploy,因为它已经可用并且 - 希望 - 经过充分测试。