Thursday, 3 March 2011

Cloud Computing: IT Vapor-trail or [guttering] Pipe-dream?

I was watching the GadgetShow the other week, with Jason Bradburys "Up-coming Tech Top 5", two of which boiled down to what I see as the extremes of cloud computing aimed at the consumer market; IPTV (being the lightest of the two) and remote hosted gaming hardware.

IPTV - ranging from streaming feeds to video on demand it hopes to free consumers from the sluggish, power sapping and space-chewing set-top boxes.
Remote hosted hardware - as a gamer, the concept of not having to upgrade my machine to play the latest games is a nice thought, kind of like the perfect middle-ground between the power of desktop gaming with that of the convenience of the console package.  The graphics crunching is performed off site with the resulting images streamed to my machine, my inputs to the game fed back up the pipe to the hardware.

On the face of it, both are great ideas, but with the same major drawbacks; bandwidth and "acceptable use".  Without a competent broadband infrastructure, cloud services and their consumption (in the UK at any rate) are destined to be not much more than slightly overcast.  While we're talking about bandwidth, what about upload speeds? I have 20mbps connection at home, but can only upload at 256kbs at best.
Suddenly Cloud Computing becomes a very literal term; slow evaporation of water followed by the odd torrent (did you see what I did there?) of rain.
Mobile broadband, byte for byte compared with home connections, is borderline extortion.  So where does that leave us?

Compression, comprssn, cmprsn.

Disk space is so cheap now that if you sneeze too hard you're in danger of uncovering a 1TB drive. It has led to the thinking of "Oooo space! If there's more I can make stuff bigger". The super-sizing if you will of the IT industry.  This view was echoed recently by an industry contact questioning the need for database normalization which was borne, to some extent, of the requirement for minimal database foot print on expensive disk arrays; less joins = faster queries.
If we are to fit in with the constraints of ISPs we have to remember to downsize all our communications (do we really need always-on and if we do, there should be minimal data in an efficient format).  Of course, this isn't entirely bad irrespective technology or medium as this would also improve perceived performance.

Push services
Hand-in-hand with Cloud on the buzz-front is "real-time".  With the advent of HTML5 we have concepts such as server-sent-events and the WebSockets API that may help us, hopefully, to ditch the “noisy” polling method for new data which will be great for browser based solutions.  Classic client / server installations should look towards notification services, like Microsofts SQL Server Notification Services.  At this point I’m struggling for an Oracle equivalent – the closest I stumbled over was Event Delivery Network but this seems fairly closed to all bar Java development.  If I’m wrong, that’s what the comment section is for!

Proper usage
Cloud computing is the current bandwagon of IT - just because we can put something there, it doesn't mean it is the best place for it. Use technology where it works, not just for technologies sake to appear "with it".

In Summary
Effective migration to (and use of) Cloud Computing is not, in my opinion a partial process - in order for it to work we need to embrace it completely, which means making use of its collaborative technologies and communications companies releasing their strangle-hold on internet data transfer.