Znovu jsem si vybavil dobu, kdy jsem serverless nechápal, a položil všechny otázky, které mě tehdy trápily.

Zmizely servery? Kdo je ten kouzelník

🧙‍♂️ (doktor) „🐣, dnes se naučíme, co je serverless. Z názvu to zní jako kouzlo ‚zmiz, servere‘, ale realita je mnohem prozaičtější – a zároveň hlubší.“

🐣 (student) „Takže už žádné servery? Zakřičel jsi ‚Servery, pryč!‘ jako Harry Potter a ony se vypařily?“

🧙‍♂️ (doktor) „Ha! Přesně to si myslí devadesát procent lidí při prvním setkání. Ve skutečnosti servery někde v cloudu makají jako divé, jen se o ně uživatel nemusí starat.“

🐣 (student) „Takže podvod. Stejně jako zelenina ‚bez pesticidů‘, u které se jen tajně stříká někde v zákulisí.“

🧙‍♂️ (doktor) „Podobenství je sice šílené, ale sedí. ‚Less‘ v serverless znamená ‚bez správy‘. Dříve sis server pořídil, nainstaloval OS, běhal k němu při výpadcích… zkrátka jako chov křečka. Serverless znamená, že tuhle péči převezme poskytovatel cloudu.“

🐣 (student) „Když křeček umře, člověk brečí. Když umře server, volají rozzuření zákazníci. To je horší.“

🧙‍♂️ (doktor) „A na rozdíl od křečka tě ve tři ráno probudí hláška ‚Databáze neodpovídá‘…“


📌 Poznámka: Základní pojetí serverless Serverless neznamená „bez serverů“, ale „správu serverů přebírá poskytovatel cloudu“.

  • Tradiční model: servery kupuješ, provozuješ a spravuješ sám.
  • Serverless: infrastrukturu obstarává poskytovatel, ty se soustředíš na kód.

Jak serverless funguje: ninjové, kteří se objeví jen na povel

🐣 (student) „To zní složitě. Jak se to liší od běžného serveru?“

🧙‍♂️ (doktor) „Serverless se spouští jen ve chvíli, kdy je zavolán – ‚puf‘, udělá práci a zase zmizí. Aplikaci proto musíš navrhnout jako sprintera. Maratonec nemá šanci.“

🐣 (student) „Takže když se ozve ‚Teď hned spočítej!‘, ninja vyskočí, a jakmile je hotovo, vypaří se?“

🧙‍♂️ (doktor) „Přesně! Je to ninja, který jinak žije v úkrytu. Za dobu, kdy nic nedělá, neplatíš nájem.“

🐣 (student) „Jenže ninjové se pokaždé objeví odjinud. Co třeba IP adresa?“

🧙‍♂️ (doktor) „Dobrá otázka! Pevnou adresu nemají. Pokaždé běží na jiném serveru, takže bránu do jejich vesnice obstarává API Gateway. Ta požadavky přeposílá správnému ninjovi.“

🐣 (student) „A když je pokaždé jiný, nemá paměť na minule?“

🧙‍♂️ (doktor) „Nemá. Musí být bezstavový. Neproběhne žádné ‚to je pokračování včerejška‘. Je to zlatá rybka s pamětí tří sekund.“

🐣 (student) „To je nepraktické. Jak pak funguje přihlášení nebo správa session?“

🧙‍♂️ (doktor) „Stav se ukládá do externích úložišť – databáze, Redis, prostě do ‚skladiště svitků‘ mimo ninju.“


📌 Poznámka: Proč je bezstavový návrh nutnost Každé spuštění serverless funkce startuje nový kontejner, takže lokální stav (proměnné, soubory, session) nepřežije.

  • Správa stavu: používej externí DB, Redis, S3…
  • Session: ukládej pomocí JWT nebo do externího úložiště.
  • Soubory: mimo dočasné operace patří do externích úložišť.

Tradiční server versus ninja: mazlíček vs. žoldák

🐣 (student) „Jak to vypadá v praxi?“

🧙‍♂️ (doktor) „Představ si generování náhledů po nahrání fotky. U klasického serveru běží mašina 24/7 a čeká, až se něco stane. Žere elektřinu, může spadnout.“

🐣 (student) „Jako vrátný, co stojí u dveří a čeká, jestli někdo přijde.“

