A1.1.9 Describe the different types of services in cloud computing.
• Services: software as a service (SaaS), platform as a service (PaaS), infrastructure as a service (IaaS)
• The differences between the approaches of SaaS, PaaS, and IaaS in various real-world scenarios, recognizing that different degrees of control and flexibility influence resource management and resource availability
📚 You can find additional information in the course companion pages 31 to 36
The Big Idea
Cloud computing is a model that enables on-demand access to shared computing resources—such as storage, applications, development platforms, and virtual machines—over the internet. It is built on the principle of resource abstraction, where physical infrastructure is hidden from the user and offered as a service.
Cloud services are generally categorized into three core models:
- Software as a Service (SaaS)
- Platform as a Service (PaaS)
- Infrastructure as a Service (IaaS)
Each model provides a different level of abstraction, control, and flexibility, and is suited to different use cases and technical requirements.
1. Software as a Service (SaaS)
Description:
SaaS delivers fully functional software applications over the internet. Users access the application via a browser or client without managing the underlying infrastructure, platform, or even application updates.
Key Characteristics:
- No installation required on the client side
- Maintenance, security, and updates handled by the provider
- Typically subscription-based (pay-per-user or tiered)
Examples:
- Google Workspace (Docs, Sheets, Gmail)
- Microsoft 365 (Word, Excel, Outlook)
- Salesforce (CRM)
- Zoom, Slack, Dropbox
Use Case Scenario:
A marketing team needs a collaboration and email platform. Rather than deploying and maintaining their own mail servers or document editors, they use Google Workspace, which is instantly available and fully managed.
Degree of Control:
- Low control: Users can configure settings but cannot access infrastructure or platform layers.
- High availability and low administrative overhead.
2. Platform as a Service (PaaS)
Description:
PaaS provides a development and deployment environment that includes infrastructure (servers, storage, networking) plus runtime environments, databases, and development tools. Developers focus on writing code, while the platform handles scalability, load balancing, and resource provisioning.
Key Characteristics:
- Abstracts hardware and OS-level concerns
- Supports CI/CD, auto-scaling, and API integration
- Allows faster development and deployment
Examples:
- Google App Engine
- Heroku
- Microsoft Azure App Services
- AWS Elastic Beanstalk
Use Case Scenario:
A startup building a web application uses Heroku to deploy its backend written in Node.js. The team doesn’t worry about provisioning servers, managing databases, or configuring operating systems. They push their code, and the PaaS handles the rest.
Degree of Control:
- Moderate control: Developers manage application code and data, but not OS or hardware.
- High flexibility in development; limited access to low-level system resources.
3. Infrastructure as a Service (IaaS)
Description:
IaaS offers virtualized computing resources over the internet—such as virtual machines, storage, and networks. Users can provision and configure everything from the operating system up to the application layer.
Key Characteristics:
- High configurability and control
- Pay-as-you-go pricing based on usage
- Requires knowledge of systems administration and networking
Examples:
- Amazon EC2 (AWS)
- Google Compute Engine
- Microsoft Azure Virtual Machines
- DigitalOcean, Linode
Use Case Scenario:
An enterprise hosting a custom financial analytics platform uses Amazon EC2 to provision virtual servers. They install their preferred OS, configure firewalls, deploy custom software, and monitor performance using internal tools.
Degree of Control:
- High control: Users manage OS, middleware, and runtime.
- High flexibility, but more responsibility for configuration, patching, and monitoring.
Comparative Summary
| Feature | SaaS | PaaS | IaaS |
|---|---|---|---|
| Delivered To | End users | Developers | System administrators |
| Manages Infrastructure | Cloud Provider | Cloud Provider | User |
| Manages Platform | Cloud Provider | Cloud Provider | User |
| Manages Application | Cloud Provider | User | User |
| Flexibility | Low | Medium | High |
| Example Use | Email, CRM | Web app development | Custom app hosting |
Elastic Pricing: Pay Only for What You Use
One of the most powerful features of cloud computing—especially in IaaS and PaaS models—is the concept of elastic pricing. This model is based on usage-based billing, meaning you are charged only for the compute, storage, or bandwidth you actually use, not for provisioned capacity.
Why Is This Important?
In traditional on-premise infrastructure:
- You purchase and maintain fixed resources (servers, storage, cooling) up front.
- Even when systems are idle, you pay for underutilized capacity.
- Scaling requires hardware procurement, which is slow and expensive.
In the cloud:
- Resources scale dynamically based on demand.
- You can spin up a virtual machine for 15 minutes and pay only for those minutes.
- You can scale out during peak load and scale in when idle, avoiding wasted costs.
Examples:
- A web application hosted on AWS EC2 auto-scales based on traffic. During off-hours, fewer instances are running—lowering the bill.
- A developer using Google Cloud Functions pays per function invocation, not for idle time.
- Azure Storage charges based on actual data stored and accessed, not for theoretical capacity.
Elastic Pricing in Each Model:
| Model | Elasticity | Billing Unit | Example |
|---|---|---|---|
| SaaS | Low–None | Subscription | Monthly per user (e.g., Google Workspace) |
| PaaS | Medium | Compute hours, database queries, API calls | Heroku dyno-hours, Firebase reads/writes |
| IaaS | High | Per VM-hour, GB-month, bandwidth GB | EC2 hourly billing, S3 storage GB/month |
Strategic Benefit
Elastic pricing aligns cost with real usage, enabling:
- Cost efficiency: You don’t pay for unused resources.
- Agility: Scale infrastructure quickly without long-term commitments.
- Experimentation: Developers can test and deploy with minimal up-front investment.
This model is especially crucial for:
- Startups that must manage tight budgets.
- Enterprises optimizing large-scale infrastructure.
- Event-driven workloads with variable traffic (e.g., Black Friday, product launches).
Control vs. Responsibility
The main difference across SaaS, PaaS, and IaaS lies in the division of responsibility between the cloud provider and the user.
- SaaS: Maximum abstraction. Users manage only application data and configuration.
- PaaS: Balanced. Users manage code and data but rely on the provider for platform services.
- IaaS: Minimal abstraction. Users manage everything except the bare physical hardware.
Conclusion
Cloud computing services exist on a spectrum of abstraction, and choosing between SaaS, PaaS, and IaaS depends on the technical skillset, performance requirements, and desired level of control. SaaS is ideal for productivity and collaboration tools, PaaS accelerates development cycles, and IaaS is optimal for custom, highly configurable solutions.