2012-12-13 47 views
2

我們在AWS中有兩個實例的負載均衡設置。我們使用SVN進行非常頻繁的代碼更新。我需要知道更新集羣中所有實例的代碼更改是多麼容易。我們可以簡單地做'快照',並創建新的卷每次爲實例?...或?...如何跨多個AWS實例複製代碼更改?

+2

您正在使用哪種語言?看看AWS Elastic Beanstalk,我正在使用它,它通過單一的git push操作自動將代碼複製到負載均衡器的所有服務器中(請注意,它不適用於SVN) –

回答

0

我不會做更新通過EBS快照。將EBS卷想象成硬盤 - 如果您的軟件有更新,則不會更改硬盤。

由於您在版本控制系統中使用代碼,代碼更新應該非常簡單,如登錄到(多個)服務器並執行git pullsvn update。這應該從您的服務器獲取最新的代碼文件。根據應用程序的類型,你將不得不做一些其他任務,運行構建腳本,清空緩存等。

問題是,這種設置不能很好地擴展。如果您有n服務器,您將必須登錄並執行此命令n次。因此,研究一下您可以一步使用的遠程管理工具是很有意義的。通過大量這些工具,您還可以獲得完整的配置管理堆棧:爲每臺服務器定義一組配方或任務(如已安裝的軟件包,配置文件,獲取最新的代碼,必要的構建步驟),並且當您啓動一個新的服務器,它將獲取其配置的最新版本並自行安裝。

流行的配置管理工具包括PuppetSalt。這兩種工具都包含遠程執行功能,這將使您的任務更容易地發佈您的代碼庫,您只需在主服務器上啓動一個命令,並自動在其所有小型/從屬服務器上執行此任務。

+0

是否有任何好的教程對於使用github和ec2的非常初級的人來說?我創建了一個私人回購站,只是不確定如何準確執行所說的'git pull'來獲取代碼更新並將它們放在實例上 – firecasey

+0

看看這裏 - 如果你玩git一段時間,你會很快習慣工作流程:http://sixrevisions.com/resources/git-tutorials-beginners/ – j0nes