🧙‍♂️ (doktor) „Ano. A ještě k tomu může onemocnět. Serverless reaguje až na zvonek ‚Fotka nahrána!‘, ninja se objeví, vyrobí náhled a zmizí.“

🐣 (student) „Jenže než ninja dorazí, netrvá to dlouho?“

🧙‍♂️ (doktor) „To je problém cold startu. Ninja nejdřív vstane, protáhne se – u těžkých jazyků jako Java je to, jako by si dělal snídani, než se dá do práce.“

🐣 (student) „To by mě štvalo. Znamená to, že se nehodí na realtime?“

🧙‍♂️ (doktor) „Existuje rozehřívání, ale serverless je nejlepší pro dávky a asynchronní úlohy. Na okamžité odpovědi není.“


Příklad: co se děje ve fotogalerii

🐣 (student) „Ukaž to na konkrétní aplikaci. Třeba sdílení fotek.“

🧙‍♂️ (doktor) „Dobře. Tradiční přístup vypadá takto:“

Tradiční server:

Webový server běžící 24 hodin denně (měsíčně 5000 jenů)
↓
„Fotka nahrána“
↓
Generování náhledu na serveru
↓
Uložení do databáze

🧙‍♂️ (doktor) „Ať nikdo nic nenahrává, nájem 5000 jenů platíš dál. Jako obchod, do kterého nikdo nechodí, ale nájem běží.“

🐣 (student) „To je plýtvání.“

🧙‍♂️ (doktor) „Serverless verze:“

Serverless:

Obrázek se uloží do S3
↓
Událost S3 spustí funkci Lambda
↓
Lambda se nastartuje (0,1 s)
↓
Vytvoří náhled a uloží ho do jiného bucketu
↓
Lambda zanikne
↓
Platíš jen za runtime (např. 0,001 jenů za spuštění)

🐣 (student) „Když to nikdo nepoužívá, neplatím nic?“

🧙‍♂️ (doktor) „Správně. Platíš za použití. Jenže pokud to exploduje virálně, exploduje i faktura. Sto tisíc spuštění po vydání virálního videa…“

🐣 (student) „…a faktura je tisíc jenů!“

🧙‍♂️ (doktor) „Matematika sedí, ale připočti přenos, API Gateway, databáze. Snadno je z toho několik set tisíc. Moderní tragédie ‚Zvirálnili jsme, ale zkrachovali‘.“


📌 Poznámka: Výhody a pasti účtování podle spotřeby

Výhody

  • Téměř nulové vstupní náklady
  • Automatické škálování podle provozu
  • Žádná starost o infrastrukturu

Rizika

  • Neočekávané vysoké faktury (hlavně při virálním růstu)
  • Složitý ceník
  • Špatná viditelnost, když kombinuješ více služeb

Opatření

  • Nastav si alerty na účtování
  • Zaváděj rate limiting
  • Dělej zátěžové testy a odhady nákladů dopředu

Směry serverlessu: specializace ninja klanů

🐣 (student) „Slyšel jsem, že serverless má víc variant?“

🧙‍♂️ (doktor) „Tři hlavní školy: FaaS (Function as a Service), BaaS (Backend as a Service) a serverless kontejnery.“

🐣 (student) „Co je FaaS?“

🧙‍♂️ (doktor) „Služba ‚odevzdej funkci a my ji spustíme‘. AWS Lambda, Google Cloud Functions, Azure Functions. Napíšeš funkci, a když ji někdo zavolá, provozovatel ji spustí a podle času ti naúčtuje – jako sushi bar.“

🐣 (student) „A BaaS?“

🧙‍♂️ (doktor) „‚Zařídíme databázi, autentizaci, push notifikace…‘ – prostě mamahotel. Firebase, Supabase, AWS Amplify. Pohodlné, ale hrozí vendor lock-in. Najednou bez nich nedýcháš.“

🐣 (student) „Takže musíš poslouchat ‚rodiče‘.“

🧙‍♂️ (doktor) „Ano. Najednou zjistíš, že bez jejich služeb nepřežiješ.“


V čem serverless vyniká a v čem selhává

🐣 (student) „Tak proč se s tím namáhat? Nechat se dřít manuálně?“

🧙‍♂️ (doktor) „Kvůli rychlosti. Nápad z večera můžeš ráno zveřejnit. Když je provoz malý, téměř nic neplatíš. Serverless má jasné silné i slabé stránky.“

