Infrastructure-as-a-Service (IaaS)
IaaS is a cloud service model providing on-demand virtualized compute, storage and networking. It enables renting infrastructure rather than owning it, supporting self-service provisioning, elasticity and usage-based billing.
Classification
- ComplexityMedium
- Impact areaTechnical
- Decision typeArchitectural
- Organizational maturityIntermediate
Technical context
Principles & goals
Use cases & scenarios
Compromises
- Unexpected costs from uncontrolled resource provisioning.
- Misconfigurations can lead to security vulnerabilities.
- Provider outage can impact services.
- Use IaC for reproducible provisioning and versioning.
- Implement cost alerts and budget limits.
- Secure resources via central identity and access control.
I/O & resources
- Architectural requirements and scaling profiles
- Security and compliance policies
- Budget and cost constraints
- Provisioned virtual machines and storage volumes
- Network and security configurations
- Logs on usage, billing and performance
Description
Infrastructure-as-a-Service (IaaS) is a foundational cloud computing model that delivers virtualized compute, storage and networking resources on demand. It lets teams rent infrastructure instead of owning it, lowering capital expenditure and speeding provisioning. Common concerns include abstraction level, multi-tenancy, billing models and self-service APIs. Use cases span dev environments to scalable production.
✔Benefits
- Faster provisioning of infrastructure without physical procurement.
- Reduce capital expenditure via usage-based billing.
- Scalability and elasticity for variable load profiles.
✖Limitations
- Reduced control over physical infrastructure.
- Risk of lock-in due to proprietary APIs and services.
- Network latency and limited hardware specialization possible.
Trade-offs
Metrics
- Cost per hour/instance
Monetary cost to operate a VM or resource per hour.
- Provisioning time
Time from initiating provisioning to resource availability.
- Utilization and resource efficiency
Ratio of used capacity to provisioned capacity.
Examples & implementations
OpenStack as open-source IaaS
OpenStack provides compute, storage and networking components to operate IaaS in private or public clouds.
AWS EC2 for scalable VM provisioning
Amazon EC2 is a widespread IaaS offering providing flexible VM types, auto-scaling and usage-based billing.
Azure Virtual Machines for hybrid scenarios
Azure VMs enable IaaS deployments with integration to PaaS services and hybrid networking requirements.
Implementation steps
Gather requirements and define governance.
Select provider and design reference architecture.
Create, test and automate IaC templates.
Implement monitoring, backups and cost controls.
⚠️ Technical debt & bottlenecks
Technical debt
- Manual configurations in provider console instead of versioned IaC templates.
- Hardcoded network routes and dependencies between VMs.
- Missing automated tests for infrastructure changes.
Known bottlenecks
Misuse examples
- Running production directly in default networks without security zones.
- Leaving unused instances running permanently causing costs.
- Performing complex configurations manually in the console instead of automating.
Typical traps
- Unclear responsibility between provider and customer (shared responsibility).
- Overestimating immediate cost benefits without holistic view.
- Neglecting access controls during rapid provisioning.
Required skills
Architectural drivers
Constraints
- • Regulatory requirements for data locality
- • Provider contractual SLA terms
- • Network bandwidth and topology