☁️
Cloud Service Models
Levels of abstraction and shared responsibility
IaaS — Infrastructure as a Service
EC2, Azure VMs, GCE, DigitalOcean
Rent raw compute, storage, and networking. You manage everything from the OS up — patching, runtime, application, data. Maximum control with maximum operational responsibility. The cloud equivalent of renting rack space.
🏛️ Context: IaaS makes sense for lift-and-shift migrations and workloads requiring full OS control. Use reserved instances for steady-state, spot/preemptible for fault-tolerant batch. Automate everything via IaC — no console clicking.
PaaS — Platform as a Service
Heroku, App Service, Cloud Run, Elastic Beanstalk
Deploy your code; the provider manages OS, runtime, scaling, and patching. You focus on application logic. Faster time-to-market at the cost of less infrastructure control. Ideal for standard web applications.
🏛️ Context: PaaS maximises developer productivity for standard workloads. Cloud Run (containers-as-a-service) bridges PaaS simplicity with container flexibility. Evaluate: can you accept the platform's constraints, or do you need IaaS control?
SaaS — Software as a Service
Salesforce, M365, Workday, ServiceNow
Complete applications delivered over the internet. The vendor manages everything — infrastructure, platform, application, updates. You configure and consume. The highest abstraction with the least control.
🏛️ Context: SaaS is the default for commodity capabilities (CRM, HR, ITSM). Integration is the primary architecture concern — SaaS creates data silos. Evaluate API quality, data export capabilities, and exit strategy.
Multi-Cloud & Hybrid Cloud
AWS + Azure + GCP, On-prem + Cloud, Anthos, Arc
Multi-cloud: using multiple cloud providers strategically. Hybrid: combining on-premises infrastructure with cloud. Both add architectural complexity but address vendor lock-in, regulatory, latency, or best-of-breed requirements.
🏛️ Context: Multi-cloud should be justified by concrete requirements (regulation, M&A, best-of-breed), not fear of lock-in. The cost of abstraction layers often exceeds lock-in risk. Hybrid is more commonly justified (data sovereignty, latency).
FinOps / Cloud Cost Management
Cost allocation, Right-sizing, Reserved capacity
The practice of managing cloud spend as an operational discipline. Combines real-time cost visibility, resource optimisation, team-level chargeback/showback, and commitment-based discounts (RIs, savings plans).
🏛️ Context: FinOps is an architecture concern — design for cost-awareness. Tag everything for allocation. Right-size continuously (most VMs are 40-60% over-provisioned). Establish FinOps team or practice with engineering, finance, and procurement.