开发者

Amazon EC2 multiple instances with SVN app

Heya, Quick question. I've got multiple instances on EC2 with a load balancer between them. I use an SVN app that use开发者_运维百科d to push to my live env. at will.

With the multiple EC2's, how would I push a codebase to all of them at once? Any thoughts/links would be appreciated.


There are a few different ways to do this.

If You Are Using Elastic Load Balancers

Write a script that:

  1. Removes a machine from the pool
  2. Updates the SVN repository
  3. Re-adds the machine to the pool
  4. Repeats for any additional machines

You could also get fancy and remove one machine, update it, remove all other machines and update them, if you're concerned about consistency.

If You Are Using a Custom Load Balancing Application

Look into Capistrano. You don't need to use it with Ruby/Rake -- you can write custom cap files that can do parallel deploys.


How about vlad or fabric for code deployment.


We use Scalr. It is available as a service (Scalr.net) or you can run it yourself (it is Open Source - though the source in the googlecode repository is sometimes a little behind the version the service uses).

Basically, Scalr has a global scripting feature whereby you can specify a script (e.g. bash, PHP, anything with #!bang) and trigger it to be run on all instances of a given 'role' (e.g. web instance). In our case we have a script that just does svn checkout or svn update as appropriate. Scalr supports periodic scheduling of scripts, so in the dev environment I run it every 5 mins to keep dev in synch with SVN, but obviously I manually trigger it for production. (I have the script taking a param to specify the SVN branch to use)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