I just read a post on another blog that spoke about the definition of cloud being “an application-centric approach to IT.” I was really floored by how much I think this definition really misses the mark. And that got me thinking. What is a good definition of cloud? As I did my research I came across this article at Cloud Advocates that claims there are 27 different definitions for cloud computing! Yikes! If we are all going to understand cloud and receive maximum benefit from the cloud, shouldn’t we all agree on the same definition? At least that would be a good starting point for further exploration. Perhaps as a starting point we should look at the national institute of standards version, which they released last month:
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
I have really come to like this definition. The folks at NIST have once again hit the nail on the head.It handles IaaS (servers, storage and networks), as well as PaaS and SaaS clouds (applications and services). It is also accurate and appropriate for public, private, hybrid and even community clouds. In fact, I cannot think of a single use-case for cloud that this definition does not cover.
Back to the “application-centric approach to IT” definition. Applications are in fact a part of cloud. That is true. But, if we are going to shorten the definition of cloud down to a couple of words, shouldn’t the word “application” be “services”? After all, Salesforce and other PaaS clouds are many applications but ordered as one “service.” And if IT just presents applications to users, how would users know how to put them all together into a “service”? For example, would I (as a user) order the “exchange” application only to find out that I needed to order DNS, DHCP and maybe even a client too? No. I would or should order the “email service” which includes all the applications and interfaces necessary to get me my email, bundled into one service that meets or exceeds my business needs.
And how does this short definition handle something like PaaS clouds, which include editors, compilers, versioning systems, etc? What about something like Amazon Mechanical Turk from AWS (which really isn’t an application at all, but is in fact, covered by the NIST definition).
I prefer to think of cloud as a “service-centric operations model” where IT working in conjunction with business users defines and appropriately sources services that meet the business needs of its users,and then makes them available to users on demand in a pay-per-use model. But let’s face it, this definition is not as elegant or even as accurate as the NIST definition. So when I have more than 10 seconds in front of a customer, I’m going to use the NIST definition. In my humble opinion it’s the one we all should be using. After all, a common understanding of the subject we are talking about is really the only way to progress towards understanding the benfits, the use cases and the best migration path towards cloud.