FaaS – Function as a Service (Funkce jako služba)

Function as a Service (FaaS) je kategorie služeb cloud computingu, která umožňuje zákazníkům vyvíjet, spouštět a spravovat aplikační funkce, aniž by museli budovat a udržovat infrastrukturu spojenou s vývojem a spuštěním aplikace.

FaaS je klíčovou technologií realizující koncept Serverless computingu.

Hlavní charakteristiky

Na rozdíl od tradičních modelů (jako je IaaS nebo PaaS) má FaaS několik unikátních vlastností:

Abstrakce serveru: Vývojář nevidí instanci operačního systému ani runtime. Nahrává pouze čistý kód (funkci).

Event-driven (Řízeno událostmi): Funkce neběží neustále. Jsou „mrtvé“, dokud je neaktivuje specifický trigger (např. HTTP požadavek, zápis do DB).

Krátká životnost (Ephemeral): Funkce se spustí, vykoná úlohu a okamžitě zanikne. Stav (state) se mezi spuštěními neukládá (stateless).

Mikro-účtování: Zatímco u PaaS platíte za hodinu běhu serveru, u FaaS platíte za milisekundy skutečného času provádění kódu a počet volání.

Jak FaaS funguje (Pracovní postup)

Proces nasazení a běhu ve FaaS prostředí obvykle následuje tento cyklus:

1. **Napsání funkce:** Vývojář napíše úzký blok kódu (např. funkci pro zpracování platby nebo zmenšení obrázku).
2. **Definice triggeru:** Určí se, co funkci spustí (např. [[cloudevents|CloudEvent]] z fronty zpráv).
3. **Nasazení:** Kód je nahrán k poskytovateli (AWS, Azure, Google Cloud).
4. **Provedení:** Ve chvíli triggeru cloud provider okamžitě vytvoří kontejner, spustí v něm kód a po dokončení kontejner zničí.

Výhody a nevýhody

Výhody	Nevýhody
Extrémní škálovatelnost: Platforma zvládne 1 i 1 000 000 požadavků bez zásahu administrátora.	Cold Start: První spuštění funkce po delší době může trvat déle (latence).
Nízké náklady: Platíte jen za efektivní práci kódu.	Limity zdrojů: Omezená paměť RAM a maximální čas běhu (timeout).
Rychlost vývoje: Zaměření pouze na byznys logiku, nikoliv na konfiguraci prostředí.	Komplexita monitoringu: Sledování stovek malých funkcí je náročnější než sledování jednoho serveru.

Populární FaaS platformy

AWS Lambda: První masově rozšířená FaaS služba (představena 2014).

Google Cloud Functions: Optimalizováno pro JS (Node.js), Python a Go.

Azure Functions: Unikátní možností běhu v „Durable“ módu (stavové funkce).

OpenFaaS: Open-source projekt umožňující provozovat FaaS na vlastním hardwaru pomocí Kubernetes.

Příklady použití (Use Cases)

Zpracování dat v reálném čase: Automatické generování náhledů (thumbnails) po nahrání fotky uživatelem.

IoT (Internet věcí): Zpracování senzorových dat přicházejících z tisíců zařízení.

Chatboti: Funkce reagující na zprávy uživatelů.

Backend pro mobilní aplikace: API volání, která nepotřebují běžet 24/7.

— Související termíny: Serverless, CloudEvents, Mikroslužby, IaaS, PaaS.