Wednesday, April 09, 2008

So Google is getting into scalable web infrastructure with the announcement of Google App Engine, apparently taking on Amazon's EC2 and S3 services. Having taken a deeper view however, it seems like they are addressing completely different spaces.

EC2 and S3 offer a whole lot of flexibility. They are independent of each other for a start, which means you can use S3 alone, or EC2 alone, or in combination with Amazon's Simple Queue Service. Secondly, with EC2 you get complete control over the image. You can put any programs in it and you can configure them however you want. You can even run anything on the instance from serving pages to performing computations.

Google's offering is completely different. You can only run web apps. It has to be in Python. You have to use their APIs for accessing data or fetching URLs. No sockets, no subprocesses, no threading, no filesystem access. So there are a lot of limitations.

BUT, what you get in exchange is extreme simplicity. App Engine is perfect for web app that needs to store some stuff in a database and interact with the user via a web server - and that's most of the apps out there. You've even got an SDK to develop offline and then sync it online.

Another bonus for Django developers: The APIs seem to be heavily influenced by Django. What this means is that if you are a Django developer, it should be relatively straightforward to deploy your applications onto App Engine. In fact, there is even some official documentation for doing just that.

If you design your application well, it shouldn't be too complex to take a Django app and port it to use the App Engine API, and vice-versa, take an App Engine app and move it to Django on another web host. That way you do not have platform dependence to Google and you can still move to another web host in the future.

About Me

I am the founder of Silver Stripe Software where we develop web based SaaS products. We've developed three products - Tool For Agile suite of products for teams that follow a lean or agile process, Tour My App a product for SaaS developers to provide in-app guided tours for their users, and Sequence, a tool to take actions based on user behaviour.
I do a bit of programming, some photography once in a while and like to do some cooking at times.