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.
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?
2. A startup needs to deploy a Python web app in under an hour with minimal infrastructure management. Which service model is most appropriate?
3. Which responsibility remains with the customer in ALL cloud service models (IaaS, PaaS, SaaS)?
4. What is the primary tradeoff when moving from IaaS to PaaS?
Flashcards
Question
What is IaaS?
Click to reveal answer
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?
Click to reveal answer
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?
Click to reveal answer
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?
Click to reveal answer
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.