You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
π Lecture 10 β Cloud Computing: Ship QuickNotes to the Real World
π Slide 1 β π₯ The Day Half the Internet Lived in us-east-1
ποΈ December 7, 2021, 15:34 UTC β an automated AWS internal-network scaling event misbehaves in us-east-1
πͺ¦ Within minutes, Lambda, Cognito, DynamoDB, Connect, EventBridge are all degraded β anything that used those internally is degraded too
π Cascading impact: Netflix, Disney+, Robinhood, Roomba, Slack, parts of AWS's own console. Even AWS engineers couldn't log in to fix the problem (Cognito was down)
β³ Eight hours of major impact, days of follow-up
π Lesson: "Cloud" doesn't mean "infinite reliability". It means "someone else's reliable" β and that "someone else" can have an event that takes you with them
π€ Think: Your QuickNotes deploy this week will run on someone else's infrastructure. What happens to it when that infrastructure has a bad afternoon?
π Slide 2 β π― Learning Outcomes
#
π Outcome
1
β Place workloads on the IaaS / PaaS / CaaS / FaaS / SaaS spectrum
2
β Explain the shared responsibility model
3
β Pick a region/zone with intent β for latency, data residency, cost
4
β Push the QuickNotes image to a real container registry
5
β Deploy QuickNotes to a hosted container platform with a public URL (the lab uses card-free Hugging Face Spaces + Cloudflare Tunnel β same patterns as Cloud Run / Lambda)
6
β Read a cloud bill β recognize the 3-4 line items that dominate it
π Slide 3 β πΊοΈ Lecture Overview
graph LR
A["βοΈ Cloud History"] --> B["π₯ͺ IaaS/PaaS/SaaS"]
B --> C["π€ Shared Responsibility"]
C --> D["π Region / Zone"]
D --> E["π¦ Registries"]
E --> F["π Serverless<br/>Cloud Run"]
F --> G["π΅ Cost"]
Loading
π Slides 1-5 β Cloud history, the layers, shared responsibility
π Slides 6-9 β Regions, zones, latency, data residency
π Slides 10-13 β Containers in the cloud: registries, Cloud Run
πͺ 2024-2026 β Most workloads are containers; serverless (Cloud Run / Lambda) dominates burst-y traffic; VMs remain for "needs full Linux" cases
Year
Service
What it offered
2006
S3
Storage as a service
2006
EC2
Compute by the hour
2008
App Engine
Managed runtime
2014
Lambda
Per-execution billing
2019
Cloud Run
Container-as-a-service
π Slide 5 β π₯ͺ The Service-Model Stack
graph TB
M["π» On-prem<br/>everything is yours"] --> I["ποΈ IaaS<br/>EC2 / Compute Engine"]
I --> C["π¦ CaaS<br/>ECS / GKE / Cloud Run"]
C --> P["ποΈ PaaS<br/>App Engine / Heroku"]
P --> F["β‘ FaaS<br/>Lambda / Cloud Functions"]
F --> S["π¨ SaaS<br/>Gmail / Salesforce"]
Loading
Layer
You manage
Cloud provider manages
Example
IaaS
OS + app + everything
Hardware, hypervisor
EC2, Compute Engine
CaaS
Container image
OS, scaling
ECS, GKE, Cloud Run
PaaS
App code
Container, OS, scaling
App Engine, Heroku
FaaS
A function
Everything else
Lambda, Cloud Functions
SaaS
Configuration
The whole product
Gmail, Slack, Salesforce
π― You're climbing the stack every lab: bare metal (Lab 4-5) β containers (Lab 6) β managed deploy (Lab 7 Ansible to VM) β CaaS (Lab 10 to Cloud Run)
π Slide 6 β π€ The Shared Responsibility Model
graph TB
YOU["YOU: data, code, IAM, network config, OS patching (IaaS only)"]
AWS["AWS / GCP / Azure: hardware, hypervisor, region power+cooling, base service"]
YOU -. boundary moves up the stack as you go from IaaS β CaaS β FaaS .-> AWS
Loading
What
IaaS
CaaS
FaaS
Data
π€
π€
π€
App code
π€
π€
π€
Runtime
π€
π€
βοΈ
Container image
π€
π€
βοΈ
Operating system
π€
βοΈ
βοΈ
Hypervisor
βοΈ
βοΈ
βοΈ
Hardware
βοΈ
βοΈ
βοΈ
π‘οΈ The boundary moves. Your job in CaaS is the image, not the OS. In FaaS, it's the function, not even the image
πͺ€ But IAM, data, and network configuration are always your responsibility β and that's where most cloud breaches happen
π― RTO = Recovery Time Objective (how long until you're back)
π― RPO = Recovery Point Objective (how much data you can lose)
πͺΆ For QuickNotes intro deploys, backup only is fine. Multi-region is SRE-Intro territory
π Slide 14 β β Cloud Antipatterns
π₯ Antipattern
β Better
One huge instance because "VMs are cheap"
Right-size; auto-scale on CPU/req-rate
0.0.0.0/0 ingress because "it just works"
Restrict to known CIDR or behind LB+WAF
Service-account JSON committed to Git
OIDC; secret manager; rotation policy
One AWS root account for everything
Org + accounts per environment; IAM Identity Center
No tags, no budgets
Mandate cost tags; alerts at 50/80/100% of budget
Multi-region "because that's what big companies do"
Multi-AZ first; multi-region only if you actually need it
π Slide 15 β π§ͺ Lab 10 Preview: Deploy QuickNotes to the Cloud
π‘ The lab uses two platforms that are truly free β no credit card required β so Innopolis students aren't blocked by payment-card friction. The concepts (registry, CaaS, scale-to-zero, public URL, edge) are identical to Cloud Run / Lambda / Fargate.
π¦ Task 1 (6 pts): Build the QuickNotes container image in your Lab 3 CI, push it to ghcr.io on a Git-tag trigger. Verify a fresh docker pull works from a clean machine
π Task 2 (4 pts): Deploy that image to Hugging Face Spaces (Docker SDK) β free hosted container, public URL, sleeps after ~30 min idle (real scale-to-zero, slower than Cloud Run). Measure cold vs warm latency
π Bonus (2 pts): Expose the same QuickNotes through a Cloudflare Tunnel (cloudflared, no account / no domain / no card required) and compare hosted-container latency vs local-via-edge latency
π οΈ Tools to try this week:gcloud CLI, flyctl, aws CLI v2
graph LR
P["π‘οΈ Week 9<br/>DevSecOps"] --> Y["π You Are Here<br/>Cloud Computing"]
Y --> N["π Reading 11<br/>Nix"]
N --> M["π Reading 12<br/>WASM"]
Loading
π― Remember: "It's running in the cloud" is not an outcome. The outcome is: users can reach it; it's monitored; it scales; it's secure; it doesn't break the budget. The 10 lectures of this course are what gets you there.