I’ve been impressed by the presentation I attended this afternoon at the Chicago Ruby Group about the Elastic Servers. Maybe there are already other services like this but I didn’t know about it before.
You can go to this web site and have a VMWare, Parallels, Xen or others virtualization tool server prepared for you in minutes. After you download the image you can install your applications on the virtual server and re-package the whole thing for distribution. But there is more. The site offers you the possibility to deploy the server with your customization to one of the cloud services available: Amazon EC2, Google AppEngine and many more. Your image can also be made publicly available for others to download.
Virtualization farms aren’t a new concept. The difference here is that you don’t need to be a system admin to create a VMWare image to distribute with your applications on it. The operative system is installed and configured with the package you want and an admin web tool is deployed also so that you can start, stop, install applications on the virtual server without any knowledge of unix services.
Here’s are some cool scenarios where you can use virtualized servers on demand:
- Demo to the customer: you can create the server, install your apps on it and invite the customer to download and run the image. She can play with the application in a completely isolated environment that you have prepared
- Start of a new project: all the necessary infrastructure to collaborate with the customer can be deployed on an Elastic Server. One for each project! On the virtual server you can put the wiki, the mailing list, the tracking application, spreadsheets, project management application, continuous integration server and the source control system. You need to create then some customization script to give the correct names and procedure everywhere. You can deploy this server to some external cloud service, so neither you nor the customer need to allocate hardware for this.
- New developers on the team: this is especially good for consultancy situation. No more reading a huge list of tasks on the wiki for the new developer. You just need to prepare an image with the development environment ready to go, one for each project.