Cloud Computing Definition
NIST Definition of Cloud Computing
A good starting point for a definition of cloud computing is the definition issued by the U.S. National Institute of Standards and Technology (NIST) September, 2011. It starts with:
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. This cloud model is composed of five essential characteristics, three service models, and four deployment models. (The NIST Definition of Cloud Computing, SP800-145.pdf)
Before getting to the essential characteristics, service models, and deployment models of the cloud model mentioned at the end of the definition, let's pause for a moment and consider this first part of the first sentence. It mentions a shared pool of configurable computing resources. This aspect of Cloud Computing is not new. In fact, it is fair to draw a direct line from time-sharing—that was initiated in the late 1950s and saw significant growth in the 1960s and 1970s—to today's Cloud Computing. Adding to that, however, is the essential characteristic of Cloud Computing known as elasticity. The second part of the first sentence alludes to elasticity by stating there are computing resources ... that can be rapidly provisioned and released with minimal management effort or service provider interaction. (We'll get to service provider later.)
The end of the first sentence of the definition mentions a service provider. In Cloud Computing, the elastic computing resources are used to provide a service. It is unclear how rigorous we should view the term service in this definition. Nevertheless, Cloud Computing is very much involved with the software engineering term service. A service is the endpoint of a connection. Also, a service has some type of underlying computer system that supports the connection offered (in this case the elastic computing resources). See:
The NIST Definition of Cloud Computing lists five essential characteristics of Cloud Computing. It is reasonable to assume that missing any one of these essential characteristics means a service or computing capability cannot be considered as Cloud Computing.
- On-demand self-service. A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.
- Broad 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, tablets, laptops, and workstations).
- Resource pooling. The provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, and network bandwidth.
- Rapid elasticity. Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.
- Measured service. Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Typically this is done on a pay-per-use or charge-per-use basis. Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.
So, Cloud Computing is measured, on-demand, elastic computing using pooled resources, usually on the Internet.
Next, the NIST Definition of Cloud Computing list three service models:
- Software as a Service (SaaS). The capability provided to the consumer is to use the provider's applications running on a cloud infrastructure2. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.More on Software as a Service (SaaS)
- Platform as a Service (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment. More on Platform as a Service (PaaS).
- Infrastructure as a Service (IaaS). The capability provided to the consumer is to provision 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, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls). More on Infrastructure as a Service (IaaS).
Although it is not part of the NIST Definition of Cloud Computing, Network as a Service (NaaS) is sometimes factored out of IaaS. See Network as a Service (NaaS).
These service models need illustrations an further discussion to make them easier to understand. You can find such illustrations and further discussion of these service models in Categories of Cloud Providers.
Finally, the NIST Defintion of Cloud Computing lists four deployment models:
- Private cloud. The cloud infrastructure is provisioned for exclusive use by a single organization comprising multiple consumers (e.g., business units). It may be owned, managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off premises. More on Private Clouds.
- Community cloud. The cloud infrastructure is provisioned for exclusive use by a specific community of consumers from organizations that have shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be owned, managed, and operated by one or more of the organizations in the community, a third party, or some combination of them, and it may exist on or off premises. More on Community Clouds.
- Public cloud. The cloud infrastructure is provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic, or government organization, or some combination of them. It exists on the premises of the cloud provider. More on Public Clouds.
- Hybrid cloud. The cloud infrastructure is a composition of two or more distinct cloud infrastructures (private, 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 for load balancing between clouds). More on Hybrid Clouds.
Like the service models, these deployment models need illustrations and further discussion. You can find such illustrations and further discussion of these deployment models in Types of Clouds in Cloud Computing.
Cloud Computing Commentary
The "cloud" in Cloud Computing likely came from the common use of a cloud symbol for the Internet that, in turn, was derived from the use of cloud symbols comonly used in general telecommunication diagrams pre-dating the Internet.
The term Cloud Computing can be sometimes useful and sometimes misleading because people seem to think they understand the meaning of the term even when they don't. To illlustrate the use of the term, someone I know told me of a meeting where he was explaining virtual private servers to group of non-technical people. The group was having trouble understanding some of the most basic concepts. He finally gave up and told the group that the servers were "in the Cloud." At that point, everyone in the group brightened and said they now understood. But they really didn't understand. They just thought they did because they thought they understood term Cloud Computing. But, in all likelihood, they did not understand that either. The presenter in this story was not trying to mislead people when he resorted to using "the Cloud" to help explain what he was discussing. Nevertheless, you may find intentional attempts to mislead if "Cloud" is added to products and services when those products and services really do not involve Cloud Computing. The term for this is cloud washing.
More on the general topic: Cloud Computing Articles
- Cloud Computing Explained
- Web Services and Cloud Computing
- Service-Oriented Architecture (SOA) and Cloud Computing
- Types of Clouds in Cloud Computing
- Cloud Computing Categories
- Cloud Computing Governance
- Cloud Computing FAQ
- Cloud Computing Article Suggestions