Cloud computing allows for on-demand access to a shared pool of computing resources (networks, servers, storage, etc.) that can be rapidly deployed then taken down remotely and with little management overhead.

The cloud computing model defined by the National Institute of Standards and Technology (NIST) in Special Publication (SP) 800-145 is composed of five Essential Characteristics, three Service Models, and four Deployment Models.


Essential Characteristics

The five essential characteristics of cloud computing are:

  1. On-Demand Self-Service
  2. Broad Network Access
  3. Resource Pooling
  4. Rapid Elasticity
  5. Measured Service

On-Demand Self-Service

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.

- NIST SP 800-145, https://csrc.nist.gov/pubs/sp/800/145/final

A customer must be able to use the service (or stop using the service) freely without without actual human interaction with the service provider e.g. through a website.

Broad Network Access

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).

- NIST SP 800-145, https://csrc.nist.gov/pubs/sp/800/145/final

The service is available through standard network connections, such as the Internet, and can be accessed from a variety of devices.

Resource Pooling

Resource pooling

The provider’s computing resources are pooled to server 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 general 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.

- NIST SP 800-145, https://csrc.nist.gov/pubs/sp/800/145/final

A pool of resources is provided, and the resources to fill any given customer request are allocated from the shared pool.

The customer does not have any knowledge or control over which particular resources they are allocated beyond some very broad decisions, such as general geographic region.

Rapid Elasticity

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.

- NIST SP 800-145, https://csrc.nist.gov/pubs/sp/800/145/final

Customers can expand or shrink the resources they have allocated to them seamlessly. The pool of resources available appear almost infinite.

Measured Service

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). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.

- NIST SP 800-145, https://csrc.nist.gov/pubs/sp/800/145/final

The service provider measures customer usage of cloud resources, and the customer can view these measurements as well. Customers are charged based on usage.


Service Models

In cloud computing, rather than a customer buying hardware, setting it up, installing a hypervisor, etc., the service provider offers all of this as a service.

The three main service models defined by the NIST are

  1. Software as a Service (SaaS)
  2. Platform as a Service (PaaS)
  3. Infrastructure as a Service (IaaS)

Software as a Service

Software as a Service (SaaS)

The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. 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.

- NIST SP 800-145, https://csrc.nist.gov/pubs/sp/800/145/final

Microsoft Office 365 and Google Workspace are common examples of Software as a Service.

Platform as a Service

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.

- NIST SP 800-145, https://csrc.nist.gov/pubs/sp/800/145/final

Examples include AWS Lambda and Google App Engine

Infrastructure as a Service

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 possible limited control of select networking components (e.g., host firewalls).

- NIST SP 800-145, https://csrc.nist.gov/pubs/sp/800/145/final

Examples include Amazon EC2 and Google Compute Engine.


Deployment Models

There are four deployment models for cloud computing:

  1. Private Cloud
  2. Community Cloud
  3. Public Cloud
  4. Hybrid Cloud

Private Cloud

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.

- NIST SP 800-145, https://csrc.nist.gov/pubs/sp/800/145/final

Private clouds are generally only used by large organizations. Although the cloud is private, it may be owned by a third party.

Private clouds may be on or off premises (yes, cloud computing can be on-premises). Private clouds can offer the same services (SaaS, PaaS, & IaaS) as public clouds, but for a private org.

Community Cloud

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.

- NIST SP 800-145, https://csrc.nist.gov/pubs/sp/800/145/final

This is probably the least common cloud deployment. It’s similar to private cloud in the services that it provides, although it is reserved for use only by specific organizations.

Public Cloud

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.

- NIST SP 800-145, https://csrc.nist.gov/pubs/sp/800/145/final

By far the most common cloud deployment, public cloud services are offered by many companies such as Amazon/AWS, Google, Microsoft (Azure), IBM, and many others of various sizes.

Hybrid Cloud

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).

- NIST SP 800-145, https://csrc.nist.gov/pubs/sp/800/145/final

Any combination of the previous three deployments. An example is a private cloud that can offload onto a public cloud when necessary.


Benefits of Cloud Computing

  • Cost
    • While cloud computing certainly isn’t free, it converts the price of network computing from capital expenses (buying hardware and software) to recurring operating expenses (a monthly fee, in many cases).
    • For many organizations, cloud computing can result in a net reduction in operating costs; especially for projects that need large amounts of computing resources for short relatively short amounts of time.
      • Of course, this varies widely on a case-by-case basis.
  • Global Scale
    • Cloud services are easy to scale at a rapid pace, and they are easy to set up in nearly any location in the world from any location in the world.
  • Speed/Agility
    • Services are provided on demand, and vast amounts of resources can be provisioned within minutes.
  • Productivity
    • Cloud services remove the need for many time-consuming tasks such as procuring physical servers, racking them, cabling, installing and updating operating systems, etc.
  • Reliability
    • Backups in the cloud are very easy. Data can be mirrored at multiple sites in different geographic locations to aid disaster recovery.

Note

These are potential benefits. Not all organizations will get the absolute most out of cloud computing at all times. Most companies that use cloud services use them in conjunction with local services.

Whether or not a particular organization uses cloud computing should be an intelligent and informed decision, not one made purely because cloud services are popular.