At PBS we have been launching most new applications up in Amazon's cloud platform utilizing EC2 instances, EBS and S3 storage, etc. The flexibility and agility that this Infrastructure as a Service (IaaS) is truly game changing, if not frightening (to IT departments).
The ease with which I am able spin up a server or 30 still gives me the chills even though I've been doing this for years by now. In fact, it is so easy that in addition to launching production applications in the cloud, we've been providing developers each their own dedicated EC2 servers for the applications they are building, modifying, or testing. The benefits of doing so are easy to see:
- Development environment is identical in all aspects to production environment.
- Deployment systems (such as Fabric) can be used to push to QA, staging and production servers as easily as to the developers instance.
- Instances can be easily cloned if something goes wrong. Made a mistake on configuring the environment? Who cares? Blow it away and start over.
But is it too easy?
For each active application, we may have a dozen or so developers, each with their own EC2 instance. As more applications and developers come on board, you can foresee how we might end up with multiplicative growth in the number of development servers. Let's take 10 developers each working on 3 projects... that's 30 development instances for 3 projects. And that's not counting QA, staging or production instances. Since a throw-away development instance costs just as much as a mission critical production instance... the cost balance feels out of whack to me.
Is there a way to bring down the cost of development instances while maintaining the above-mentioned benefits? What about hosting development servers in a private AWS compatible cloud, such as those fronted by Eucalyptus? There may be potential here and we are prototyping this out. But I suspect the underlying hardware required to run such a private cloud would be as costly (and less flexible) than using dedicated AWS EC2 instances.
Amazon's new micro instances should provide some relief. Any other ideas?