- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (SaaS)
Infrastructure as a Service (IaaS)
IaaS offers foundational building blocks: virtual machines, block and object storage, and virtual networking. With IaaS you manage the operating system, middleware, runtime, application, and configuration. The provider manages the physical hardware, hypervisors/virtualization, and basic networking. Typical workflow:- Create a virtual server (VM).
- Configure and manage server resources (OS updates, middleware, runtime).
- Deploy your application and expose it to users.

- You need custom OS configurations or specialized runtimes.
- You require maximum control over networking, security, or performance tuning.
- You are migrating lift-and-shift workloads to the cloud.
Platform as a Service (PaaS)
PaaS provides a preconfigured platform that abstracts servers and much of the OS/runtime management so you can focus on writing and deploying applications. The provider typically handles servers, OS patches, runtime updates, and many operational concerns like autoscaling and basic security configuration. Typical workflow:- Package and deploy your application artifact (source, binary, or container).
- The platform provisions runtime, scaling, and networking automatically.
- The application becomes accessible to users with minimal infrastructure management.
- You want to focus on code and features instead of infrastructure.
- You need built-in scaling and managed runtimes.
- You prefer less day-to-day ops work but still require app-level control.
Software as a Service (SaaS)
SaaS delivers fully managed applications over the internet. The provider operates the entire stack — hardware, platform, and the application itself — and users consume the software through a web UI or API. Examples include email platforms, CRMs, and office productivity suites. Typical characteristics:- No infrastructure or platform management is required by the user.
- Rapid onboarding with minimal operational overhead.
- Limited control over internal application customization compared to PaaS or IaaS.
- You want minimal operational effort and quick time-to-value.
- Your needs are met by off-the-shelf features (e.g., email, CRM).
- You do not require control over the application internals.
Infrastructure as Code (IaC)
IaC is a provisioning practice (not a service model) that lets you define cloud infrastructure using code — declarative or imperative — instead of manual clicks in a console. IaC brings repeatability, version control, and automation to environment provisioning and configuration. Common IaC use cases:- Provisioning VMs, networks, and storage in IaaS.
- Automating platform setup, configuration, and deployment in PaaS.
- Orchestrating SaaS tenant setup or configuration when APIs are available.
IaC complements IaaS, PaaS, and SaaS: use IaC to provision and manage IaaS resources (VMs, networks), to configure and deploy PaaS services and runtime environments, or to automate SaaS setup and tenant provisioning when the provider exposes APIs.
Comparative summary
| Model | Who manages infrastructure | Who manages OS/runtime | Who manages application | Best for |
|---|---|---|---|---|
| IaaS | Provider manages hardware & virtualization; you manage everything above | You | You | Full control, custom environments, lift-and-shift |
| PaaS | Provider manages hardware, OS, and runtime | Provider | You (app-level) | Rapid development and scaling with less ops |
| SaaS | Provider manages entire stack | Provider | Provider | Off-the-shelf solutions, minimal ops |
| IaC | Tooling approach across models | N/A — used to manage configurations | N/A — used to provision apps/platforms | Automation, repeatability, versioned infrastructure |
- Use IaaS when you need full control over infrastructure and software.
- Use PaaS when you want to deploy custom applications without managing servers.
- Use SaaS when you only need application functionality and minimal ops.
- Use IaC to automate, version, and reproduce environments across any model.
Links and references
- Kubernetes Basics — concepts relevant when choosing between IaaS and PaaS for container workloads.
- AWS CloudFormation — example IaC service for AWS.
- Terraform — popular multi-cloud IaC tool.
- Kubernetes Documentation — orchestration and platform-level patterns.