Archive for April, 2008

Google App Engine = World’s Biggest PDA

Thursday, April 10th, 2008

Here’s my recommendation for evaluating the Google App Engine: Think of it as the world’s biggest, baddest embedded device, like a smartphone designed by Chuck Norris.

Remember that, just like the folks that build PDA software, you are writing code to be deployed atop a purpose-built, specialized hardware/OS combination that has profound intentional differences from your Mac/XP/Linux desktop environment. And while the hardware/OS vendor (i.e. Google) does everything that they can to bridge that gap, many of these differences cannot be effectively abstracted away.

The teams that will successfully launch apps atop the Google App Engine are the ones that understand and embrace the nature of the platform (both pros and cons), rather than those that grudgingly work around its idiosyncrasies, pining for the Ubuntu-y goodness of their favorite deployment environments.

Folks who treat App Engine simply as an alternate deployment platform for Python-based web applications run the risk of hitting the wall before they get their app out the door. Anything but the simplest applications will likely require some serious RDBMS-to-”Datastore API” architectural transmogrification. And there are still a bunch of Python libraries (Paste, Mako, etc.) that cannot be used in the App Engine environment.

For time spent in the App Engine world will make for an interesting life:

Infinite scalability. Minimal administrative headaches. But no way to run a query with a “GROUP BY” clause.

Plan accordingly.

Google App Engine

Tuesday, April 8th, 2008

Google App Engine was announced last night. This is a service that allows you to write a web application in Python and deploy it to Google, where it can run atop Google’s uber-scalable infrastructure. Here is the transcript and video of the announcement, where Kevin Gibbs from Google explains the App Engine’s value proposition (Easy to use, Easy to scale, and Free to get started.)

Like most big announcements, it’s the most sensational aspects of the story that emerge first. But I think that the broader impact of Google App Engine is a fundamental rethinking of the relational database value proposition among the RDBMS’ staunchest allies. Google makes a compelling case for deployment, so long as your application can live within its constraints.

I see data management as the biggest impedence mismatch between the Google App Engine and the traditional web application design. However, over time I’m certain that a set of patterns will emerge to aid the masses in bridging the gap between the relational model and the Datastore API.

They have some great stuff in the Datastore API, and Christian and I are already at work putting together some offerings to help companies attracted to Google’s Infrastructure-as-a-Service model objectively evaluate and/or embrace the App Engine for their web application needs. Email me if you’d like to discuss.

So that being said, I’ll argue the following:

  • Is it a giant piece of flypaper to help Google acquire the next generation of startups? Maybe, but I contend that the real killer next-generation apps will need more feature-rich networking capabilities. Let’s wait until we see what kind of XMPP/GoogleTalk integration comes along.
  • Is it a sign that commodity web hosting providers are going the way of the corner video store? Perhaps.
  • Is it a welcome counterbalance to the Ruby-on-Rails hype machine in the dynamic language arena? Yep.
  • Is it a final blow in the in the Google vs. [INSERT NAME HERE] battle for the hearts, minds, and wallets of the IT crowd? No, the Infrastructure-as-a-Service game is just beginning. The Amazon infrastructure offerings are generalized and piecemeal (by design), whereas the Google App Engine is more of a “vertical” play tailored to traditional data-backed web applications.
  • Is it a symbolic victory of Django over Pylons in the Python web frameworks world? No, it’s a victory for WSGI. Django just happens to be up on stage, ably and graciously accepting the award on WSGI’s behalf. I think that the stuff coming out of the App Engine ecosystem in the coming weeks will provide additional validation to the idea that WSGI is Python’s not-so-secret weapon.

Lastly, I’ll throw out some predictions, none of which are Earth-shattering:

  • An Open Source application stack that emulates the Google App Engine SDK’s runtime environment will emerge from the community for folks that want to build applications that are compatible with the App Engine, but do not want to deploy their application to Google’s cloud at the current time. Also, this stack would provide an option for companies that deploy a custom app to the App Engine, but subsequently wish to take their application in-house.
  • Within time, you’ll see integration with other elements of the Google infrastructure (Docs, GTalk, Search, etc.).
  • The next language to be supported will be JavaScript, but that will not come for quite some time.