Cloud computing

Cloud computing is a computing model that enables on-demand access to a shared pool of configurable computing resources (eg. networks, servers, storage, and applications) that can be rapidly provisioned and released with minimal management effort. The definition most widely cited is the one published by the US National Institute of Standards and Technology (NIST) in Special Publication 800-145, which frames cloud computing in terms of five essential characteristics, three service models, and four deployment models.

Cloud computing is effectively a synonym for data center based computing delivered over high-bandwidth networks. It is closely connected to virtualization, the technology that lets many customers share the same physical hardware in isolation from one another.

In many ways, modern cloud computing is a return to the roots of computing. In the 1960s, mainframe computers provided computing power to multiple users through time-sharing. The personal computer era pushed computation back to the desktop, but the rise of cheap bandwidth and hyperscale data centers brought the model full circle. Computation is again centralized and rented by the minute rather than owned outright.

Essential characteristics

NIST identifies five characteristics that distinguish cloud computing from other forms of hosted and managed computing.

  • On-demand self-service. A consumer can provision computing capabilities as needed, without requiring human interaction with the provider.
  • Broad network access. Capabilities are available over the network and reached through standard mechanisms, so that any connected device can consume them.
  • Resource pooling. The provider’s resources are pooled and shared among many consumers using a multi-tenant model. Resources are dynamically assigned and reassigned according to demand, and the consumer generally has no control over the exact location of what they are using.
  • Rapid elasticity. Capabilities can be elastically provisioned and released, often automatically, to scale outward and inward in step with demand. This is the quality exploited by auto-scaling.
  • Measured service. Resource usage is metered and billed, typically on a pay-as-you-go basis, so that consumers pay for what they actually use rather than for reserved capacity.

Service models

Cloud resources are delivered through a stack of service models, each abstracting more of the underlying infrastructure away from the consumer.

  • Infrastructure as a Service (IaaS) is the lowest layer. The provider supplies compute, storage, and networking, and the consumer manages everything above that, including the operating system and applications.
  • Platform as a Service (PaaS) adds the operating system, runtime, and platform tooling. The consumer deploys applications and is responsible only for their code and data.
  • Software as a Service (SaaS) goes one step further. The provider runs the entire application, and the consumer simply uses it, typically through a web browser.
  • Serverless computing, often delivered as Function-as-a-Service (FaaS), refines PaaS by having the provider manage scaling and resource allocation too. The consumer’s code runs only in response to events.

These models are supplied by cloud service providers, the hyperscale operators that own and run the underlying data centers.

Deployment models

Cloud deployments are classified by who owns and can access the infrastructure.

  • Public cloud. Owned and operated by a provider, serving many tenants over the public internet.
  • Private cloud. Operated for a single organization, either on its own premises or hosted by a third party.
  • Hybrid cloud. A composition of public and private clouds, with workloads and data moving between them so that each runs where it fits best.
  • Multi-cloud. The combined use of more than one public provider, often to avoid lock-in or to mix best-of-breed services.

Advantages of cloud computing

  • Trade capital expense for variable expense. Many CFOs prefer operational expenditure (OPEX) over capital expenditure (CAPEX), depending on the economic climate. CAPEX is tax deductible over the depreciation lifetime of the hardware you buy, while OPEX is deductible in the same year.
  • Economies of scale. Aggregated usage across hundreds of thousands of customers means lower variable costs for individual customers.
  • Stop guessing capacity. Businesses used to over-provision hardware, trading wasted capacity for availability. Cloud computing offers elastic resourcing, so you can scale resources up and down in response to changing needs. Costs are based on actual usage rather than forecasts.
  • Increase speed and agility. Cloud resources can be deployed quickly and easily, letting teams react to changing requirements faster.
  • Stop spending money on data centers. Spend that money on innovation instead.
  • Go global in minutes. Applications can be deployed across availability zones in multiple regions, putting them close to users worldwide.

Trade-offs

Cloud computing is not without its costs and risks.

  • Vendor lock-in. Proprietary APIs and managed services make migration between providers costly, and the more of them an application uses, the harder a move becomes.
  • Cost unpredictability. Pay-per-use pricing can spiral with runaway workloads or misconfigured resources. The elasticity that removes the need to guess capacity also makes the bill hard to predict.
  • Security and compliance. Handing data to a third party raises compliance and data-sovereignty questions. Security is split between provider and consumer under a shared responsibility model, and the boundary between the two is often misunderstood.
  • Network dependency. Every request crosses the provider’s network, adding latency and creating a dependency on its availability.
  • Limited control. The consumer cedes control over the underlying platform, including when and how it is patched, scaled, and eventually retired.

See also

References