Ref: https://learn.cantrill.io/courses/2022818/lectures/45718075
Infra Stack (or App Stack)
- Infrastructure layers when deploying a software application:
- Application
- Data → data store, DB…
- Runtime Environment (RTE) → code libraries…
- Container → Docker, K8s…
- Operating System (OS) → Linux, Windows, MacOS…
- Virtualization
- Server → physical computer/machine
- Infrastructure → server racks, network routers…
- Facilities → building, electricity, real estate, security staff…
- 🔧 Unit of consumption = what the customer pays for and consumes
- Everything below the unit of consumption in the Infra Stack is managed by the vendor
- The unit of consumption itself and everything above in the Infra Stack is managed by the customer
- Each service model differs in its unit of consumption
- On-premises → Customers pay for everything in the Infra Stack
- 👎 Expensive, lots of admin overhead, has risks
- 👍 Highest ownership → can be very flexible
- Data Center (DC) hosted → Customers pay for using facilities (fully or partially), and take care of everything else
- Popular before cloud computing
Popular Cloud Service Models
IaaS (Infrastructure-as-a-Service)
- 🔧 Unit of consumption: OS
- Generally, IaaS provides virtual servers/machines (VMs)
- Pricing: generally pay-as-you-go
- Pay a fee per second/min/hour of VM use
- No costs when not using the VM
- Lose a bit on flexibility, but gain a lot in cost & risk reductions
- One of the most popular cloud services
- e.g. Amazon Elastic Compute Cloud (EC2)
PaaS (Platform-as-a-Service)
- 🔧 Unit of consumption: Runtime Environment (RTE)
- Aimed to developers who have an app that they just want to deploy and run, without caring about underlying infrastructure