V čem je dobrý:

  • Zpracování obrázků (náhledy po uploadu)
  • Transformace dat (CSV → JSON)
  • Odesílání notifikací (e-mail, push)
  • Pravidelné batch úlohy (denní reporty)
  • Lehká API (vyhledávání uživatelů, získávání dat)

V čem je slabý:

  • Realtime aplikace (chaty, hry)
  • Dlouhé výpočty (video encoding, ML)
  • Komplexní stavové aplikace
  • Těsně provázané legacy systémy

🐣 (student) „Takže sprint mu jde, maraton ne.“

🧙‍♂️ (doktor) „Naprostá pravda. Na stovku exceluje, na maraton chcípne.“


Účtovací pasti: ninja na hodinovou mzdu

🐣 (student) „Znamená to, že kdo má svaly, nepotřebuje serverless, a kdo je chytrý, vydělá? Ale kdo se splete, zbankrotuje?“

🧙‍♂️ (doktor) „Přesně. Serverless je technologie ‚když přemýšlíš, vyděláš, když usneš, shoříš‘. Pokud nepochopíš účtování, spadneš do pekla.“

🐣 (student) „Jakého?“

🧙‍♂️ (doktor) „Napiš třeba nekonečnou smyčku. U klasického serveru jen zatížíš CPU. V serverless vyvoláš nekonečnou armádu ninjů, kteří si počítají hodiny.“

🐣 (student) „Celá legie maká a posílá fakturu? Horor.“

🧙‍♂️ (doktor) „A zjistíš to až z účtu na konci měsíce: ‚Proč sto tisíc?‘ AWS účty v řádu milionů jenů nejsou výjimka.“

🐣 (student) „Dá se bránit?“

🧙‍♂️ (doktor) „Ano. Nastav alarmy, časové limity, omezení souběžných běhů. Sepiš s ninjou pracovní smlouvu.“


Skutečné průšvihy: když přijde virál

🐣 (student) „Slyšel jsi o konkrétních případech drahých účtů?“

🧙‍♂️ (doktor) „Hromady. Třeba startup s aplikací na vylepšení fotek pomocí AI.“

🐣 (student) „Co se stalo?“

🧙‍♂️ (doktor) „Počítali s 0,1 jenu na fotku. Pak se to stalo virální. Sto milionů fotek za den, reálné náklady tři jeny na kus.“

🐣 (student) „1000000 × 3 = 3 000 000 jenů…“

🧙‍♂️ (doktor) „A takhle celý měsíc. ‚Proslavili jsme se, ale firma padla.‘“

🐣 (student) „Neměli limity?“

🧙‍♂️ (doktor) „Neměli. Nepočítali s takovým úspěchem. Dnes je standard mít strop i na úspěch.“

🐣 (student) „To zní ironicky.“

🧙‍♂️ (doktor) „‚Radostné‘ výkřiky se rázem stanou doslovnými.“


Jak se mění vývoj: extáze magie a bolest omezení

🐣 (student) „Jaké je to vyvíjet? Je to jiné než klasika?“

🧙‍♂️ (doktor) „Ze začátku euforie. Napíšeš funkci, klikneš deploy a je venku. Cítíš se jako kouzelník.“

🐣 (student) „To zní skvěle.“

🧙‍♂️ (doktor) „Jenže pak zjistíš, že lokální testování je otrava, debugování složité. Ninja zmizí, takže honíš logy v CloudWatchi, X-Ray, CloudTrailu… detektivka.“

🐣 (student) „Zní to otravně. Není lepší mít vlastní server?“

🧙‍♂️ (doktor) „To je past serverlessu. Na začátku magie, později kletby. Ale jakmile si zvykneš, nechceš se vracet k péči o servery.“

🐣 (student) „Takže je to návykové?“

🧙‍♂️ (doktor) „Ano. Svoboda od starostí se servery je opojná. Místo toho řešíš účty a omezení návrhu.“


Serverless vs. klasika: skutečné náklady

🐣 (student) „Která varianta je levnější?“

🧙‍♂️ (doktor) „Záleží na využití a předvídatelnosti. Představ si graf:“

Tradiční server

  • Fixní náklady: 50 000 jenů měsíčně
  • Variabilní: téměř nula
  • Model „menu dne“

