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:
| Model | Who owns it | Who uses it |
|---|---|---|
| Public | The cloud provider (AWS, Azure, GCP, IBM Cloud) | Any customer, multi-tenant |
| Private | One organization (or a provider, on their behalf) | A single organization |
| Community | Shared by several organizations | Groups with shared compliance/security needs |
| Hybrid | Mixed | Connects 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:
| Layer | IaaS | PaaS | SaaS |
|---|---|---|---|
| Application | You | You | Provider |
| Runtime, middleware, OS | You | Provider | Provider |
| Servers, storage, network | Provider | Provider | Provider |
- 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.
