2011-06-20 93 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服務器。