Study Notes · Sep 2026

Cloud Computing Foundations and Service Models

  • Cloud Computing
  • IaaS
  • PaaS
  • SaaS
  • Architecture
Cloud Computing Foundations and Service Models cover image

What is cloud computing?

The National Institute of Standards and Technology (NIST) defines cloud computing as on-demand network access to a shared pool of configurable computing resources — networks, servers, storage, applications, and services — that can be provisioned and released with minimal effort.

In practice, that means renting compute power instead of buying and maintaining it yourself: you get it quickly, scale it with demand, and pay for what you use.

The five essential characteristics

NIST defines cloud computing by five traits, all of which have to be true at once:

  • On-demand self-service — provision resources yourself, without calling a human
  • Broad network access — reachable from many devices, over standard networks
  • Resource pooling — the provider's infrastructure is shared across many customers, with resources assigned dynamically regardless of physical location
  • Rapid elasticity — scale up or down (vertically or horizontally) as demand changes
  • Measured service — usage is metered, so you pay for what you consume or reserve

Key idea: if a platform is missing even one of these five, it isn't really "cloud" by NIST's definition — it's just outsourced hosting.

Four deployment models

Deployment models describe where the infrastructure lives and who controls it:

ModelWho owns itWho uses it
PublicThe cloud provider (AWS, Azure, GCP, IBM Cloud)Any customer, multi-tenant
PrivateOne organization (or a provider, on their behalf)A single organization
CommunityShared by several organizationsGroups with shared compliance/security needs
HybridMixedConnects private and public so workloads move where they're most useful

Public cloud trades control for cost savings and elasticity; private cloud trades cost for control and compliance; hybrid tries to get both by connecting the two.

Three service models: IaaS, PaaS, SaaS

The service models differ in exactly where the line falls between what the provider manages and what you manage:

LayerIaaSPaaSSaaS
ApplicationYouYouProvider
Runtime, middleware, OSYouProviderProvider
Servers, storage, networkProviderProviderProvider
  • IaaS (e.g. EC2, Compute Engine) — you get raw compute, storage, and networking, and manage the OS and everything above it yourself.
  • PaaS (e.g. Elastic Beanstalk, App Engine, Heroku) — the provider also manages the runtime, middleware, and OS, so you can focus purely on application code.
  • SaaS (e.g. Gmail, Salesforce) — you just use the finished application; the provider manages everything underneath it.

Why (and why not) to adopt cloud

Cloud adoption typically improves agility, availability, resilience, and time to market — but it isn't free of tradeoffs:

  • Data security and sovereignty — where is data physically stored, and under whose jurisdiction?
  • Compliance — does the provider meet your industry's regulatory requirements?
  • Provider dependency (vendor lock-in) — how hard would it be to migrate away later?
  • Governance and cost control — elastic scaling can just as easily mean an elastic bill

Tip: choosing a service and deployment model is really about matching how much control you need against how much operational simplicity you want — you can't maximize both at once.

← Back to Full-Stack City