I purchased a cloud. Did you? Wait. What is a cloud?

Tuesday, April 14, 2009

Reality Television Shows

Buzzwords are a lot like reality television shows. Every time one is canceled, two more take its place. You know what else they have in common? They lack originality. They are just putting on a new face.

Zombie Viruses

Actually, buzzwords are a lot like zombie viruses too. Somewhere in a secret lab, a vendor and a research analyst are splicing buzzwords looking to create a more perfect buzzword. Then they go to a conference and discretely drop the buzzword. Next thing you know, you’re holed up in bar with a Winchester picking off evangelists one at a time.

For me, it is being holed up in an IRC channel along with my friends/colleagues and other prominent members of the Java community. I thought I was safe. Then, I see that some of them have actually been infected. The Winchester will suffice for now, but I may need to go sawed off, double barrel style soon.

I guess that means a buzzword is a lot like a reality television show featuring zombies.

Undefined

The thing that really bothers me is when a buzzword is coined, but not defined. Apparently it is an abstract concept that is simply too broad in scope to define. Are you kidding me? Whenever I suggest that a buzzword represents an existing concept or an aggregate of existing concepts, an evangelist tells me that I’m wrong and then proceeds to start talking in gibberish. Seeing as I can’t interpret gibberish, I’m told that I simply do not ‘get it’.

Cloud Computing

Let’s take a look at the latest outbreak. Cloud Computing. Come on, say it together…

“In the Cloud.”

I know, I know. I’d rather shoot myself in the head with a nail gun than have to listen to someone repeat that phrase again.

So what is cloud computing?

Wikipedia

“Cloud computing is a style of computing in which dynamically scalable and often virtualised resources are provided as a service over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure ‘in the cloud’ that supports them.”

This is an adequate definition of utility computing, but we are looking for a definition of cloud computing. One approach to defining cloud computing is to describe utility computing but then say that it is not actually utility computing.

Shortly after, this entry mentions IaaS, PaaS, and SaaS. And for good measure, it tosses in Web 2.0 and other unnamed (buzzwords are still incubating) technologies. I guess you just toss the ingredients into a crock pot and wait. Come back 8 hours later and your enterprise IT solution is ready.

Finally, they say that the term cloud is actually a metaphor for the Internet and that this whole cloud computing thing is about relying on the Internet for the computing needs of users. Wow! What a breakthrough! I never thought about using this so called Internet for computing, and I definitely never thought about using it to perform computing for its users. So, if I understand this correctly, the Internet has computers and it has users? When used together, you can use the computers to do computer ’stuff’ for the users? Sweet.

Distinguishing Cloud Computing from Utility Computing

“For those of us who aren’t totally up to speed on the difference, can you summarize the difference between utility computing and cloud computing (in 75 words or less)?

Lynn: That would be analogous to trying to talk about the differences between electricity and a generator. So, I prefer talking about how one relates to the other, rather than the differences.”

Classic. You know you have a problem when you have to side step the issue of defining the buzzword.

“Cloud computing enables users and developers to utilize services without knowledge of, expertise with, nor control over the technology infrastructure that supports them. It is, almost literally, operating the service in a cloud. That’s a good thing, because many companies lack the ability or desire to work with infrastructure. Utility computing, conversely, provides on-demand infrastructure with the ability to control, scale, and configure that infrastructure. At 3tera, we believe that a utility is necessary in order to build a reliable cloud.”

Someone hand me the nail gun. Seriously. I’m not even sure where to start here. What does ‘utilize’ mean? Are we talking about developing services, or are we talking about consuming them? As consumers of services, we have never been interested in their technical infrastructure/implementation. That is the whole point of services. As a developer, I don’t necessarily need to have a technical understanding of the infrastructure. It certainly helps, but it is not required. If the code is well written, it is portable. It makes no difference whether it is deployed to Tomcat or JBoss. It makes no difference whether the application is clustered or not. What is this ‘operating the service in a cloud’ business? Just because the code has been abstracted from the infrastructure, the services are ‘operating in a cloud’? In that case, every service ever written is ‘operating in a cloud’.

How Cloud & Utility Computing Are Different

“The big news is for application developers and IT operations. Done right, cloud computing allows them to develop, deploy and run applications that can easily grow capacity (scalability), work fast (performance), and never — or at least rarely — fail (reliability), all without any concern as to the nature and location of the underlying infrastructure.”

Once again, we see an adequate definition of utility computing. Once again, that is it.

Ah, Yes. How To Define Cloud Computing…

“Cloud computing describes a systems architecture. Period. This particular architecture assumes nothing about the physical location, internal composition or ownership of its component parts. It represents the entire computing stack from software to hardware, though system boundaries (e.g. where does one system stop and another begin) may be difficult to define. Components are simply integrated or consumed as need requires and economics allow.”

First, take away the infrastructure. Then, take away the software architecture. Finally, lose the system boundaries because they are difficult to define anyways. Done. What are you left with? Anyone? So is the cloud architect merely responsible for selecting a utility computing service? Is that what this is all about?

The author then goes on to say (more or less) that cloud computing is deploying service oriented applications to a utility service. Well, at least this is not gibberish. However, according to that definition, cloud computing itself does not provide any added value. It is simply bundling two buzzwords together in the same package. In my opinion, that repackaging does not count as innovation.

Conclusion

Okay, the title was misleading. Amazon EC2? Go for it. I would.

I’m a fan of utility computing. I think it is a truly novel idea, and that it will have a significant impact on the future of enterprise IT.

My issue is with the buzzwords, and the people who evangelize them.

A buzzword is not an architecture. It is not a solution. You can’t just purchase a product thats been stamped with a buzzword and expect to call it a day.

You need an architect. You need a problem solver. You need developers.

IT is something you do, not something you buy.

So until next time, good fight, good night.

Top