On the Draft NIST Working Definition Of Cloud Computing…
How many of you have seen the Draft NIST Working Definition Of Cloud Computing? It appears to have been presented to government CIO’s at the recent Federal CIO Cloud Computing Summit in Washington DC last week.
I saw the draft NIST Working Definition of Cloud Computing shown below (copied from Reuven Cohen’s blog) about a month and a half ago, but have not seen it presented in its entirety outside of the copy I was sent until now and didn’t know how/when it would be made “public,” so I didn’t blog directly about its content.
The reason I was happy to see it when I did was that I had just finished writing the draft of the Cloud Security Alliance Security Guidance for Critical Areas of Focus In Cloud Computing — specifically the section on Cloud architecture and found that there was a very good alignment between our two independent works (much like with the Jericho Cloud Cube model.)
In fact, you’ll see that I liked the definitions for the SPI model components so much, I used them and directly credited Peter Mell from NIST, one of the authors of the work.
I sent a very early draft of my work along with some feedback to Peter on some of the definitions, specifically since I noted some things I did not fully agree with in the deployment models sections. The “community” clouds seem to me as being an abstraction or application of of private clouds. I have a “managed cloud” instead. Ah, more fuel for good discussion.
I hoped we could have discussed them prior to publishing either of the documents, but we passed in the ether as it seems.
At any rate, here’s the draft from our wily Canadian friend:
4-24-09
Peter Mell and Tim Grance – National Institute of Standards and Technology, Information Technology Laboratory
Note 1: Cloud computing is still an evolving paradigm. Its definitions, use cases, underlying technologies, issues, risks, and benefits will be refined in a spirited debate by the public and private sectors. These definitions, attributes, and characteristics will evolve and change over time.
Note 2: The cloud computing industry represents a large ecosystem of many models, vendors, and market niches. This definition attempts to encompass all of the various cloud approaches.
Definition of Cloud Computing:
Cloud computing is a pay-per-use model for enabling available, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is comprised of five key characteristics, three delivery models, and four deployment models.
Key Characteristics:
- On-demand self-service. A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed without requiring human interaction with each service’s provider.
- Ubiquitous network access. Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
- Location independent resource pooling. The provider’s computing resources are pooled to serve all consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. The customer generally has no control or knowledge over the exact location of the provided resources. Examples of resources include storage, processing, memory, network bandwidth, and virtual machines.
- Rapid elasticity. Capabilities can be rapidly and elastically provisioned to quickly scale up and rapidly released to quickly scale down. To the consumer, the capabilities available for rent often appear to be infinite and can be purchased in any quantity at any time.
- Pay per use. Capabilities are charged using a metered, fee-for-service, or advertising based billing model to promote optimization of resource use. Examples are measuring the storage, bandwidth, and computing resources consumed and charging for the number of active user accounts per month. Clouds within an organization accrue cost between business units and may or may not use actual currency.
Note: Cloud software takes full advantage of the cloud paradigm by being service oriented with a focus on statelessness, low coupling, modularity, and semantic interoperability.
Delivery Models:
- Cloud Software as a Service (SaaS). The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure and accessible from various client devices through a thin client interface such as a Web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
- Cloud Platform as a Service (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created applications using programming languages and tools supported by the provider (e.g., java, python, .Net). The consumer does not manage or control the underlying cloud infrastructure, network, servers, operating systems, or storage, but the consumer has control over the deployed applications and possibly application hosting environment configurations.
- Cloud Infrastructure as a Service (IaaS). The capability provided to the consumer is to rent processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly select networking components (e.g., firewalls, load balancers).
Deployment Models:
- Private cloud. The cloud infrastructure is owned or leased by a single organization and is operated solely for that organization.
- Community cloud. The cloud infrastructure is shared by several organizations and supports a specific community that has shared concerns (e.g., mission, security requirements, policy, and compliance considerations).
- Public cloud. The cloud infrastructure is owned by an organization selling cloud services to the general public or to a large industry group.
- Hybrid cloud. The cloud infrastructure is a composition of two or more clouds (internal, community, or public) that remain unique entities but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting).
Each deployment model instance has one of two types: internal or external. Internal clouds reside within an organizations network security perimeter and external clouds reside outside the same perimeter.
Now, Reuven Cohen mentioned on his blog:
In creating this definition, NIST consulted extensively with the private sector including a wide range of vendors, consultants and industry pundants (sic!) including your (sic!) truly. Below is the draft NIST working definition of Cloud Computing. I should note, this definition is a work in progress and therefore is open to public ratification & comment. The initial feedback was very positive from the federal CIO’s who were presented it yesterday in DC. Baring any last minute lobbying I doubt we’ll see many more major revisions.
…which is interesting, because for being “…open to public ratification & comment,” I can’t seem to find it anywhere except for references to its creation as a deliverable in FY09 in a presentation from December, 2008. I searched NIST’s site, but perhaps I’m just having a bad search day.
Clearly at least I have a couple of comments. I could send them to Peter directly, but I’d rather discuss them openly if that’s appropriate and there is a forum to do so. At this rate, it looks as though it may be too late, however.
/Hoff
Yes, we (read I) saw and comment on the draft. NIST were very open-minded and we shared some thoughts. I'm sure that different vendors/thought leaders will have different ideas thus there's a need for such a feedback process. I am not sure that **early** public discussions are always good, since the feedback can be too wide and not pointed enough. Do you think that it is wrong?
@Sharon Besser
Thanks, Sharon.
In terms of your question, my answer is "Nope, not at all. " We had the same challenge with the CSA draft. I'm just responding to the fact that I haven't seen it anywhere since it was sent to me a month+ ago and it doesn't seem to have been updated…yet it's being presented to CIO's for comment at a government summit.
The ONLY reason that makes me nervous is that some of the definitions could use some (in my opinion only) smoothing…and if what Reuven says is true about his doubts regarding further revision, it's a bummer.
I'm simply interested in the process. I very much respect the NIST team's work (obviously) I was just surprised to have to find it posted on Ruv's blog instead of on NIST's.
/Hoff
10x for the clarifications.
BTW, I am also "guilty" of blog commenting when the subject is close and dear to my heart. Heres the PII example.. http://blog.imperva.com/2009/03/feedback-on-nist-…
The 'pay-per-use' bit is a canard, and it's too wordy by far, and gets too much into cases.
Cloud computing:
A general-purpose, multi-tenant information processing model in which modular, pooled, and dynamically scalable computing, storage, networking, application, and service resources are represented to users and developers as a unitary system, logically abstracted from the underlying physical infrastructure and featuring a common set of APIs, client access mechanisms, and administrative/management functions.
BTW, the NIST site i shttp://csrc.nist.gov/groups/SNS/cloud-computing/
I have a client who has a need to expand his cloud computing application, hardware and sofwtare combination. I am looking for data on the industry and I need a proper SIC code or NAISC code in order to obtain that info. Does anyone have a way for me to nail down the proper codes or do you have them, thanks.