Cloud Computing

Cloud Service Models Explained: IaaS, PaaS, SaaS

Kunle··8 min read

IaaS gives you raw infrastructure (servers, storage, networking) that you manage yourself. PaaS gives you a platform where you deploy code without managing servers. SaaS gives you a finished application you use through a browser. These three models represent a spectrum from maximum control to maximum convenience, and understanding them is fundamental to every decision in cloud computing.

Every cloud service you encounter fits into one of these categories. Knowing which model you are working with tells you what you are responsible for, what the provider handles, and what trade-offs you are making. This guide breaks down each model with concrete examples, a clear comparison, and practical guidance for DevOps engineers.

The pizza analogy

The most intuitive way to understand cloud service models is through pizza.

On-premises (make pizza at home): You do everything. Buy ingredients, make the dough, add toppings, heat the oven, bake it, serve it, wash the dishes. You have complete control and complete responsibility.

IaaS (take-and-bake pizza): Someone provides the kitchen, the oven, and the utilities. You bring the ingredients, make the pizza, and bake it yourself. You control the recipe, but you do not maintain the kitchen.

PaaS (pizza delivery): You choose the toppings and place the order. Someone else makes the dough, assembles the pizza, bakes it, and delivers it. You decide what you want but do not manage the process.

SaaS (eat at a restaurant): You sit down and eat. Someone else handled everything: the ingredients, the kitchen, the cooking, the serving, the cleaning. You just consume the finished product.

Each step up the chain trades control for convenience. That same trade-off defines how these models work in cloud computing.

IaaS: Infrastructure as a Service

IaaS provides the fundamental building blocks of computing: servers, storage, and networking. The cloud provider manages the physical hardware, power, cooling, and network connectivity. You manage everything above that: the operating system, runtime, application code, and data.

What you get

  • Virtual machines (compute) -- servers you can configure however you need
  • Block storage -- virtual hard drives for your servers
  • Object storage -- scalable storage for files, backups, and media
  • Networking -- virtual networks, load balancers, firewalls, DNS

What you manage

  • Operating system (patching, security hardening)
  • Runtime and middleware
  • Application code
  • Data
  • Scaling and availability

Real-world examples

ServiceProviderWhat it provides
EC2AWSVirtual servers
S3AWSObject storage
VPCAWSVirtual networking
Azure Virtual MachinesAzureVirtual servers
Google Compute EngineGCPVirtual servers
DigitalOcean DropletsDigitalOceanVirtual servers
Elastic Block Store (EBS)AWSBlock storage for EC2

When to use IaaS

IaaS is the right choice when you need:

  • Full control over the operating system -- custom kernel settings, specific OS versions, specialised software
  • Complex networking -- custom VPCs, VPN connections, multi-region architectures
  • Regulatory compliance -- when you need to demonstrate exactly how infrastructure is configured
  • Maximum flexibility -- running workloads that do not fit neatly into managed services

IaaS is where most DevOps engineers spend their time. Provisioning EC2 instances, configuring VPCs, managing security groups, setting up load balancers -- this is the core of cloud infrastructure work.

The DevOps perspective on IaaS

DevOps engineers do not click through consoles to create IaaS resources. They use Infrastructure as Code tools like Terraform to define infrastructure in configuration files, store those files in Git, and apply changes through CI/CD pipelines.

# Terraform example: creating an EC2 instance (IaaS)
resource "aws_instance" "api_server" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t3.medium"

  tags = {
    Name        = "api-server"
    Environment = "production"
  }
}

This is IaaS managed the DevOps way: version-controlled, reviewable, reproducible, and automated.

PaaS: Platform as a Service

PaaS provides a managed platform for deploying applications. The cloud provider handles the operating system, runtime, scaling, and availability. You provide the application code and configuration.

What you get

  • A managed runtime environment (the platform runs your code)
  • Automatic scaling (the platform adds capacity as needed)
  • Built-in availability (the platform handles failover)
  • Managed infrastructure (no servers to patch or maintain)

What you manage

  • Application code
  • Data
  • Configuration (environment variables, feature flags)

Real-world examples

