How I learned to stop worrying and love EC2/Linode

Vagmi Mudumbai

I have tried very hard to like platform as a service solutions like Windows Azure or Heroku or GAE. Now most of these systems are a marvel of engineering and may be right for many scenarios. But when you are building applications and want to keep your technology choices open and adaptable to change, these might become your biggest worries. PaaS vendors often sell the story of simplicity and the ease of use of their platform. But in reality, when you are going to scale, you will have to deal with the complexities of scaling one way or the other.

This is what I think would work better. Invest in people instead of investing on the platform. It seems to be Microsoft and Windows Server all over again. The promise of windows was that it made it so easy that any MCSE would be able to manage the network. But for really large networks we needed good admins nevertheless who could have done a better job with Linux and their tools of choice. Also PaaS solutions tie you down to the platform. Even if the language is open, you will have to architect your application to the design choices of the platform. This makes the app very hard to port if you ever want to move out of the platform. Imagine rewriting an app that has been written for GAE to a normal Django/Postgres stack. It is insanely difficult. You are better off rewriting it from scratch.

Also if you would like to integrate your app with other software that is not supported on the stack, you are pretty much left to the mercy of the company building the platform. We have just learned not to build on closed source platforms and to embrace open source. But PaaS vendors want to take their closed source platforms all over again and they preach lean startups and cloud computing to mask their closed source monopolistic intentions.

We have an interoperable choice with IaaS vendors. EC2, Rackspace Cloud, Linode, Slicehost and others provide an interoperable solution. Although their service interfaces are different, they offer a similar service. You can reasonably port your app across EC2 to Rackspace to Linode and so on. They have varying degrees of flexibility, but at the core, they do not shackle you on to their platforms and ask for your first born. I have been seduced by GAE and have even thought seriously about using that as a platform to build applications. Then I realized that I was just being lazy. Scaling apps is hard but building apps that need that scale is much harder. If you can get to that stage, I reckon that you can figure out the scaling problem as well.

I am an open source developer and never will I give away my freedom to companies even as benevolent as Google. I wonder who else is using Microsoft Azure apart from Bing?

Posted on 2010-11-22T17:44:32Z by Vagmi Mudumbai Comments
blog comments powered by Disqus