The case
She only wanted to sell coffee. Now she runs a server.
Isaac rented VMs to run the store's order system. Now, besides selling coffee, he is the one who installs the operating system updates, configures the database and wakes up in the middle of the night when the server crashes.
Renting infrastructure solved the hardware. Everything else stayed his.
This post builds on Cloud Fundamentals and Virtual Machines.
The problem
Renting the VM didn't solve everything
In Virtual Machines, we saw that with a VM in the cloud the provider looks after the hardware and the hypervisor. From the VM up, everything is yours: operating system, updates, language and libraries, database, scaling.
Each of those tasks is necessary work that doesn't set the store apart from its competitors. It is the undifferentiated heavy lifting from Cloud Fundamentals.
The solution
A stack of layers
Every cloud application rests on a stack: the hardware at the bottom, then virtualization, the operating system, the runtime (the language and libraries the code runs on), the data and, on top, the application. The "scaling and capacity" row says who decides how many copies of the application run and when to create more.
The service models say up to which layer the provider takes over the work. From there up, it is on you. The higher the provider reaches, the less work you have and the less control.
The models
The four models
IaaS (Infrastructure as a Service)
You rent the infrastructure: VMs, networks and disks. You have full control, and full responsibility too, from the operating system up.
At the store: the VM with the order system installed by hand.
PaaS (Platform as a Service)
You bring the code, and the provider takes care of the operating system, the runtime and the infrastructure. You still configure the scaling.
At the store: the order system published on a managed platform, without touching a server.
FaaS (Function as a Service)
You write functions that run when an event happens. The provider spins up the environment, runs the function and shuts it down, and charges per execution.
At the store: a function that sends the confirmation e-mail when an order arrives.
SaaS (Software as a Service)
Ready-made software, used in the browser. You configure it, use it and look after your own data. The rest is up to the provider.
At the store: the e-mail marketing tool and the invoicing system.
The name in each cloud
The concepts hold for any provider. What changes are the products that offer them:
| Model | AWS | Azure | Google Cloud | Oracle Cloud |
|---|---|---|---|---|
| IaaS | EC2 | Virtual Machines | Compute Engine | OCI Compute |
| PaaS | Elastic Beanstalk | App Service | App Engine | Oracle APEX |
| FaaS | Lambda | Functions | Cloud Run functions | OCI Functions |
SaaS is different: you already use it. Gmail, Microsoft 365, Salesforce and Slack are SaaS, from companies that may run on any cloud underneath.
FaaS and serverless
FaaS is the best-known form of serverless. You write the function, the provider creates the environment when an event arrives and shuts it down afterwards. With no use, nothing runs and nothing is charged.
Don't mix them up
PaaS × FaaS
With both, you bring only code. The difference lies in what the code does and how it runs.
PaaS
“Do I have a whole application to publish?”
- Example
- An orders API that stays up all the time, serving requests.
- Focus
- An always-on application, with the scaling you configure.
FaaS
“Do I have a piece of code to run when something happens?”
- Example
- Generating a photo's thumbnail when it is uploaded.
- Focus
- An event triggers the function, with automatic scaling and per-execution billing.
In practice
How to choose
| If you… | Choose |
|---|---|
| Need to control the operating system or install specific software | IaaS |
| Want to publish an application without looking after servers | PaaS |
| Have short code, triggered by events, with irregular traffic | FaaS |
| Just need to use a ready-made tool | SaaS |
Key terms
Six terms to remember
Tap a card to see the definition.
Quick test
Three questions, exam style
01
The company needs to install specific software and choose the operating system version. Which model fits?
02
Some code runs only when a photo is uploaded, and the company pays only for the executions. That model is…
03
In which model does the provider take over most of the responsibilities?
IaaS, PaaS, FaaS and SaaS show up in every cloud certification, with the same concepts on AWS, Azure, Google Cloud and Oracle Cloud. The exam question is usually the same: who manages what? The higher up the stack, the more the provider takes over. The next step on the track is Security and Shared Responsibility in the Cloud.