First look: Google's high-flying cloud for Python code
Google App Engine simplifies the problem of deploying and scaling Web applications, but not without a few wrinkles and question marksFollow @peterwayner
Sky's the limit
The plan is to charge when applications exceed some limits, a perfectly fair plan but one that makes me a bit nervous after years of basic pricing for servers. The terms and conditions suggest that you only get "200 million megacycles of CPU per day." You can see a snapshot of resource consumption, but this seems like an especially squirrelly metric that could be skewed in odd ways by factors beyond the developer's control. If you send a weird query to the database, it may burn cash in a way that you didn't anticipate. One of the biggest headaches for Java programmers comes when an instance of an application on one server starts asking for data that happens to be sitting on another server. Inter-server communication can slow fast boxes to a crawl, and entity locking could get scary if two users start nibbling at the same bytes at the same time.
I know I should be happy that App Engine will bring up new servers when the demand arrives, but all I can think about is watching the meter spin when an errant query starts chasing down data on other servers. Getting wildly popular may turn out to be more of a nightmare than a dream because Google will dutifully roll out more versions of your applications, burn more megacycles, and put it on your tab. I'm sure Google will come up with ways of limiting the size of the bill, but all I can think of is firing up a slick Web site and repeating Woody Allen's line from "Manhattan": "God, you're so beautiful I can hardly keep my eyes on the meter."
Google also lets you access Google accounts, the creepy feature that links your search history with your Gmail account. The users of your application don't need to set up a separate log-in or a separate account. You can get a user object with all of this information when they show up, if they've recently been logged in to read their Gmail. If you don't want to use this feature, you could always spin up your own user accounts with the database, of course.
Some of the FUD spread by rival camps suggests that Google just wants to use App Engine as a way to nurture Python developers so that the company can hire them away. Others see it as a cynical way to gain control and lock people into their Google accounts. Others think this is just a technique for Google to build a big plantation with you, the Python developer, toiling away to monetize its app cloud and add more value to the Google account.
That's all just a bit too cynical. While the terms and conditions include a number of scary phrases giving Google the power to do pretty much anything with your baby, they seem like rational responses to the scary prospect of letting anyone put applications on your cloud. Copyright violations, spammers, and pornographers must keep the lawyers at Google up late at night. The lock-in is a real problem, but it is mitigated a bit by some of the open source licenses. Python and Django are pretty much free if you want to take your application and run with it. The hurdles and caveats are annoying, but the App Engine formula seems like a serious play for the low end of the marketplace where small developers create niche applications.