Cloud services are grouped by how much the provider manages for you.
| Model | You manage | Provider manages | AWS | Azure / GCP |
|---|---|---|---|---|
| IaaS | OS, runtime, app, data | Hardware, network, virtualisation | EC2 | Azure VMs / Compute Engine |
| PaaS | App code and data | Everything up to the runtime | Elastic Beanstalk | App Service / App Engine |
| SaaS | Your data and users | The whole application | (e.g. Amazon WorkMail) | Microsoft 365 / Google Workspace |
Think of it as a ladder. Going from IaaS to PaaS to SaaS, you get less control and less work.
- IaaS suits teams that need full control: a custom OS setup, special software, lift-and-shift of an old server.
- PaaS suits teams that just want to push code: no OS patching, built-in scaling.
- SaaS is software you simply use, like Gmail or Salesforce.
Serverless functions (AWS Lambda, Azure Functions, Cloud Functions) are sometimes called FaaS. They sit past PaaS: you hand over a single function, not a whole app.
The trap: "managed" does not mean "no responsibility". Even with SaaS you still decide who can log in and what data you put in.
In interviews: expect "Give one example of each and say who patches the OS." With IaaS it is you; with PaaS and SaaS it is the provider.