Cloud Computing - A practical guide for the common user

2011-05-01 Software-Engineering Cloud-Computing Thoughts

These days (and especially after the Amazon EC2 outage :)) everybody is talking about cloud computing. It seems you cannot be sexy, if you do not "live" in the cloud. But most of the more "common" users (and for the sake of the discussion, I am including myself in that group) probably think that cloud computing and using "the cloud" is something that enterprises use to (potentially) safe cost and also to (potentially) gain flexibility.

The first observation is that there is a fair amount of confusion about what cloud computing is. The reason is that everybody is latching on to the buzz and is using the word cloud to make the product or the service at hand look more trendy.

To bring order to the chaos you could probably say that there are three categories of cloud computing solutions:
  • Data Clouds - Give access to a large amount of disk space and allow the disk space to be shared between a (potentially) large number of users (e.g. DropBox)
  • Computing Clouds - Give access to large amount of computing (CPU) and hardware power in general (including main memory, disk space and in most cases a/the operating system) to run whatever application you want to run (e.g. Amazon EC2)
  • Services/Application Clouds - Give access to ready-to-run/ready-to-use services/application to solve a specific problem (e.g. Google Mail (running a mail server for you), GitHub (running a source code repository for you), SalesForce.com (running a CRM for you))
So question becomes, why is this important or relevant to a/the common (means non-enterprise) user? For me personally I get two benefits out of it: I use "cloud computing" as a (you could call it) "poor-mans backup solution" and also as an "information sharing/syncing solution". Specifically I am using ...
  • Google Mail/Calendar - to "host/store" all my email folders, contacts and my personal calendar
  • DropBox - to store all my files (including picture and music libraries)
  • GitHub - to store all my source code
Syncing the data is kind of automatic and there is always an offline version of the data available, which gives me very good protection against disk failures (but on top of that I am also running a TimeMachine backup (better safe than sorry :))), means in case of a disk failure, I can install an IMAP email client, a DropBox client and Git on a new piece of hardware and I am up and running again in no time.

The second value is information sharing. By now I have 3 devices (laptop, tablet, phone) and need to share/sync data between the devices and my wife got a laptop and a phone too and I also need to share/sync information with her (especially my source code :)). Having the data/information available in "the cloud" makes that syncing/sharing exercise straight forward (will publish a blog post on how to share/sync music using DropBox in due course).

Buttom line: "Cloud computing" is not only for enterprises :).