The three cloud service models represent different levels of abstraction. Choosing the right one depends on how much infrastructure your team wants to manage.
IaaS — Infrastructure as a Service
IaaS provides raw compute, storage, and networking. You get virtual machines and configure everything above the hypervisor.
Best for: Custom infrastructure, legacy application migration, workloads requiring specific OS configurations.
Providers: AWS EC2, Azure Virtual Machines, Google Compute Engine, Oracle Cloud, DigitalOcean.
PaaS — Platform as a Service
PaaS abstracts the infrastructure. You deploy code and the platform handles provisioning, scaling, and OS maintenance.
Best for: Web applications, APIs, microservices where teams focus on code rather than servers.
Providers: Heroku, Google App Engine, Azure App Service, AWS Elastic Beanstalk, Cloudflare Workers.
SaaS — Software as a Service
SaaS delivers finished applications over the internet. No infrastructure or application management required.
Examples: Salesforce, Microsoft 365, Google Workspace, Slack.
Shared Responsibility
| Layer | IaaS | PaaS | SaaS |
|---|---|---|---|
| Applications | You | You | Provider |
| Data | You | You | Shared |
| Runtime | You | Provider | Provider |
| OS | You | Provider | Provider |
| Hardware | Provider | Provider | Provider |
Open-source platforms like OpenNebula emerged from academic research on virtualizing compute resources — concepts that commercial IaaS providers later adopted at scale.