负载均衡Web服务器+保持内容同步

4

我正在考虑实现EC2的弹性负载均衡功能,但我运行的是基于LAMP堆栈的Web应用程序,该应用程序经常更改,并且想知道在负载平衡的服务器之间保持应用程序同步的最常见策略是什么。数据库将存储在其他位置,因此我目前只关心在进行更改时如何保持实际脚本同步。


我也遇到了这个问题 :( - CodeGuru
3个回答

5
取决于您要多频繁地更新脚本:
  • 最常见的解决方案是将共享组件存储在EBS卷中,创建快照,然后从实例挂载该卷 - 可以作为根设备(使您能够在所有实例之间保持整个代码状态同步)或作为辅助卷(仅包含您的代码,允许您使用其他用户构建的AMI,如Canonical)
  • 如果经常更新,则简单的解决方案,如rsync,可能会获胜,或者您可以将它们保存在S3上,并使用S3 fuse模块直接从S3挂载脚本(使用此解决方案,您可能会在S3 GET请求数量上稍微花费更多,这取决于S3 fuse缓存的方式)。

2
解决这个问题的一种方法是使用持续集成,它可以使用rsync传输您的文件并在服务器上构建项目,但这还不够。
有许多可用的插件(PHPUnit、代码覆盖率、代码分析等): Jenkins
如何操作:
  1. 安装 Jenkins
  2. 使用 Jenkins 配置您的项目(可能需要将您的代码放入某个代码版本控制系统中)
    1. 配置服务器、项目路径、预处理作业、后处理作业等。
  3. 安排工作/作业。
  4. 完成了。
参考资料:
配置:
  1. 配置 - 示例1
  2. 初始配置
    1. 配置作业
http://agile.dzone.com/news/continuous-integration-php

0
您可以在AWS基础架构上运行Chef/Puppet。将其集成到Git/SVN中。 Chef将自动从SVN中获取新更改,并定期将其移动到Amazon EC2 Web服务器中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接