Friday, December 3, 2010

My ongoing app engine dilemma

So, I'm not a professional developer or software engineer. I've never made my living entirely by writing code, though writing code has often been critical to many of my deliverables. The key difference for me and why I don't call myself a developer has been that it's never been entirely about the code for me, it's always been about the value the code can deliver.

Developers care more about the code as a deliverable in and of itself.

Now, with that preamble, I can properly state the dilemma I face with Google's app engine. For those unfamiliar with app engine, think of it as a way to write glue code for services in the cloud. For instance, say you want to create a service where multiple authors can contribute tweets to a twitter account but you want one person to have editorial approval. You can build that app in app engine (and also, apparently, in google apps script which might be thought of as a kissing cousin).

Google handles hosting your app and making sure it has the necessary server resources.

The way I've stated it, that sound pretty cool. You can essentially write web apps without having to manage web infrastructure.

Well, the problem comes in the constraints. App engine apps can only run for a limited period. Want to do serious number crunching and analysis? That's not really what app engine is meant for, and the time constraints it places on programs likely won't permit it. You have to think about some other way to do your analysis than running it on app engine.

Therein lies the rub for the non-developer. It's relatively easy to think of how to solve these problems in a case where one program does it all. Indeed, that's how I do all my cloud computing now. I run it all on a mac mini computer with a cron job that fires off every 10 minutes, harvests cloud resources, analyzes them, and then posts the result to a server.

It's harder to think of how to split it all up among multiple resources. I can do it conceptually. It's at implementation time that I get stuck. Too many little threads to pull together, and I retreat to the way I know how to make it work.