I wasn't going to tackle the Google App Engine Beta at all because I thought others would come forward with the same argument I wanted to make. But as far as I've seen that hasn't happened. Instead a steady stream of posts praising the service as the next big thing have come out which, to me, is ridiculous.
For those completely unfamiliar here is a summary of Google App Engine from Niall Kennedy's post on the topic...
Google App Engine lets any Python developer execute CGI-driven Web applications, store its results, and serve static content from a fault-tolerant geo-distributed computing grid built exclusively for modern Web applications. I met with the App Engine's team leads on Monday morning for an in-depth overview of the product, its features, and its limitations. Google has been working on the Google App Engine since at least March 2006 and has only just begun revealing some of its features. In this post I will summarize Google App Engine from a developer's point of view, outline its major features, and examine pitfalls for developers and startups interested in deploying web applications on Google's servers.
After reading Mr. Kennedy's post I couldn't hold my tongue anymore. This service has gotten entirely too much credit and I'm now to the point where I'm willing to spend the time to make a post on it.
Google App Engine: The World's Worst Webhost
Google App Engine is essentially just a free web host. You can throw around terms like "geo-distributed computing grid" all you want but the reality is most applications have a server or servers in one location and do just fine.
Given that, I made a quick chart comparing Google App Engine to a popular shared hosting company (for the record, I've never done business with this company). I compared Google's free service to the other company's $5.95 per month service...
| |
Average Webhost |
Google |
| Data Transfer per Month |
15,000Gb |
300-310Gb (10Gb per day |
| Setup |
Free |
Free |
| Database |
(Open) MySQL |
(Proprietary) BigTable |
| PHP |
Yes |
No |
| Ruby |
Yes |
No |
| Python |
Yes |
Yes |
| Perl |
Yes |
No |
As you can see, Google falls behind in every single category. So the question becomes this: is there really anyone who can't afford $6 a month?
But what about Scaling?
One of the arguments for the Google App Engine has been that its backed by Google's ability to scale. When I hear people say this I have to wonder if they've even thought through what the words mean.
Google App Engine's ability to scale depends on how much server resources Google is willing to dedicate to the task of running these applications. Google is not going to risk slowing down their primary services for a Google App Engine application. So their ability to scale could very well be less than other companies, we just don't know.
Beyond that, Google is allocating resources "per cycle" which means that Google's ability to scale doesn't come into play unless you are using enough resources to max out another web hosting company (which is unlikely).
On top of all that Google hasn't even released details on how much they will charge for overages making it impossible to judge the service against other available options.
The Great Google Stack
To quote from Mr. Kennedy's post...
Google App Engine is a proprietary virtualized computing suite covering the major common components of a modern web application: dynamic runtime, persistent storage, static file serving, user management, external web requests, e-mail communication, service monitoring, and log analysis. The Google App Engine product offers a single hosted production web server stack hosted on Google's custom-designed computers and datacenters distributed around the world.
Here's what he doesn't mention: almost every modern framework manages these tasks. .Net, Ruby on Rails, even PHP all have ways to handle the above tasks with just a few lines of code. Google isn't doing anything monumental by offering these items.
The one exception to the above rule is authentication. Google does offer the ability to authenticate your program's users through their Google account which is a nice feature. But again, entirely proprietary. To use it you essentially have to be willing to give your customers to Google.
In fact, the end result of all these libraries is to lock you into Google's proprietary system and force you to use their language of choice (at least until they expand beyond python). So if you do use those features you really can't move your site to another host without a massive rewrite.
Those pesky privacy concerns
Another thing that doesn't seem to come up is that Google has made no guarantees as to the privacy of the content being put on their servers. They'll have access to your complete source code and the rights to do whatever they want with it. I doubt they would do anything but the fact that they could is enough to chase any smart start up away.
But Wait, There's more limitations
Going back to Mr. Kennedy's post he lays out a few more limitations that I didn't know about...
-
- Static files are limited to 1 MB. App Engine does not support partial content requests (Accept-Ranges).
- Cron jobs and other long-life processes are not permitted.
- Applications are not uniquely identifiable by IP address, leading to a lack of identification for external communications. Applications may suffer from bad neighbor penalties from API providers upset at another app on the service.
- No SSL support. You can rely on Google services (and branding) for login and possibly future payments.
- No image processing. Python Imaging Library relies on C, and is therefore not a possible App Engine module.
- Google user accounts. Site visitors are very aware of your choice in web hosts each time they attempt to logon to your application. I feel like this flow makes your application seem less professional, but may be a reasonable trade-off. Google will store your user data and potentially mine its data for better ad targeting.
All but #6 are things you CAN DO on every web host I can think of.
Conclusion
The Google App engine may some day be worth mentioning but as of right now its nothing short of comical. Essentially Geocities 2.0.
The idea that this is a competitor to Amazon's services or that Startups are going to start flocking to this platform is absurd. You'd think the people singing the praises of Google's solution had never heard of a web hosting company before.
Amazon was revolutionary because it provided a superior product for a cheaper price than most web sites were paying at the time. Google on the other hand has provided a product inferior to every web host I can find and won't even tell us how much they'll charge to bring their service up to equal those other products.
I can't imagine any serious developer signing up for this under the current circumstances.