ServiceProviderWhat it provides
Elastic BeanstalkAWSManaged application hosting
AWS LambdaAWSServerless function execution
RDSAWSManaged relational databases
HerokuSalesforceManaged application platform
Google App EngineGCPManaged application hosting
Azure App ServiceAzureManaged web app hosting
VercelVercelFrontend deployment platform
ECS FargateAWSManaged container execution

When to use PaaS

PaaS is the right choice when you need:

  • Faster deployment -- push code and let the platform handle the rest
  • Reduced operational overhead -- no server patching, no OS management
  • Automatic scaling -- the platform scales based on demand without manual intervention
  • Focus on application logic -- your team's time is better spent on features than infrastructure

PaaS services are especially valuable for databases. Running your own PostgreSQL instance on EC2 means you handle backups, replication, failover, patching, and scaling. Using RDS (PaaS) means AWS handles all of that. For most teams, the operational savings justify the slightly higher cost.

The DevOps perspective on PaaS

DevOps engineers use PaaS strategically. A common production architecture mixes IaaS and PaaS:

  • IaaS for the core compute layer (EC2 instances running in custom VPCs with specific security configurations)
  • PaaS for managed databases (RDS instead of self-managed PostgreSQL)
  • PaaS for container orchestration (ECS Fargate or managed Kubernetes)
  • PaaS for serverless functions (Lambda for event-driven processing)

The goal is to minimise undifferentiated heavy lifting. If AWS can manage a database better than your team can (and they can -- they do it at a scale your team never will), use the managed service and spend your engineering time on problems that are unique to your business.

SaaS: Software as a Service

SaaS delivers fully built applications over the internet. There is no infrastructure to manage, no code to deploy, and no servers to think about. You sign up, log in, and use the software.

What you get

  • A complete application, ready to use
  • Automatic updates and maintenance
  • Accessibility from any browser or device
  • The provider handles everything: infrastructure, platform, application, security, scaling

What you manage

  • Your data
  • Your users and access
  • Configuration and settings within the application

Real-world examples

ServiceWhat it provides
Gmail / Google WorkspaceEmail and productivity
SlackTeam communication
JiraProject management
DatadogInfrastructure monitoring
PagerDutyIncident management
GitHubCode hosting and collaboration
SalesforceCustomer relationship management
ConfluenceDocumentation and knowledge base

When to use SaaS

SaaS is the right choice when:

  • The software is not your competitive advantage -- you do not need a custom email system or a custom project management tool
  • Speed matters -- you need the tool working today, not after a month of development
  • Maintenance is not worth the cost -- building and maintaining your own monitoring system is not worth the engineering time when Datadog exists

The DevOps perspective on SaaS

DevOps teams are heavy SaaS consumers. The DevOps toolchain itself is largely SaaS:

  • GitHub for source code and CI/CD (GitHub Actions)
  • Datadog or Grafana Cloud for monitoring
  • PagerDuty for incident alerting
  • Terraform Cloud for infrastructure state management
  • Snyk for security scanning

DevOps engineers integrate these SaaS tools into their workflows through APIs, webhooks, and automation. A typical pipeline might: build code (GitHub Actions), scan for vulnerabilities (Snyk), deploy to infrastructure (Terraform), and alert on failures (PagerDuty). All SaaS tools, all connected through APIs.

The complete comparison

Here is how the three models compare across key dimensions:

DimensionIaaSPaaSSaaS
You manageOS, runtime, app, dataApp, dataData only
Provider managesHardware, networking, virtualisationHardware through runtimeEverything
ControlHighMediumLow
FlexibilityMaximumModerateMinimal
Operational burdenHighLowNone
Cost modelPay for resourcesPay for usagePay per user/month
ScalingManual or auto-configuredAutomaticAutomatic
Time to deployHours to daysMinutes to hoursMinutes
CustomisationUnlimitedWithin platform constraintsConfiguration only
ExampleAWS EC2AWS LambdaGmail

The responsibility stack

Another way to visualise the models is by what each party manages in the technology stack:

                On-Prem    IaaS      PaaS      SaaS
