This taxonomy is far from perfect, but I think it does a good job of separating out the different types of clouds out there. Michael Sheehan from GoGrid was one of the first to publicly illustrate the cloud taxonomy with a pyramid (and I think he’s trying to apply for a trademark on it :-). (Image to the right stolen from Michael!)
As provider of a cloud platform, I am frequently called on to differentiate between cloud platforms and cloud infrastructure. Anyone who has used both Amazon EC2 and Google App Engine groks the difference between these two concepts, so I tend to use those offerings to illustrate the difference.
It’s really all about level of abstraction. And this translates directly to the end-user experience. With cloud infrastructure like Amazon EC2, the central theme is the virtual server. The user is (sometimes painfully) aware of the number and type of servers/virtual machines that they have running and management is done by individually logging in to each server, e.g. via SSH. Note that the user doesn’t know things like the brand and physical location of the servers, nor does the user expect complete or exclusive control of the machine. Those are all things that contribute to making the relationship cloud-like.
On the other hand, consider the end-user experience with App Engine. The central theme is really the application itself. The user develops their application and with a single invocation of a command-line tool, packages and deploys the application to the cloud. The platform takes care of actually deploying the application to the right machines, based on policy, utilization or whatever. The user never logs into an individual server. The don’t even know at a given point in time how many machines their application is deployed out to. The platform takes care of all of that, plus provides APIs and services to the applications themselves. (Much of this is true for Appistry EAF as well, but the model is very different from App Engine.)
I’ve got some slides I use to elaborate on the distinction between the layers. Please take a look and let me know what you think:
Stephen O’Grady wrote up a nice post back in November called Cloud Types: Fabric vs Instance, where he described the Platform and Infrastructure layers as Fabric and Instance respectively. (Fabric has a nice ring to it, for obvious reasons 🙂 He has a nice description of each that is worth checking out.