Serverless

  • Fixní náklady: skoro nic
  • Variabilní: podle využití
  • Model „sushi na běžícím pásu“

🐣 (student) „Takže záleží, kolik sním.“

🧙‍♂️ (doktor) „Přesně. Málo – serverless vyhrává. Hodně – vyplatí se vlastní server. Konkrétně:

Do 1 milionu požadavků měsíčně: serverless vychází výrazně levněji Nad 10 milionů: klasika je levnější Mezitím: rozhodují provozní náklady a organizace týmu“

🐣 (student) „A když se v odhadu sekneš?“

🧙‍♂️ (doktor) „Je to loterie. Plánoval jsi hostinu a nemáš chuť. Nebo jsi chtěl lehkou svačinu a skončí z toho soutěž v pojídání.“


Má serverless budoucnost?

🐣 (student) „Tak uspěje serverless, nebo propadne?“

🧙‍♂️ (doktor) „Nečekám totální vítězství ani porážku. Klasika, kontejnery i serverless budou koexistovat. Svět potřebuje rytíře, ninjy i kouzelníky.“

🐣 (student) „Žádná technologie nevyřeší všechno.“

🧙‍♂️ (doktor) „Správně. Stříbrná kulka neexistuje. Ale použité ve správný moment je serverless velmi silný nástroj.“

🐣 (student) „Komu bys ho doporučil?“

🧙‍♂️ (doktor) „Těmto typům lidí:

Serverless sedí lidem, kteří

  • chtějí rychle dostat nápad do produkce,
  • rozumějí cenám a umí počítat,
  • dávají přednost pohodlnému provozu před absolutní kontrolou,
  • mají radost z nových technologií.

Serverless nesedí těm, kdo

  • chtějí mít vše ve vlastních rukou,
  • neumí hlídat rozpočet,
  • kladou nad vše stabilní provoz,
  • jsou svázaní legacy systémy.“

🐣 (student) „Takže ‚inovátor a skrblík‘ v jedné osobě.“

🧙‍♂️ (doktor) „Výstižné. Potřebuješ nadšení i šetrnost.“


Závěr: Serverless jako životní styl

🐣 (student) „Takže serverless doporučuješ?“

🧙‍♂️ (doktor) „Neříkám ‚používej ho vždy‘, ale ‚chápej ho a rozhodni se vědomě‘. Serverless je kouzlo, které balancuje pohodlí a riziko.“

🐣 (student) „Kouzla se dají snadno obrátit proti kouzelníkovi.“

🧙‍♂️ (doktor) „Právě proto se musíš naučit správné zaklínadlo. Serverless je technologie ‚přemýšlej, vyděláš; polev, shoříš‘. Kdo sází na svaly, nemá šanci. Kdo zapojí mozek, získá zbraň.“

🐣 (student) „Takže shrnutí:

  • Správa serverů: posilovna bolesti,
  • Serverless: survival v říši faktur. Rozumím?“

🧙‍♂️ (doktor) „Perfektní shrnutí. Volba závisí na situaci. Jen už neexistuje možnost ‚nevolím nic‘. Dnešní inženýr si musí vybrat rytíře, ninju nebo kouzelníka.“

🐣 (student) „Dobře, nejdřív základy, pak ninjové.“

🧙‍♂️ (doktor) „S tímto přístupem se z tebe stane mistrovský ‚krotitel ninjů‘. Jen pozor na faktury.“

🐣 (student) „Ano, alarmy na účtování zapnu vždycky!“


📌 Finální poznámka: Rámec pro rozhodnutí o serverlessu

O nasazení serverlessu rozhoduj podle následujících faktorů:

Technické hledisko

  • charakter zpracování (dávkové vs. realtime)
  • četnost spouštění (nízká vs. vysoká)
  • potřeba správy stavu
  • napojení na legacy systémy

Byznysové hledisko

  • rozpočet na začátek
  • dovednosti provozního týmu
  • jistota růstových predikcí
  • míra tolerance k vendor lock-inu

Závěr: Serverless není univerzální lék, ale specializovaný nástroj s obrovskou silou ve správné situaci. Kdo se připraví a chápe rizika, získá mocného spojence. Kdo ho nasadí bezhlavě, zaplatí na faktuře.

Pro moderního inženýra je serverless povinnou položkou na seznamu možností – a dovedností vědět, kdy ho použít.