Applications    You        You       You       Provider
Data            You        You       You       Provider*
Runtime         You        You       Provider  Provider
Middleware      You        You       Provider  Provider
OS              You        You       Provider  Provider
Virtualisation  You        Provider  Provider  Provider
Servers         You        Provider  Provider  Provider
Storage         You        Provider  Provider  Provider
Networking      You        Provider  Provider  Provider

*In SaaS, you own your data but the provider manages where and how it is stored.

Each step from left to right shifts more responsibility to the cloud provider. That shift reduces your operational burden but also reduces your control.

How DevOps engineers use all three models

In practice, DevOps engineers do not choose one model exclusively. They select the right model for each component based on requirements.

A typical production architecture might look like this:

  • IaaS: VPC networking, security groups, EC2 instances for specialised workloads, S3 for storage
  • PaaS: RDS for the database, ECS Fargate for container orchestration, Lambda for event processing, CloudFront for CDN
  • SaaS: GitHub for source control, Datadog for monitoring, PagerDuty for alerting, Terraform Cloud for state management

The decision for each component comes down to three questions:

  1. Do we need custom control over this? If yes, use IaaS.
  2. Is this a standard, well-solved problem? If yes, use PaaS (managed services).
  3. Is this a tool, not part of our product? If yes, use SaaS.

A concrete example

Consider deploying a web application:

All IaaS approach: Provision EC2 instances, install and configure PostgreSQL, set up your own Redis cluster, configure Nginx as a reverse proxy, manage SSL certificates, write scaling scripts, set up backup cron jobs.

Mixed approach: Use EC2 for the application servers (IaaS), RDS for the database (PaaS), ElastiCache for Redis (PaaS), Application Load Balancer (PaaS), ACM for SSL certificates (PaaS), and S3 for backups (IaaS).

The mixed approach achieves the same result with dramatically less operational work. The database is automatically backed up, the Redis cluster handles failover on its own, and the load balancer scales automatically. Your team focuses on the application instead of maintaining commodity infrastructure.

This is why understanding service models is not academic -- it directly affects how you design systems, how much time you spend on maintenance, and how reliable your infrastructure is.

Beyond the three models: emerging patterns

The boundary between models continues to blur as cloud services evolve.

Serverless (Function as a Service)

Serverless sits between PaaS and SaaS. You provide individual functions, and the platform runs them on demand. No servers, no containers, no capacity planning. AWS Lambda, Azure Functions, and Google Cloud Functions are the primary examples.

Containers as a Service (CaaS)

Services like AWS ECS Fargate and Google Cloud Run let you deploy Docker containers without managing the underlying servers. You provide a container image; the platform runs it, scales it, and handles the infrastructure. This sits between IaaS (running containers on EC2) and PaaS (deploying code to Elastic Beanstalk).

Database as a Service (DBaaS)

Managed databases (RDS, Cloud SQL, MongoDB Atlas) are technically PaaS, but they are so prevalent that they form their own sub-category. You create a database, connect your application, and the provider handles backups, replication, patching, and scaling.

These patterns all follow the same principle: pushing operational responsibility to the provider so engineering teams can focus on building their product.

Choosing the right model

For career purposes, here is what matters:

  • If you are learning DevOps or cloud engineering, start with IaaS. Build EC2 instances, configure VPCs, and manage servers manually. You need to understand what the managed services are abstracting away before you can use them effectively. See our guide on how to become a DevOps engineer for the full learning path.

  • If you are designing production systems, use PaaS wherever possible and IaaS only where you need custom control. Managed services are more reliable, more secure, and cheaper in engineering time than self-managed alternatives.

  • If you are evaluating tools for your team, use SaaS for anything that is not your core product. Do not build a monitoring system when Datadog exists. Do not build a CI/CD platform when GitHub Actions exists.

The best cloud engineers understand all three models deeply. They know when IaaS control is worth the operational cost, when PaaS convenience justifies the vendor lock-in, and when SaaS is the obvious choice. That judgement -- knowing which model to apply where -- is one of the most valuable skills in cloud engineering.

Frequently Asked Questions

Ola

Ola

Founder, CloudPros

Building the most hands-on DevOps bootcamp for the AI era. 16 weeks of real infrastructure, real projects, real career outcomes.

Related Articles