Skip to content
beginner Phase 1 · Cloud Foundations

Cloud Service Models

Compare IaaS, PaaS, and SaaS models. Understand when to use each, shared responsibility boundaries, and real-world examples across AWS, Azure, and GCP.

45m
0 problems
Topic Progress 0%

Understanding the Three Service Models

Your team needs to deploy a web application. Option A: You rent raw virtual servers, install the operating system, configure the web server, patch the middleware, and deploy your code. Option B: You upload your code to a platform that handles the OS, runtime, and scaling automatically. Option C: You use a third-party application like Salesforce and configure it for your business. Each option represents a different cloud service model: IaaS, PaaS, and SaaS. The question is not which is best -- it is which is right for your specific needs.

Infrastructure as a Service (IaaS) provides virtualized computing resources over the internet. You get virtual machines, storage, and networking -- the fundamental building blocks. The provider manages the physical hardware, networking, and hypervisor. You manage everything above that: operating system, middleware, runtime, applications, and data. AWS EC2, Microsoft Azure Virtual Machines, and Google Compute Engine are IaaS offerings. IaaS gives you maximum control and flexibility. You can install any operating system, configure any software stack, and customize networking to your requirements. The tradeoff is responsibility -- you handle patching, security hardening, and capacity planning.

Platform as a Service (PaaS) abstracts the infrastructure layer entirely. You write code and deploy it; the platform handles the rest -- OS, runtime environment, middleware, and scaling. AWS Elastic Beanstalk, Azure App Service, and Google App Engine are PaaS examples. Think of PaaS as a managed hotel. You bring your belongings (code and data), and the hotel provides the room, utilities, housekeeping, and security. You focus on your business, not plumbing. PaaS accelerates development dramatically: deploy a Node.js application in minutes without configuring a single server. The tradeoff is less control. You cannot install custom operating system packages or configure low-level networking. You trade flexibility for speed.

Software as a Service (SaaS) delivers complete applications over the internet. You use the software; the provider handles everything -- infrastructure, platform, application code, updates, and security. Office 365, Salesforce, Slack, and Zoom are SaaS products. You do not deploy or manage anything. You configure the application for your needs. SaaS eliminates operational burden entirely but provides the least customization. If Salesforce does not do what you need, you cannot modify its code.

The progression from IaaS to SaaS represents a tradeoff: more abstraction means less control but less operational burden. Choose based on how much control your use case requires versus how much operational overhead your team can handle.

Shared Responsibility Boundaries

A common misconception is that moving to cloud transfers all security and operational responsibility to the provider. It does not. The shared responsibility model defines exactly who manages what. Understanding this boundary is critical -- misconfigurations on the customer side cause the vast majority of cloud security incidents.

In IaaS, the provider manages the physical infrastructure, networking, hypervisor, and host operating system. You manage everything else: guest OS configuration, firewall rules, application code, data encryption, user access management, and compliance configurations. If an EC2 instance is left unpatched and exploited, that is your responsibility. AWS secured the physical data center; you failed to secure the virtual machine.

In PaaS, the provider extends responsibility to include the OS, runtime environment, and middleware. You manage your application code, data, configuration, and user access. If you deploy a Python application on Elastic Beanstalk, AWS manages the Python runtime and underlying OS patches. You are responsible for secure coding practices, database access controls, and IAM policies.

In SaaS, the provider manages nearly everything: infrastructure, platform, application code, patching, and availability. You manage data classification, user access, and configuration of the SaaS application. If your Salesforce data is exported because an employee shared credentials, that is your responsibility. Salesforce secured the application; you failed to control access.

The key insight is that data is always your responsibility regardless of the service model. Whether you run EC2 (IaaS), Elastic Beanstalk (PaaS), or Salesforce (SaaS), the provider never takes responsibility for the sensitivity, classification, and access control of your data.

AWS provides a shared responsibility visual that maps this precisely. For each service, understand: what does AWS handle, and what do I handle? When in doubt, assume more responsibility is on you. Defense in depth means layering your security controls on top of the provider's controls, not relying solely on their security posture.

When to Use Each Model

