Thursday, September 16, 2010

The Cloud Doesn't Exist

Recently a coworker of mine told me how her dad had said that the next big thing to invest in was The Cloud and she wanted to know what it was all about.  My immediate reply was "it's rubbish!"  Followed by "marketing run amuck," and finally "well it's actually really cool but…"  In the end I think I managed to convey what it actually was, what the marketers were using the catchy little phrase to mean and how it would be difficult to invest purely in cloud computing.

The main problem is that when the cloud computing hype matured into a buzzword every tech related business tried to fit it into there marketing campaign.  At first I was pretty sure The Cloud was the new term for the internet, the same way Web 2.0 was the slightly more interactive version of the web.  Google invited you to store your documents and photos in The Cloud and you can keep storing your email there too.  Amazon got into it with their S3 which allowed you to backup to The Cloud.  Oh and of course Microsoft, a little late to the game, came out with OfficeLive, which is their version of Google Apps, which was competing with good old Microsoft Office. (anyone else feel like Microsoft always wants the toy the other kid is playing with?)  Anyway, none of these companies are really lying.  All of these services are running on a cloud, and you could say you are storing your documents in a cloud but the terminology defines more the infrastructure their services are running on, not some new version of the internet.  Really what they are selling is Software as a Service (SaaS) which happens to be on a cloud.  The problem is Software as a Service or SaaS isn't sexy or catchy, although the two a's are kinda cute to a geek.

Cloud computing uses virtualized servers, storage and networking for quicker allocation of resources, easier deployment and increased efficiency.  This really isn't as confusing as it sounds.  You may have seen the same technology on a recent switcher's mac if they just couldn't live without minefield.  Virtualization allows you to run windows (or any other OS) in a window on another operating system, almost like an application.  Do you remember DOS? Well in DOS you could generally only run one application at a time.  Eventually Windows matured and you could run multiple applications at the same time which was a huge step.  Virtualization is another huge step with which you can run multiple operating systems on the same machine almost as easily as opening an application.  You can also duplicate an operating system and all of its applications almost as easily as copying a file.  The storage that these servers run from and use are a separate, easily expanded entity.  This may not seem all that useful to a normal user but if you are running a datacenter, no matter how small, then this is epic.  It creates more flexibility and less waste.  Instead of having 10 separate servers all with a spare 100 GB of disk space (just in case) that only generally use 10% of their processor (but sometimes need the full 100%) you can now share 1 processor and consolidate all of your disk use to one pool of disks which is easily upgraded in the future.  Instead of every machine having 100 GB spare space you can have maybe 200 GB spare space shared.  This means way less infrastructure and hardware costs.  Since the OS is as easily moved as an application if one of your super servers go down then you can easily move it to a working super server until the other one is repaired or replaced.

The Cloud actually doesn't have anything to do with the internet, I have a private cloud running locally at my work as do many companies.  All of our servers are on there and all of our user's data is stored on it.  The term "The Cloud" doesn't make sense, there are many clouds all over the world, some are accessible through the internet and some are private.  The confusion about cloud computing can be blamed on the marketing machine.  Day to day users should never have heard the term, because if everything is working right then they wouldn't even know that they were working on a cloud.  If you want a dry, detailed definition then head on over to here: