There is of course still a lot of bluster surrounding Cloud Computing, and it will take some time before an agreed to set of definitions comes to light. I particularly like the path that Phil Wainewright is charting though. He’s been commentating on the space since the end of the 90’s and has a “no nonsense” approach I appreciate.
In an effort to simplify the discussion, a recent post of his, “When is a cloud not a cloud?“, begins to define different types of “Clouds” from the perspective of the original cloud - the internet. He lists three different types - Captive Cloud, Public Cloud (AWS, the Xuropa Platform primary cloud provider), and Virtual Private Cloud (a “walled off” cloud within a Public Cloud, like AWS).
The post is worth a read, but he starts to run aground on two points IMO. Firstly, to isolate connectivity as the key defining characteristic is to emphasize what should be a “cost of entry” point, and glosses over real value differentiators (eg. resource management via API). Secondly, he really does himself a disservice when he includes “Captive Clouds” as a type of cloud (even though he was trying to be ironic). We already have a name for that - “datacenter”. A collection of networked servers running something like VMWare behind a firewall is not a “cloud” of any description. It is a datacenter with better hardware utilization than the datacenters of the 90’s. That’s it. To put the word “cloud” in the same sentence as “datacenter” reduces clarity rather than enhances it.

