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.

On-premYouYouYouYouYouYouYouIaaSYouYouYouYouYouProviderProviderPaaSYouYouProviderProviderSharedProviderProviderFaaSYouYouProviderProviderProviderProviderProviderSaaSProviderSharedProviderProviderProviderProviderProviderApplicationDataRuntimeOperating systemScaling and capacityVirtualizationHardwareYouSharedProvider
Who manages each layer. “On-prem” is your own data center.

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:

ModelAWSAzureGoogle CloudOracle Cloud
IaaSEC2Virtual MachinesCompute EngineOCI Compute
PaaSElastic BeanstalkApp ServiceApp EngineOracle APEX
FaaSLambdaFunctionsCloud Run functionsOCI 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 softwareIaaS
Want to publish an application without looking after serversPaaS
Have short code, triggered by events, with irregular trafficFaaS
Just need to use a ready-made toolSaaS

Key terms

Six terms to remember

Tap a card to see the definition.

ArchitectureFinancial

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.