How to synchronize executed code with multiple instances of EC2

We have several instances of EC2 behind a load balancer. Each server has several ASP.NET applications installed. I'm looking for a simple, real-time, automatic way to deploy new compiled code to all instances at once.

I have seen solutions that use version control repositories such as SVN or Git, but this does not seem to be the right use of this technology for us, as we deploy the compiled code to EC2 instances and not to the source code.

I also installed Dropbox for synchronization. This works somewhat, but has its own quirks. For example, you need to create a directory structure around the "one root synchronization folder" restriction. Any other reason why we definitely should NOT use dropbox for this?

Writing a custom application using the S3 API is an option, but we would prefer a third-party solution for writing more code.

This seems like a common scenario, but so far I have not found good solutions.

+6
c # amazon-s3 amazon-ec2 deployment
source share
6 answers

An elastic bean pin seems to be the best way. You simply push your deployment web project to a resilient beanstalk environment and deploy code to all of your instances. (It manages autoscaling for you.) It also ensures that new instances are running, you have the latest code, and it saves previous versions with which you can easily return.

If your asp.net site should automatically scale to AWS, Elastic Beanstalk is truly the best end-to-end solution.

+3
source share

Since these are ASP.Net and IIS applications, why not use a Web deployment. It is DONE for this.

http://www.iis.net/download/webdeploy

Web Deploy allows you to efficiently synchronize sites, applications, or servers on your IIS 7.0 server farm by detecting differences between source and destination content and transferring only those changes that require synchronization. The tool simplifies the synchronization process by automatically determining the configuration, content, and certificates for synchronization for a specific site. In addition to the default behavior, you still have the option to specify additional providers for synchronization, including databases, COM objects, GAC assemblies, and registry settings.

+1
source share

You can use Git, Mercurial, or SVN to transfer compiled code to servers or to get code to get code. Source control is not only for source code - it can be used for any type of file.

In addition, one way to solve the Dropbox problem is to use multiple DropBox accounts if that is the problem. But Dropbox is a pretty simple solution because you never need to write any code. While Dropbox is working, it will work.

+1
source share

You might want to give AppHarbor . We take care of managing ASP.NET application servers, load balancers and all the necessary infrastructure, which allows you to continue developing your application. We also offer a convenient way for you to use the new versions of your application using your choice of Git, Mercurial, Subversion, and TFS.

+1
source share

Git or mercurial will do a good job of this; subversive activity does a poor job of manipulation.

And you get very good control and confidence that the code is deployed everywhere, looking at the changes.

0
source share

Seems obvious, but a shared file system? Or push using scp or rsync?

0
source share

All Articles