Modul 11 — Cloud platformy
52. Úvod do cloud computingu a modely IaaS/PaaS/SaaS
Co znamená cloud computing, hlavní nasazovací modely a rozdíl mezi IaaS, PaaS a SaaS z pohledu toho, co spravuje poskytovatel a co zákazník.
Úvod a kontext
Doposud kurz probíral nástroje (Docker, Kubernetes, Terraform, Ansible),
které fungují nezávisle na tom, kde fyzicky infrastruktura běží — může
to být firemní datacentrum, nebo pronajatá kapacita u cloudového
poskytovatele. Tato lekce otevírá modul o cloudu: vysvětluje, co cloud
computing vlastně je, jaké má nasazovací modely a jaký je zásadní
rozdíl mezi IaaS, PaaS a SaaS — rozdíl, který určuje, o co
se musí starat vývojář/DevOps inženýr a o co se stará poskytovatel.
Teorie
Co je cloud computing
Cloud computing je poskytování výpočetních zdrojů (servery,
úložiště, sítě, databáze, ...) jako služby přes internet, na vyžádání
a s platbou podle skutečné spotřeby, místo nákupu a provozu vlastního
fyzického hardwaru. Klíčové vlastnosti, které odlišují cloud od
klasického pronájmu serveru:
- Samoobslužnost na vyžádání — nový server nebo databázi lze
vytvořit sám, během minut, bez nutnosti jednat s dodavatelem hardwaru. - Elasticita — kapacitu lze podle potřeby rychle navýšit i snížit
(automaticky nebo ručně), a platí se jen za to, co se skutečně
používá. - Sdílená infrastruktura (multi-tenancy) — fyzický hardware
poskytovatele obsluhuje mnoho zákazníků současně, izolovaných od
sebe virtualizací. - Měřená služba — přesné měření spotřeby (CPU-hodiny, GB přenesených
dat, počet requestů) jako základ pro platbu.
Nasazovací modely
- Veřejný cloud (public cloud) — infrastruktura sdílená mezi
libovolnými zákazníky, provozovaná poskytovatelem (AWS, Azure, GCP).
Nejnižší počáteční náklady, nejvyšší elasticita. - Privátní cloud (private cloud) — infrastruktura vyhrazená jedné
organizaci, ať už provozovaná interně, nebo poskytovatelem, ale
fyzicky/logicky izolovaná. Používá se kvůli přísným regulatorním nebo
bezpečnostním požadavkům. - Hybridní cloud — kombinace veřejného a privátního cloudu (nebo
on-premise datacentra), typicky s propojením sítí, kdy citlivá data
zůstávají privátně a proměnlivá zátěž se odbavuje ve veřejném cloudu. - Multi-cloud — vědomé používání více veřejných cloudových
poskytovatelů současně (podrobněji v lekci o multi-cloud strategiích
v modulu pro seniorní úroveň).
Modely IaaS / PaaS / SaaS
Tři základní modely cloudových služeb se liší tím, kolik odpovědnosti
za správu zůstává na zákazníkovi a kolik přebírá poskytovatel. Je
užitečné si to představit jako škálu:
Spravuje ZÁKAZNÍK ←──────────────────→ Spravuje POSKYTOVATEL
On-premise: aplikace, runtime, OS, virtualizace, servery, síť, datacentrum
IaaS: aplikace, runtime, OS | virtualizace, servery, síť, datacentrum
PaaS: aplikace | runtime, OS, virtualizace, servery, síť, datacentrum
SaaS: (jen používání) | aplikace, runtime, OS, virtualizace, servery, síť, datacentrum
IaaS (Infrastructure as a Service) — poskytovatel dává k dispozici
základní výpočetní zdroje: virtuální servery, úložiště, síť. Zákazník
si sám instaluje a spravuje operační systém, runtime, veškerý software
i aplikaci. Příklady: AWS EC2, Azure Virtual Machines, Google Compute
Engine. Nejvyšší kontrola a flexibilita, ale i nejvyšší provozní
zodpovědnost — patchování OS, zabezpečení, škálování si řeší zákazník
(často právě nástroji z tohoto kurzu — Terraform, Ansible, Docker).
PaaS (Platform as a Service) — poskytovatel spravuje operační
systém, runtime prostředí i infrastrukturu pod ním; zákazník jen
nahrává a spouští svůj aplikační kód. Příklady: AWS Elastic Beanstalk,
Heroku, Google App Engine, Azure App Service. Rychlejší vývoj a méně
provozní zátěže, ale méně kontroly nad prostředím (např. přesná verze
OS balíčků) a typicky vyšší náklady na jednotku výkonu než srovnatelný
IaaS.
SaaS (Software as a Service) — kompletní hotová aplikace dostupná
přes internet, zákazník ji jen používá (typicky přes prohlížeč),
nezajímá se vůbec o infrastrukturu, runtime ani o to, jak je aplikace
nasazená. Příklady: Gmail, Salesforce, Slack, GitHub jako služba. Z
pohledu DevOps inženýra je to spíš nástroj, který se v procesu používá
(např. GitHub jako SaaS pro hosting Git repozitářů a CI/CD), ne něco, co
se sám provozuje.
Kde v této škále leží Kubernetes jako služba
Praktický mezipřípad: spravovaný Kubernetes (AWS EKS, Azure AKS,
Google GKE) je vlastně PaaS na úrovni orchestrace kontejnerů —
poskytovatel spravuje řídicí rovinu clusteru (viz dřívější lekce o
architektuře Kubernetes), zákazník spravuje jen to, co do clusteru
nasazuje (Pody, Deploymenty, konfiguraci). To je typický příklad, jak
se hranice modelů v praxi prolínají — jedna platforma může být z
pohledu jedné vrstvy IaaS (uzly clusteru běžící na virtuálních
serverech) a z pohledu jiné vrstvy PaaS (samotná řídicí rovina
Kubernetes).
Praktický příklad
Konkrétní srovnání téhož úkolu — provozovat webovou aplikaci s
databází — ve třech modelech:
IaaS přístup (plná kontrola, plná zodpovědnost):
# zákazník sám vytváří, patchuje a spravuje vše
terraform apply # vytvoří EC2 instanci a síť
ansible-playbook setup.yml # nainstaluje OS balíčky, Docker, aplikaci
# zákazník odpovídá i za bezpečnostní aktualizace OS, monitoring, zálohy
PaaS přístup (poskytovatel spravuje runtime):
# zákazník jen nahraje aplikační kód, platforma zajistí zbytek
git push heroku main
# Heroku samo zajistí OS, runtime prostředí, škálování instancí,
# load balancing; zákazník neřeší patche OS ani konfiguraci serveru
SaaS přístup (žádná infrastruktura, jen konfigurace v UI):
Zákazník si v cloudové službě (např. Salesforce) jen nastaví
formuláře a pravidla přes webové rozhraní — žádný kód, žádný server,
žádné nasazování v tradičním slova smyslu.
Shrnutí
Cloud computing poskytuje výpočetní zdroje na vyžádání, elasticky
a s platbou podle spotřeby, ve veřejném, privátním, hybridním nebo
multi-cloud nasazovacím modelu. IaaS, PaaS a SaaS se liší tím, kolik
vrstev (OS, runtime, infrastruktura, aplikace) spravuje zákazník a kolik
poskytovatel — IaaS dává nejvíc kontroly a zodpovědnosti zákazníkovi,
SaaS nejméně. Spravovaný Kubernetes je praktickým příkladem, jak se
tyto modely v reálných službách prolínají.
Kontrolní otázky
- Co konkrétně spravuje zákazník a co poskytovatel v modelu PaaS, ve
srovnání s IaaS? - Proč se hybridní cloud používá i přes svou vyšší komplexnost oproti
čistě veřejnému cloudu? - Je spravovaný Kubernetes (EKS/AKS/GKE) IaaS, PaaS, nebo SaaS? Zdůvodněte.
- Mini cvičení: zařaďte tři služby — vlastní virtuální server s ručně
nainstalovaným PostgreSQL, Heroku Postgres jako spravovanou databázi,
a Google Workspace (e-mail, dokumenty) — do modelů IaaS/PaaS/SaaS a
zdůvodněte zařazení každé z nich.
Lekce na sebe nejsou zamčené — libovolnou lekci můžete otevřít i označit jako hotovou v jakémkoliv pořadí.