Build the mental model
Every cloud service sits somewhere on an abstraction spectrum.
At one end is IaaS (Infrastructure as a Service): raw compute, storage, and networking. Think of a virtual machine you configure yourself — installing the OS, applying patches, setting up the runtime. You get maximum control, but maximum operational responsibility too.
In the middle sits PaaS (Platform as a Service). The provider manages the OS, runtime, patching, and scaling; you just push your code and the platform runs it, mostly freeing you to focus on application logic.
At the far end is SaaS (Software as a Service): a finished product you simply log into and use. There's nothing left for you to configure or code.
| Model | Control & Responsibility |
|---|---|
| IaaS | Highest — you manage OS, runtime, and scaling yourself |
| PaaS | Moderate — you focus mainly on writing application logic |
| SaaS | Lowest — you simply use the finished product |
Not a ranking
IaaS, PaaS, and SaaS aren't a best-to-worst ranking — they're a trade-off dial between control and convenience.
- IaaS
- Infrastructure as a Service — raw compute, storage, and network resources, where you manage the OS, runtime, and application yourself.
- PaaS
- Platform as a Service — a managed application platform where the provider handles the OS and runtime, and you just supply the code.
- SaaS
- Software as a Service — a finished, ready-made product where the provider owns the infrastructure, platform, and application logic entirely.
THE ABSTRACTION SPECTRUM
------------------------
THE ABSTRACTION SPECTRUM
--------------------------
MORE CONTROL MORE ABSTRACTION
| |
v v
[ IaaS ] -------> [ PaaS ] -------> [ SaaS ]
raw compute managed platform finished
storage, network push code, it runs product
you manage OS provider manages login and
+ runtime OS + runtime use it
MORE RESPONSIBILITY LESS RESPONSIBILITYConnect it to a real scenario
Remembering IaaS/PaaS/SaaS as theory only helps so much — it clicks better once you can classify a real service from its characteristics.
The function below looks at four booleans — manages the OS, manages the runtime, manages application logic, and ready-to-use product — then returns the matching category.
Raw virtual machine
Nothing managed for you → IaaS
Git-push app platform
OS and runtime managed, but you write the logic → PaaS
Ready-made office tool
Everything managed, just log in → SaaS
As a next step, pick three tools you personally use and fill in their characteristics yourself to check the reasoning holds.
Try the working example
function classifyService(svc) {
if (svc.isReadyToUseProduct) return "SaaS";
if (svc.managesOS && svc.managesRuntime && !svc.managesApplicationLogic) return "PaaS";
if (!svc.managesOS && !svc.managesRuntime && !svc.managesApplicationLogic) return "IaaS";
return "Mixed / Unclear";
}
const rawVirtualMachine = {
managesOS: false,
managesRuntime: false,
managesApplicationLogic: false,
isReadyToUseProduct: false
};
const gitPushAppPlatform = {
managesOS: true,
managesRuntime: true,
managesApplicationLogic: false,
isReadyToUseProduct: false
};
const hostedOfficeSuite = {
managesOS: true,
managesRuntime: true,
managesApplicationLogic: true,
isReadyToUseProduct: true
};
console.log("Raw virtual machine:", classifyService(rawVirtualMachine));
console.log("Git-push app platform:", classifyService(gitPushAppPlatform));
console.log("Hosted office suite:", classifyService(hostedOfficeSuite));Raw virtual machine: IaaS
Git-push app platform: PaaS
Hosted office suite: SaaS5-minute try-it
Pick three tools you personally use, fill in the four booleans for each, and compare the classifier's output against your own expectation.
One important caution
Treating PaaS as 'worse than' IaaS instead of a different trade-off point
Assuming a service is a single static category — many modern products blend layers
NIST Definition of Cloud Computing (service models) — Cloud Providers & Platforms