When Google App Engine was announced, I was pretty excited to be able to run any code at all on Google’s servers. I was also intrigued by the promise of having scalable Web apps without having to worry about the infrastructure.
So I went out and built a sample application to learn how to use App Engine. I even learned some Python, which was great.
Even being able to successfully build the application, I gave up on App Engine. One reason is that there is too much data lock-in. It is a vault where you put your data in, but it’s very difficult to get it all out if you want or need to.
But the most serious issue for me were the frequent messages on the user group about applications being offline for hours because of a few Web requests that App Engine deemed excessive. Well, for me the only thing that is attractive about App Engine is the promise of reliability and scalability. But in practice you can’t depend on it.
Aral Balkan, one of the biggest App Engine enthusiasts and a great blogger, wrote an article that sums it all in a masterful way, and where he explains why App Engine is only 25% ready for prime time. For example:
<< You build an awesome new app on Google App Engine. You tell your friends. They tell 1,000 of their friends on Twitter who tell 1,000 of their friends and then, suddenly, you have all these developers hitting Google App Engine for the first time to see your app. Paradoxically, by doing that, they trigger the “intelligent throttling” “feature” in Google App Engine which freaks out and shuts down your app with an “Over Quota” error — effectively making the “Over Quota” message the first impression most of your audience has of Google App Engine. >>
The cloud space is a territory for experimentation, and I think it’s great that Google is working on such a service. I also think that eventually they will get it right.
But I wouldn’t host a Web app on App Engine anytime soon. I’d settle for a little less scalability and more reliability.