There is a continuous debate surrounding THE definition of cloud computing.
Is
it just another name for Virtualization? Is it a “re-packaging” of Grid
Computing? Or is it just the familiar hosting services we know and love
with an additional (and more sophisticated) layer of automation?
To
be honest – I think it will be very hard to finalize this debate
conclusively by just sticking to high-level terminologies. As technical
folks we often tend to dive into technical debates and in the course of
doing so, we loose sight of the reasons that brought up this debate in
the first place. The discussion about the definition of cloud computing
is no exception.
Instead of continuing the endless debate,
I thought that taking an end-user view would be much simpler to agree
on. Here is a snippet from a response that I gave on one of the recent
threads on the cloud mailing list: Is "Internal Cloud" an oxymoron? that tries to address this question:
1. On demand computing i.e. the ability to get a resource when I need it in matters of minutes.
2. Pay-per use i.e. the ability to pay only for what I use.
The rest is implementation detail. From an end user perspective it doesn't matter that much if I can get the above value from an internal or external cloud.
In my view what we’ll see in the near future is a hybrid-cloud i.e. local-IT + Internet Cloud. A typical scenario would be to run testing on
public cloud and production internally. There are many other scenarios that justify this type of hybrid model.
In the long run, the only real question about internal clouds is whether local-IT would be able to compete with the cost and level of service of the public cloud. In my mind, this is where economies of scale play a critical role (See James Liddle’s recent blog: The Economics of Cloud ). i.e. the bigger the data-center is, the higher the chance that the cost and level of service will be better.
It may very well be that over time, the public clouds will become the only option. Just like electric energy. In fact just like electric energy, there will be those who will “generate” their own power, but will develop it as a hybrid. Sometime they pull resources from the public “utility”, while at other times they use their own “utility”.
This thinking was later enhanced by Miha Ahronovitz in his response on another thread here.
Understanding the cloud-stack by analogy
Another way that I found useful when I need to explain the cloud-stack is by analogy to the existing application stack:
The above diagram is a very simplified view of the world. It explains
(without too many words) the analogy between today's world, which
consists of dedicated resources per application, to the cloud world,
which consists of a virtualized pool of resources. As can be seen in
this diagram, Applications morphs into Software-as-a-Service,
Middleware morphs into Platform-as-a-Service and Operating-System,
Hardware and Network morphs into Infrastructure-as-a-Service.