Wednesday, 23 February 2011

Here we go …

Sydney Trains & Ferries (beta) has just been submitted to the Windows Phone 7 AppHub. Here’s hoping everything goes smoothly.

As they say “Necessity is the mother of invention”, and in this case I needed an app for my own daily commute, hence Sydney Trains & Ferries was born. Admittedly the app is far from ‘complete’, the intention is to evolve through user input, so hop onto the feedback link and get screaming at me Winking smile

The first think I have to ask is:

Do you want better Rail and Ferry info first or should I focus on getting bus info into the app?

Other than that, I’ll put together a few technical posts on what’s going on under the hood. Sydney Trains and Ferries is running on Windows Azure and presented some interesting problems, some of which I’m still busy solving.

Stay tuned.

Saturday, 5 February 2011

The future of cloud computing


I like to think I get cloud computing. I like to think I get it pretty well from a philosophical perspective as well as a commercial one. With the mass commercialization of cloud computing underway, the message seems to have been distilled down to “rent your pre-existing configurations on the web, oh and we’ll come up with a scalable store”. Rackspace, Amazon and Microsoft all do exactly that  and they’re selling the vision short.

These ‘first generation’ Cloud services remind me a lot of the anecdote of the first cars. They looked like motorized carriages because that was the prevailing point of reference, no one took the time to re-evaluate the actual problem the carriage solved, removed horse specific requirements and built the car around the engine, not the other way around. I think that’s where cloud computing is currently “Carriage cars”.

There are those that get it. I think Heroku gets it, and subsequently AppHarbor. Funnily enough I think GoDaddy gets it.

Current large scale cloud hosts maintain a billing granularity of one “machine”. They infer that an application requires a machine to run, and subsequently 2 machines for failover. Under certain circumstances that may be true, but for most applications, especially new startups, activity could largely be measured in single digit percentages cpu time, basically putting 2 whole VMs to waste.

In other words, VMs are not a unit of work.

Even these services offering of PaaS fall short of what I consider ideal. They’re basically automated or programmatic ways of provisioning services that would otherwise require IT staff. In other words, it doesn’t abstract away the problem it just turns an IT problem into a programming one.

In the other corner we have Heroku and AppHarbor, and certainly a few I don’t know. Abstract away the hardware completely, there’s no waiting 15 minutes to “spin up a new server”. It works because apps don’t really need VMs. VMs are an easy out for the providers, they’re not good solutions for developers.

Funnily enough that brings me to GoDaddy of all companies. I recently saw they’re offering “4GH” hosting. Basically it’s auto scaling clustered web hosting services. They offer it at entry level prices closer to traditional web sites and my immediate reaction was “exactly”. With IIS isolation and throttling I don’t need a whole VM to run an app. I don’t need two servers for redundancy, the point of clusters is to distribute load. Take a few hundred applications and span them across a dozen servers, that’ll give 90% of users what they want at a fraction of what “cloud” hosting currently costs.