探索触发构建脚本的工具,将特定的git分支推出到amazonec2实例的子集



我们在负载均衡器后面有多个amazon ec2实例。我们的构建脚本是用phing编写的,并与git集成。

我们正在寻找一个工具(如Jenkins或Amazon代码部署),它可以显示当前负载均衡器后面的所有活动实例,然后允许我们选择其中的一些实例(或选择之前定义的组),然后触发以下任一项(以更好的为准)-

  • 托管在托管该工具的同一专用服务器上的构建脚本。

  • 或者托管在所选ec2实例上的相应构建脚本。

我们应该能够做到以下-

  • 当我们触发任何实例组的构建脚本时,可以选择指定git分支名称。

  • 能够批量推出,以便有一些时间监控负载,如果一切正常,则转到下一批。我想,最好的方法是指定批次的大小(例如10),这样在每个批次的推出完成后,流程都会等待用户提示。

因此,如果我们必须向两组实例推出两个不同的git分支,我们应该能够分两步运行它们(如果我们没有指定批处理大小)。

想了解处理类似事情的人的经历

对于CodeDeploy,它支持Git(更准确地说,是GitHub)。它还允许您仅部署到已标记的EC2实例。如果与自定义DeploymentConfig结合使用(http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-create-deployment-configuration.html),您还可以控制部署的速度(批处理的大小)。

我会重新构建这个问题:

应用程序部署的选择以及该工具是否具有执行滚动部署的选项。

Jenkins是CI/CD的软件,它必须使用插件、自定义脚本或利用现有的编排软件设置来进行部署。

对于软件编排,你有很多选择,一些更著名的工具是Chef、puppet、ansible等。所有这些都需要你管理某种集中的设置。所有这些软件都支持应用程序部署。

你需要决定是否要投资维护这样的设置。

如果您决定不使用这样的设置,您可以选择使用托管服务,如AWS OpsWorks、AWS CodeDeploy、托管厨师等。在选择这些服务中的任何一个时,您都将编排软件的管理委托给供应商,这将确保服务始终处于运行状态。

AWS代码部署和AWS OpsWorks是AWS上的托管服务,在AWS设置上运行良好。AWS OpsWorks使用幕后厨师。

AWS CodeDeploy只提供OpsWorks提供的一个子集,并且只负责部署。使用AWS代码部署,您可以通过AWS控制台方便地可视化软件部署。

通过部署AWS代码,您可以实现部分扩展到ec2实例的目标。您也可以使用其他工具进行同样的操作,但AWS环境中的CodeDeploy所需的工作量最小。CodeDeploy还允许您从GIT进行部署。请参阅以下aws文档http://docs.aws.amazon.com/codedeploy/latest/userguide/github-integ-tutorial.html

代码部署的缺陷在于,将在实例上运行的代理已经过测试,并且只支持有限数量的操作系统组合。(http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-run-agent.html#how-运行代理支持的oses)此外,在未来,如果您决定离开AWS,您将不得不重做与部署相关的工作。

CodeDeploy服务只向您收取底层AWS资源的费用。请在下面找到定价文档的链接:https://aws.amazon.com/codedeploy/pricing/

最新更新