I have found myself talking about cloud services a lot recently. We have been talking about them here — there is an obvious synergy between what we do at Digipede and cloud services. And I’ve been talking about them externally too: at the recent CloudCamp, on the Gillmor Gang, and in all sorts of other interesting contexts.
Note that I refer to cloud services, not to the cloud. I am not interested in defining cloud as a term, because I don’t think it very useful. For those of us in the distributed computing space, cloud is the latest buzzword to compete with the word grid in terms of utter ambiguity. I think the ship has already sailed on this one and I’m not going to try to call it back.
So, everyone is talking about cloud services and much of the conversation centers on understanding them and how they are changing the landscape. Of course, cloud services are not one thing. I find it helpful to think about them as parts of a continuum. This seems useful regardless of the technical level of the people with whom I’m speaking.
The diagram to the right shows this continuum from infrastructure to platform to software. Brief definitions of these parts are:
- Infrastructure includes provisioning of hardware or virtual computers on which one generally has control over the OS; therefore allowing the execution of arbitrary software.
- Platform indicates a higher-level environment for which developers write custom applications. Generally the developer is accepting some restrictions on the type of software they can write in exchange for built-in application scalability.
- Software (as a Service) indicates special-purpose software made available through the Internet.
I have indicated several companies that play at different parts of this stack. This list is not comprehensive nor does it attempt to represent motion across the stack.
One scenario in which I find myself talking about the continuum is when people equate Amazon EC2 with Google App Engine. EC2 is a flexible / scalable virtual hosting platform with provisioning APIs. It allows you to dynamically scale the number of instances of your OS (i.e., Linux). What you do with those instances is up to you. Google App Engine operates at a much higher level in the stack. It is a new software platform with specific APIs. It requires developers to build for this specific platform. yes, they are both in the cloud, but they are very different services.
Another scenario in which the continuum is useful is in thinking about what vendors and new entrants might be up to. The continuum makes one thing even more clear: many vendors that operate higher in the stack are relying on their own internal lower-level infrastructure or platform. This begs some questions: which vendors will expose lower-level interfaces? And of course, which vendors will move up the stack?
- SalesForce is already moving down with their PaaS offering.
- Any chance Google will expose its infrastructure stack? I doubt it, but I do expect them to move down a little.
- Some of the readers of this blog probably know better than I where Amazon and Microsoft are planning to go.
Yet another way it is useful is in comparing vendors inside of a particular category. Maybe I’ll write more on that later.
Is the continuum obvious? Using the definition of obvious from patent law, yes, but I think it a useful paradigm.