Tuesday, April 08, 2008

Google App Engine and You

I think Dave Winer nails the first gloss on Google App Engine (via Farhad):

3. Now, what Google announced is really exciting! I'm not kidding. It's even better than I hoped. Yes, it's only Python, but IBM's PC-DOS was only BASIC and Pascal when it first came out, and it didn't matter. Yeah, I preferred C, but I coded in Pascal because that's what you had to do to get an app running. What you're going to see here that you've never seen before is shrinkwrap net apps that scale that can be deployed by civillians. That's a mouthful, but that's what's coming. Why? Because here is a standardized platform that can be stamped out in the billions of units. Maybe Google can't do it, but the perception is that they can. Who is willing to stand up and say Google hasn't nailed scaling? What PCs did in the 80s, Google is doing now. PCs took the black magic out of owning a computer. Now Google is taking the black magic out of operating a scalable web app. Python is the new BASIC.  

Say you want to run a weblog at your school now. You've got a few possible strategies:

  • Use a hosted service which give you little control and limited integration, but is hopefully reliable and requires no expertise on your part.
  • Install the software on your servers, which are of course professionally administered. This is probably the best-case scenario, but it can be difficult for teachers in particular to push innovation up the chain of command in this way, even when the excess technical capacity exists.
  • Set up or lease your own server to host the application. This gives you maximum freedom to install whatever software you want, and tune the entire environment to suit your needs, but it is relatively expensive and inefficient -- you're taking on a whole additional set of administrative headaches (a whole server) to run a web app.
  • Get a cheap web-host account and run software on that. This will work, but the degree of difficulty is deceptive. The ability to use this kind of environment is the one massive advantage of PHP. If you take this route, it is easy to get your apps running without really knowing what you're doing, but it takes vigilance to keep them up to date and secure, especially over the longer haul.

The niche that Google may be opening up here for schools is a more rubust alternative to blindly Fantastico-ing WordPress into your GoDaddy account. In addition, if you've lifted the burden of spam filtering off your taxpayers by switching the district to GMail, your blogs get authentication for free using Google Accounts. But, you're not running Blogger, you're running open source software that hopefully has been customized to fit the needs of teachers and students.

Beyond that, and perhaps more importantly, Google App Engine, and similar services, provide a way out of the scaling and maintenance trap that plagues smallish free hosting projects like Class Blogmeister. Starting these things up is easy, but scaling and maintaining them gets harder and harder and more and more expensive. Handing them off to someone else isn't easy right now either, because you've got a whole stack of crap which wasn't designed to be moved. Someday, whoever started the thing is going to decide it isn't worth the expense and bother anymore, and mothball it. Or, they will die. Either way, it is inevitable.

Google App Engine should change this equation. One imagines there will be some technical scaling issues at various points, but you won't run into the "everything slows to a crawl until I have the time and money to lease a second server and learn how to do load balancing, which I will screw up at least once" scenario. Mainly, it will just steadily cost more for the host, but it should be a reasonably predictable curve. Beyond that, one hopes that it will be easier to pass on such an application to a new maintainer.

In case you're wondering, this particular platform wouldn't work for an SIS, because it won't do batch processing of long-running jobs, like generating report cards.

I'm not really worried about being locked into Google's service here. As Ivan Krstić writes we will see multiple implementations of Google's API very quickly, so moving to your own servers should be feasible.

And this is a huge win for Python, Django and WSGI, all good things. It is good for innovation, in general, because it further lowers the cost of startups, and the cost of failed startups in particular.

No comments: