Cloud ComputingThis one goes out to all my geek peeps. Word to your mutha.

For about a year now,  I have been hearing/reading the phrase “Cloud Computing” shoved down my throat flashed unashamedly from top vendors everywhere: Microsoft, Novell, VMWare (particularly VMWare) and Cisco. As a matter of fact, it’s hailed as nothing less than revolutionary, kind of like, as John Stewart has humorously referred to as, vendors “talking about it while hiding an erection.”

Let me give you the best definition I have seen of Cloud Computing, and believe me, I’ve seen a bunch:

Cloud Computing – An approach to computing that leverages the efficient pooling of on-demand, self-managed virtual infrastructure consumed as a service.

Now, that’s all fine and dandy, but I have really struggled with this Cloud Computing thing since I first grasped the concept.

The struggle for me is that I didn’t think it was a big deal (I still don’t . . . sort of). I kept asking myself, “Am I missing something?” Cloud Computing, to me, looks conspicuously like a fancy-schmancy phrase for virtualization, which is nothing new. I have been using virtualization professionally for a little over 4 years now. So, I just don’t understand the hype.

I am not alone in this. Most of my peers have felt the same way, and they just wave their hand at it and affectionately tell me to STFU about it and move on. But, me being the analytical type, I have been on this quest, until recently, to find out what the hype is about Cloud Computing.

In my profession I go to a lot of vendor events. I run into company insiders all the time. I have asked Vendor Engineers (who shall remain anonymous) to give me an example of Cloud Computing. Goes like this:

ME: Can you give me an example of Cloud Computing that makes it different from Virtualization?
Vendor Dude: Sure. You can pool resources together for instant scalability.
ME: That’s virtualization. I’m asking about cloud computing.
Vendor Dude: (looking perplexed) OK. You can utilize your SAN for centralized storage of Virtual Machines for ease of provisioning.
ME: That’s virtualization. I’m asking about cloud computing. What makes cloud computing different?
Vendor Dude: Hmm. Not sure what you mean.

/facepalm

I recently came to a revelation about it at the most recent VMWare Forum I attended.

I’m not fucking missing anything.

Cloud Computing = Virtualization

Now, that isn’t completely true when I say that; I did find a minor difference, but not enough that it isn’t going out on a limb to say that.

Now that we’ve established that, here’s my take on Cloud Computing:

  1. I know I’m bragging when I say this, but the reason why I didn’t see the significance is that I am ahead of the curve in my career. Those of us who have been doing virtualization for a while, have already been using cloud computing for a long time now. Hence we’re so close to it we don’t see the difference.
  2. Cloud Computing is mostly a mind shift in how IT is designed, not a new technology. Most of the technology behind cloud computing has been around for years.
  3. “Cloud Computing” is also a marketing term for CXO’s who don’t understand virtualization. I think vendors got so sick and tired of trying to explain virtualization, they had to change their marketing approach. We all know how much CXO’s love cheesy catch phrases. Think about it, have you ever tried to explain enterprise virtualization to someone who doesn’t even understand the basics of how an Operating System works? But put it into a cheesy catch phrase like “Cloud Computing”, make the symbol for it look like the internet, and talk about the business benefits like, “Instant scalability without additional cost” and they’ll start listening.

But, there are a couple of subtle differences between virtualization and the ultimate goal of cloud computing, meaning virtualization as a means to an end to bring about:

  1. A change in how an “Operating System” will function. It is my prediction that in 5-8 years, what we currently know as an Operating System will be vastly different. OS’s will be far more special purpose, suited to the Application that runs on it. This is already accomplished through pre-built Virtual Machines, but we’re going to see that become far more streamlined. Or, applications will run as detached from an underlying operating system.
  2. User self-management. Currently, setup is done by admins at the request of users. We get a list of all the shit the users need called a “User Requirement Document”, we then go into some dark room and build the infrastructure accordingly. Instead, with cloud computing, we’ll pre-build everything and have it “lie dormant” so to speak on a set of virtualized servers somewhere (hint-hint “the cloud”), provide the users with a web-based interface, and they’ll tick off check boxes of the features they want, click submit, and the cloud will enable these features on the back-end in an automated fashion. That’s the software-as-a-service (SaaS) part of Cloud Computing.
  3. Further ease of large scale deployments. This is more of an evolutionary concept than the previous two points. This is already accomplished through a bunch of pretty technical concepts like primary data deduplication on the SAN, and automated deployment tools. I have seen enterprise environments that can roll out 500 virtualized desktops and the user accounts that go with them in 8 minutes. This will become a lot more mainstream as the technologies mature.

So there you go, you now have some cool catch phrases and acronyms with which you can impress people at parties. Don’t ever say that GUAC isn’t informative. :)