Cloud Computing Tutorial · Cloud Basics · Lesson 1 of 24
Cloud Computing Introduction
What cloud computing is, the service models (IaaS, PaaS, SaaS, serverless), and how AWS, Azure and Google Cloud compare.
What is cloud computing?
Cloud computing means renting computing resources (servers, storage, databases, networks, AI models) from a provider over the internet, on demand, and paying for what you use. Instead of buying hardware months in advance, you create a server with an API call in seconds and delete it when you're done.
The big three providers are Amazon Web Services (AWS), Microsoft Azure and Google Cloud. This tutorial uses AWS names first and gives the Azure and Google Cloud equivalents, because the concepts transfer.
Service models
| Model | You manage | Provider manages | Examples |
|---|---|---|---|
| IaaS (infrastructure) | OS, runtime, app, data | Hardware, virtualisation, network | EC2, Azure VMs, Compute Engine |
| PaaS (platform) | App and data | Everything below | Elastic Beanstalk, Azure App Service, App Engine |
| Containers as a service | Containers and config | Servers and orchestration | ECS/Fargate, EKS, AKS, Container Apps, GKE, Cloud Run |
| Serverless functions | Function code | Everything else, including scaling | Lambda, Azure Functions, Cloud Run functions |
| SaaS (software) | Your data and settings | The whole application | Microsoft 365, Salesforce, GitHub |
The further down the table, the less you operate and the less you control.
Why companies move to the cloud
- Elasticity: scale up for a sale, down at night.
- Speed: new environments in minutes, through code.
- Managed services: databases, queues and AI services without running servers.
- Global reach: deploy close to users in many regions.
- Cost model: operating expense instead of large capital purchases (but only cheaper if you manage it well).
services = {
"virtual machines": ("EC2", "Azure Virtual Machines", "Compute Engine"),
"object storage": ("S3", "Blob Storage", "Cloud Storage"),
"managed PostgreSQL": ("RDS / Aurora", "Azure Database for PostgreSQL", "Cloud SQL / AlloyDB"),
"serverless functions": ("Lambda", "Azure Functions", "Cloud Run functions"),
"Kubernetes": ("EKS", "AKS", "GKE"),
"message queue": ("SQS", "Service Bus", "Pub/Sub"),
"identity and access": ("IAM", "Entra ID + Azure RBAC", "Cloud IAM"),
}
print(f"{'':22}{'AWS':16}{'Azure':32}Google Cloud")
for name, (aws, azure, gcp) in services.items():
print(f"{name:22}{aws:16}{azure:32}{gcp}")
Output
AWS Azure Google Cloud virtual machines EC2 Azure Virtual Machines Compute Engine object storage S3 Blob Storage Cloud Storage managed PostgreSQL RDS / Aurora Azure Database for PostgreSQL Cloud SQL / AlloyDB serverless functions Lambda Azure Functions Cloud Run functions Kubernetes EKS AKS GKE message queue SQS Service Bus Pub/Sub identity and access IAM Entra ID + Azure RBAC Cloud IAM
Test yourself
In which model does the provider run the servers, OS and scaling, while you only supply function code?
IaaSServerless functionsOn-premisesColocation
Show answer
Answer: Serverless functions
With serverless functions you deploy code; the provider runs and scales everything underneath.