views:

64

answers:

2

Hello. I'd like to prepare a development environment on the cloud. My target platform is Microsoft .Net

Based on theory and some basic experiments, I am tilting in favour of Amazon AWS infrastructure. If I purchase a High-Memory On-Demand Instance, I'll be able to deploy 8-20 instances of developer VMs within and also deploy VMs for database, source control and testing.

Here are my queries / doubts:

  • Is the above mentioned topology advisable?
  • How would a developer login and work with the guest VMs? (It is possible to connect to the host, but I am not sure about the guest VMs)
  • For source control, should one subscribe to services like assembla or own one?
  • Are there other cloud services available that complement the process of development? (specifically for .Net development).
  • Besides having a good broadband Internet connection (and also a backup connection), what other care need to be taken at developer end?
  • How will I be able to manage resources on my development environment? Any tools? Services?

I am open to know more from those who have successfully tried running a development on the cloud.

+2  A: 

I would strongly advise against running development VMs in the cloud. Latency is too high for the efficient development (esp. if you have Visual Studio 2010 with Resharper), besides having multiple Monitors might be quite tricky with RDP connections.

Although for cost-effective coding that does not require high-developers (esp. partial outsourcing to the other countries) this might be quite an option. You just set-up the image with tools and RDP connection, clone it as needed (keep in mind licensing) to VMs and pass remote desktop credentials to the developers.

For the source control and collaboration I recommend to subscribe to a service (that would be more cost-effective, than managing your own solution). At Lokad we employ hosted projects (although something like Mercurial would be more preferrable these days for the distributed development) coupled with Trac, Google Sites and some practices.

Cloud VM's are also quite good for running integration servers, doing testing and R&D (although for some reason I still stick to Rackspace instead of Amazon). If you are in the .NET stack, keep in mind that Azure might introduce VM Roles as well. That'll let you keep all .NET projects under one cloud (if you target Azure Cloud Computing and scalable .NET development).

Rinat Abdullin
A: 

Unfortunately Amazon EC2 instances are Virtual Machines, and you can't (generally) run a VM inside another VM...

Scrappydog