PaaS for the hobbyist

Now that we’ve all gotten over our infatuation with SaaS (back from Wikipedia yet? Ok, let’s move on) it’s time to talk about PaaS (off to Wikipedia again aren’t you?!).

Platform as a Service is a great idea. Back in the good ‘ol daystm®© we used to share our time on the mainframe provided by the university/company/agency. Now computing resources are becoming commodities and anyone can buy time on a CPU somewhere. We’ve even got Folding@home and others that let us lend our own CPU power to others.

But how does this work out for the hobbyist? The guy like me who hacks away a few lines of Visual Basic or Java between mowing the lawn and changing diapers?

Most hobbies cost money, but PaaS continually costs money. When you buy your computer that’s pretty much it. You can develop and run your little applications all you want without having to pay another cent. When you deploy a cloud application you’ll be expected to ante-up for all the resources you consume each month.

There’s a few compelling reasons for the hobbyist to build cloud applications and deploy them to a hosted platform:

  • All the cool programmers are doing it! You want to be cool too, don’t you!?
  • There’s no Windows vs. Mac vs. Linux debate – you can target all those users since your target is the browser; and
  • The cloud is where things are happening now so there’s plenty of new ideas to work with.

There’s two issues that need to be dealt with though:

  1. How do you finance your hobby? and,
  2. Which Platform-as-a-Service provider do you use?

The issues are kind of chicken-and-egg: some platforms are more expensive than others so if you’re cheap you might want to consider financing first; but if you’ve got money to spend then take a look at the platform first.

Personally I don’t believe in free as in beer software (free as in speech I believe in quite strongly – I’ll post more on this later). I think people should pay for the value (or benefit) they receive. Cash isn’t the only or necessarily the best form of payment, but it is the easiest. So I think it’s perfectly reasonable to ask people to pay for at least the resources they consume, even if they don’t pay for your beer (i.e.: you don’t make a profit).

So what about the platform? My biggest concern is vendor lock-in. Why? Because if the services packs it in, or the whole provider goes bust, then there goes all your hard work! Some providers are more likely to disappear than others. I think we’re all pretty confident Google’s App Engine, Amazon’s EC2, and Microsoft’s Azure are going to be around for a while, but it wasn’t long ago that Coghead, a popular and well respected platform provider closed their doors.

Amazon’s offering is pretty transportable, since you’re configuring your own environment, if they ever closed shop you could probably take all your code and run it on a similarly configured machine, possibly even a typical web-hosting provider if you kept your configuration basic and standard.

Google’s App Engine seems pretty safe too, especially since they’ve added Java to their platform now. Experts in IT services say that Java has a habit of defining interfaces that hide the implementation details. So as long as your code sticks to the interfaces and you can find an implementation for your new host you’re good to go. The Python platform hathats a few Google libraries you would have had to work hard on to replace if you wanted to run your application anywhere else.

Microsoft’s Azure is obviously .NET based, but for all their talk of openness I don’t see much happening there. And the SDK’s all rely on Azure’s platform so if Microsoft did pack in Azure (which I think is more likely than Google closing up App Engine or Amazon shutting down AWS) you should probably just get it over with and Shift-Delete your source files.

But Amazon’s ability to tweak the configuration would probably lead you to do non-standard things, even if you were just using Perl or PHP. And Google’s choice of Python and Java means a basic web hosting package probably won’t work for you since most providers only offer those platforms at the business or enterprise hosting level.

So what’s the hobbyist to do? For the moment we can play around with Google’s App Engine since they do allow some minimal usage for free and have development server your can run locally. But you need to have an exit strategy (either from App Engine or from your status as hobbyist) if your application gets popular and you exceed for the free quota limit.

There are also other providers (add Zoho Creator to that list) that give hobbyists a lot of latitude before requiring you to pay for the resources you consume. The come with other constraints though, such as non-standard (i.e.: non-transportable, steeper learning curve, limited resources) programming languages and higher risk of deadpooling!

For the moment I think I’m going to stick with the old stalwarts: C/C++ or Java. If I’m really feeling the Web 2.0 itch I might try to put something up on my web hosting provider in either Perl (more likely) or PHP (less likely). And there’s always that pesky Adobe AIR that’s nagging me to give it a try since it builds on the JavaScript I already know, but some people are not quite sure about it.

Cross-posted on Cameron-Schultz at PaaS for the hobbyist