2011-06-20 59 views
4

我正在考虑实施EC2的Elastic Load Balancing功能,但我正在运行一个频繁更改的Web应用程序(在LAMP堆栈上),并且想知道最常用的策略是什么应用程序在负载平衡的服务器之间同步。数据库将存在于其他地方,所以我只担心(在这一点上)当我进行更改时保持实际脚本同步。负载均衡Web服务器+保持内容同步

+0

我也有这个问题:( – CodeGuru

回答

4

的解决这个问题是使用continuous integration可与rsync传送文件和建立在服务器上该项目的一个方式,这是不是现在。

有相当一堆可用的插件(PHPUnit的,代码覆盖率,代码分析等):

Jenkins

如何:

  1. Install Jenkins
  2. 配置项目(可能你的代码应该在某些代码版本系统中)与Jenkins
    1. 配置服务器,项目路径,作业前,作业等
  3. 安排工作/作业。
  4. 就是这样,完成了。

参考:

  1. 配置:
    1. configuring - ex.1
    2. Initial configuration
      1. Configuring the jobs
  2. http://agile.dzone.com/news/continuous-integration-php
5

这取决于你打算如何频繁地更新脚本:

  • 最常见的解决方案是将您的共享组件存储在EBS卷,创建快照,然后装入从实例 - 无论是作为根设备(允许您保持所有实例的整个代码状态同步)或作为辅助卷(仅包含您的代码,允许您使用其他用户构建的AMI,如Canonical)
  • 由于频繁更新像rsync这样简单的解决方案可能是赢家,或者你可以将它们保留在S3上,并使用S3保险丝模块直接从S3安装脚本(有了这个解决方案您可能最终花费S3 GET请求的数量略多,这取决于S3如何保险高速缓存)。
0

您可以运行在AWS红外厨师/木偶。把这个集成到Git/SVN中。厨师从SVN自动提取新的更改,并定期移入您的Amazon EC2 Web服务器。