【问题标题】:code deployments on EC2EC2 上的代码部署
【发布时间】:2013-03-06 07:06:19
【问题描述】:
有很多关于在 EC2 上部署 AMI 的资源。但是对于基于 PHP/Java 的网站的增量代码更新是否有任何解决方案?
假设我有 10 个 EC2 实例,它们都在运行基于 PHP/Java 的网站,并且该实例具有本地的 docroot。我可能想在一天中对其进行大量代码部署。
我不想在每次有代码更新时创建新的 AMI 副本并将其扩展到新实例。
任何关于如何最好地做到这一点的线索将不胜感激。我们使用 subversion 作为我们的主要代码存储库,过去我们只在一到两台服务器上完成了 SVN 更新/co。
谢谢。
【问题讨论】:
标签:
amazon-web-services
amazon-s3
amazon-ec2
amazon-cloudfront
continuous-deployment
【解决方案2】:
Elastic Beanstalk 正是为此而设计的。我们使用 Elastic Beanstalk java/tomcat 风格,但它也支持 php、ruby、python 环境。它有允许你部署代码的 web 控制台(它甚至保留它的历史),它还有 git 工具来从命令行部署代码。
它还内置了监控、负载均衡器、自动缩放。只需几个 Web 表单条目即可控制所有这些。
【解决方案4】:
Capistrano 是一次将代码部署到多个服务器的绝佳工具。 Chef 和 Puppet 是使用数据库、网络服务器等设置这些服务器的绝佳工具。
【解决方案5】:
去 Capistrano 吧。这是在多台服务器上部署代码的好方法。
【解决方案6】:
如前所述,如果您只想要一个网络服务器并且不想担心细节,那么 Elastic Beanstalk 是一个不错的选择。
另外,看看 AWS CodeDeploy。您可以更好地控制实例的生命周期,并且您将看到与您现在拥有的非常相似的东西(您设置的一组 EC2 实例)。您甚至可以使用 Auto Scaling 在实例启动时自动部署。
【解决方案7】:
您可以使用 Capsitrano 或 TravisCI。