Cloud computing is just using someone else’s computers. But the amount of control (and responsibility) we get varies a lot depending on which model we pick. Let’s break down the four main models.
The Four Models
IaaS (Infrastructure as a Service) — the cloud gives us virtual machines, networking, and storage. We manage everything from the OS up. Think of it like renting an empty apartment — we bring our own furniture.
Examples: AWS EC2, Google Compute Engine, Azure VMs, DigitalOcean Droplets.
PaaS (Platform as a Service) — the cloud manages the OS, runtime, and scaling. We just deploy our app. Think of it like a co-working space — desk, wifi, and coffee are provided. We just bring our laptop.
Examples: Heroku, Google App Engine, AWS Elastic Beanstalk, Railway.
SaaS (Software as a Service) — we use the software. That’s it. No deploying, no managing, no thinking about servers.
Examples: Gmail, Slack, Notion, GitHub.
Serverless — we write functions. The cloud runs them when triggered, scales them automatically, and charges per invocation. We don’t think about servers at all.
Examples: AWS Lambda, Google Cloud Functions, Azure Functions, Cloudflare Workers.
What We Manage at Each Level
The higher up the stack we go, the less we manage — but the less control we have.
Shared Responsibility Model
This is a concept every cloud provider pushes hard. The cloud provider secures the cloud itself (physical servers, networking hardware, data centers). We secure what’s in the cloud (our code, our data, our IAM policies, our configurations).
If AWS’s data center catches fire — that’s their problem. If our S3 bucket is publicly readable — that’s ours.
Multi-Cloud vs Hybrid Cloud
Multi-cloud — using multiple cloud providers (e.g., AWS for compute, GCP for ML). Why? Avoid vendor lock-in, use best-of-breed services, or satisfy compliance requirements.
Hybrid cloud — mixing on-premises servers with cloud resources. Common in enterprises that can’t fully migrate due to regulation or legacy systems.
How to Pick
# Decision flow:
# Need full OS control or custom networking? → IaaS
# Just want to deploy a web app fast? → PaaS
# Running event-driven, short-lived tasks? → Serverless
# Don't want to manage anything? → SaaS
In simple language, cloud models are a spectrum from “we manage everything” (IaaS) to “we manage nothing” (SaaS). Most real-world architectures mix and match — an EC2 instance (IaaS) running our app, with RDS (managed PaaS-ish) for the database, Lambda (serverless) for background jobs, and Slack (SaaS) for alerts.