Service model selection is an architectural decision with long-term implications. Here is a practical framework for choosing.

Choose IaaS when you need maximum control over the computing environment. Common scenarios include migrating existing on-premises applications that require specific OS configurations or custom networking, running workloads with compliance requirements that demand visibility into every infrastructure layer (HIPAA, PCI-DSS), hosting applications with unpredictable or highly variable resource needs that require fine-tuned scaling, and running specialized software like legacy databases or custom middleware that PaaS platforms cannot accommodate. EC2, Azure VMs, and GCE give you a virtual server that behaves like a physical server. You have root access, custom networking, and complete configurability. The cost is that your team manages OS patching, security hardening, and monitoring.

Choose PaaS when your priority is development speed and your application fits within standard runtime environments. If you are building a REST API with Node.js, a Python Flask application, or a Ruby on Rails app, PaaS platforms like Elastic Beanstalk or Azure App Service let you deploy in minutes. PaaS excels for microservices architectures, MVPs, and prototypes where time-to-market matters more than infrastructure control. The limitation is that you are constrained to the languages, frameworks, and configurations the platform supports.

Choose SaaS when the application already exists and meets your needs. Do not build a CRM when Salesforce exists. Do not build a collaboration tool when Slack and Microsoft Teams exist. SaaS is ideal for horizontal functions that are not your core competitive differentiator: email, CRM, project management, HR systems, and accounting. The constraint is customization -- you adapt your processes to the software, not the other way around.

The hybrid approach is common in practice. A company might use SaaS for email and CRM (Office 365, Salesforce), PaaS for their customer-facing web application (Elastic Beanstalk), and IaaS for a legacy database migration (EC2). The key is matching each workload to the model that optimizes for its specific requirements: control, speed, cost, and operational burden.

Quiz

1. In the IaaS model, which of the following is the CUSTOMER responsible for managing?

Question 1 options

2. A startup needs to deploy a Python web app in under an hour with minimal infrastructure management. Which service model is most appropriate?

Question 2 options

3. Which responsibility remains with the customer in ALL cloud service models (IaaS, PaaS, SaaS)?

Question 3 options

4. What is the primary tradeoff when moving from IaaS to PaaS?

Question 4 options

Flashcards

Question

What is IaaS?

Answer

Infrastructure as a Service provides virtualized computing resources (VMs, storage, networking). The customer manages OS, middleware, and applications. Examples: EC2, Azure VMs, GCE.

Question

What is PaaS?

Answer

Platform as a Service provides a managed runtime environment. The customer manages only code and data; the provider handles OS, runtime, and scaling. Examples: Elastic Beanstalk, Azure App Service, App Engine.

Question

What is SaaS?

Answer

Software as a Service delivers complete applications over the internet. The provider manages everything; the customer configures and uses the software. Examples: Office 365, Salesforce, Slack.

Question

What is the shared responsibility model?

Answer

A framework defining which security and operational tasks are handled by the cloud provider versus the customer. In IaaS the customer manages more; in SaaS the provider manages more. Data responsibility is always the customer's.

Revision Notes

Key Takeaways

  • 1. IaaS gives maximum control but requires managing OS, patching, and security
  • 2. PaaS accelerates development by abstracting infrastructure -- you manage only code and data
  • 3. SaaS eliminates operational burden for the customer but limits customization
  • 4. Data responsibility is always the customer's regardless of service model
  • 5. Most organizations use a hybrid of all three models for different workloads

Interview Tips

  • Draw the shared responsibility model pyramid -- it visually demonstrates the boundary shift across IaaS, PaaS, and SaaS
  • Give concrete examples for each model (EC2 for IaaS, Elastic Beanstalk for PaaS, Salesforce for SaaS)
  • Be ready to explain why data responsibility never transfers to the provider
  • Discuss a scenario where you would choose one model over another with specific tradeoffs

Cheat Sheet

IaaS = VMs you control (EC2). PaaS = code you deploy (Elastic Beanstalk). SaaS = app you use (Salesforce). Shared responsibility: provider handles below the line, customer handles above. Data is always your responsibility. Choose based on control needed vs operational burden accepted.