Cloud Computing

Computing, and other things, as a service.

Unit Goals

To be able to define cloud computing, understand its key concepts, and become familiar with the type of services that can be provided.

What is it?

Cloud computing refers to large scale computing, storage, and similar services being available on demand from hardware in remote locations shared by many customers. The cloud provider may, and often does, actively manage and scale these services for its users.

Here is a definition from the Overview of Amazon Web Services:

Cloud computing is the on-demand delivery of compute power, database storage, applications, and other IT resources through a cloud services platform via the Internet with pay-as-you-go pricing. ... With cloud computing, you don’t need to make large upfront investments in hardware and spend a lot of time on the heavy lifting of managing that hardware. Instead, you can provision exactly the right type and size of computing resources you need...and only pay for what you use.
A Useful Analogy

People used to own their own fossil fuel-burning generators to make electricity just for their own homes. Now electricity is obtained from utilities that generate it themselves and make it available to everyone “on the grid.”

Cloud computing is NOT, though is somewhat related to:

Key Concepts

Here are some useful terms, together with their definitions from the NIST Glossary:

There’s a new term that is not even in the NIST Glossary yet:

Cloud Services

Here are some things that can be provided on the cloud:

Compute Services
Virtual Machines, Containers, Cloud Functions (serverless)
Storage Services
Block storage, Networked file systems, Object Storage, Databases, Warehouses, Archival Storage
Network Services
API Gateways, Load Balancers, CDNs, VPCs, DNS configuration
Security Services
For managing users and their identities (authentication), groups, roles, and permissions (authorization), security groups, firewalls, etc.
Analytics
Search engines, Pipelines, Business Intelligence Tools

“As A Service”

Acronym Time! Definitions copied verbatim from NIST:

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

More concisely

ModelWhat the Customer DoesExamples
IaaS The provider gives you virtual machines, load balancers, servers, storage systems, firewalls. You wire these things up as if they were your own devices, including installing whatever you want on your virtual machines. You write all the code. Digital Ocean, Rackspace, basic AWS services
PaaS The provider gives you a software framework (e.g., a stack for a web app or mobile app) and some storage. You write the business logic. Google App Engine, AWS Elastic Beanstalk
SaaS The provider writes the application. You just use it. Google Apps, Dropbox, Office 365

“As a service” features in jokes and memes.

Cloud Providers

The big players are

Pros and Cons

Upsides:

A few downsides:

Summary

We’ve covered:

  • A definition of cloud computing
  • The key concepts of cloud computing
  • Cloud services
  • Advantages and disadvantages