Príručky

Čo je serverless? Serverless výpočty jednoducho vysvetlené

Serverless je spôsob spúšťania kódu, pri ktorom si žiadne servery sami nenastavujete ani nespravujete. Svoj kód odovzdáte poskytovateľovi cloudu a ten ho spustí len vtedy, keď ho niečo spustí — webová požiadavka, nahratý súbor, notifikácia o platbe — a potom sa zastaví. Zvyčajne platíte za čas, počas ktorého váš kód skutočne beží, nie za stroj, ktorý len nečinne stojí.

Prečo serverless záleží, keď budujete s AI

Keď budujete aplikáciu s AI a pozeráte sa na možnosti hostingu alebo kód, narazíte na „serverless funkcie“, „edge funkcie“ alebo „cloud funkcie“. Mnohé hostingové platformy ich ponúkajú a niektoré nástroje na tvorbu s AI nasadzujú backendy týmto spôsobom. Pochopenie tohto modelu vám pomôže s tromi praktickými otázkami:

  • Náklady. Bude vás aplikácia stáť peniaze, keď ju nikto nepoužíva?
  • Rýchlosť. Prečo je prvá požiadavka po tichom období pomalšia?
  • Limity. Prečo dlhá úloha — generovanie veľkého reportu, spracovanie videa — skončila na časovom limite?

Pomôže tiež vedieť, čím serverless nie je: nie je to absencia backendu. Stále máte kód na strane servera; len niekto iný prevádzkuje stroje. Na základy pozrite čo je server.

Každodenné prirovnanie

Tradičný server je ako vlastniť auto. Je tu stále, pripravený okamžite vyraziť, ale platíte za neho — poistenie, parkovanie, údržbu — bez ohľadu na to, či ho používate.

Serverless je ako zavolať taxík. Platíte len za jazdy, ktoré absolvujete, a ak sto ľudí potrebuje odviezť naraz, príde sto taxíkov. Ale auto môže prísť s krátkym čakaním (studený štart), každá jazda má maximálnu dĺžku a vodič si vás z poslednej jazdy nepamätá (funkcie sú bezstavové).

Ako fungujú serverless funkcie

V najbežnejšej podobe, nazývanej functions as a service:

  1. Napíšete funkciu — malý kus kódu, ktorý spracuje jeden typ udalosti, napríklad „spracuj POST na /api/bookings.“
  2. Nasadíte ju. Poskytovateľ ju uloží a napojí na spúšťač: URL, plán, nový súbor v úložisku, správu vo fronte.
  3. Príde udalosť. Poskytovateľ spustí kópiu vašej funkcie (alebo použije už zahriatu), spustí ju a vráti výsledok.
  4. Škáluje sa sám. Ak naraz príde tisíc požiadaviek, poskytovateľ spustí mnoho kópií paralelne, až do limitov vášho účtu.
  5. Ide do nečinnosti. Keď návštevnosť ustane, kópie sa vypnú. Keď nič nebeží, za výpočty neplatíte.

Malá serverless funkcia v JavaScripte môže vyzerať takto:

export default async function handler(request) {
  const { name } = await request.json();
  return Response.json({ message: `Hello, ${name}` });
}

Nie je tu kód na spustenie servera, otvorenie portu ani udržanie bežiaceho procesu. Platforma to všetko zvláda sama.

Pojem „serverless“ sa používa aj voľnejšie pre iné spravované služby, ktoré sa automaticky škálujú a účtujú podľa použitia — napríklad serverless databázy, ktoré sa pri nečinnosti pozastavia.

Kľúčové pojmy

PojemVýznam
Funkcia (FaaS)Malá jednotka kódu, ktorú poskytovateľ spúšťa na požiadanie.
Spúšťač / udalosťČo funkciu spustí — HTTP požiadavka, nahratie súboru, časovač, správa vo fronte.
Studený štartOneskorenie, keď sa musí spustiť nová kópia funkcie pred spracovaním požiadavky.
Zahriata (warm)Kópia, ktorá už beží a môže odpovedať okamžite.
Bezstavová (stateless)Funkcia si medzi spusteniami nepamätá nič. Čo musí pretrvať, ide do databázy alebo úložiska.
Časový limit (timeout)Maximálny čas, ktorý môže jedno spustenie trvať. Napríklad maximum AWS Lambda je 15 minút; mnohé platformy majú predvolene oveľa menej.
Edge funkciaFunkcia, ktorá beží na mnohých miestach blízko používateľov, často s prísnejšími limitmi.
Škálovanie na nulu (scale to zero)Nič nebeží a za výpočty sa neplatí, keď nie je návštevnosť.

Pracovný príklad: malý rezervačný web

Rezervačný web jedného jogového štúdia zažíva každú nedeľu večer nápor návštevníkov, keď sa zverejní nový rozvrh, a zvyšok týždňa veľmi málo.

  • Na serveri bežiacom nonstop štúdio platí za stroj 24 hodín denne, dimenzovaný na nedeľný večerný špičkový nápor, a inak väčšinou nečinný.
  • S serverless funkciami sú GET /api/classes a POST /api/bookings funkcie. Nedeľný nápor automaticky spustí mnoho kópií; v tichom utorkovom ránu takmer nič nebeží a účet je blízko nuly.

Objavia sa aj kompromisy. Prvý človek, ktorý v utorok ráno otvorí web, môže čakať o chvíľku dlhšie na studený štart. Databáza musí zvládnuť mnoho krátkodobých pripojení od mnohých kópií funkcií, čo môže vyžadovať poolera pripojení. A ak štúdio neskôr bude chcieť úlohu „vygeneruj ročné PDF s účasťou pre všetkých“, môže prekročiť časový limit funkcie a musieť bežať inde.

Kedy serverless sedí — a kedy nie

Dobre sedíMenej vhodné
Návštevnosť nízka, špičkovitá alebo nepredvídateľnáStála veľká návštevnosť, pri ktorej môže byť server nonstop lacnejší
Krátke úlohy požiadavka/odpoveď: API, spracovanie formulárov, webhookyDlhšie bežiace úlohy: spracovanie veľkých videí, veľké importy dát
Malé tímy, ktoré nechcú spravovať serveryAplikácie, ktoré držia otvorené živé pripojenia (niektoré chaty alebo multiplayer funkcie), pokiaľ to platforma nepodporuje
Spracovanie udalostí: „keď sa nahrá súbor, vytvor náhľad“Aplikácie, ktoré potrebujú veľa pamäte držanej medzi požiadavkami

Bežné mylné predstavy

  • „Serverless znamená žiadny backend.“ Znamená to žiadne servery na správu. Stále píšete a zabezpečujete backendový kód.
  • „Serverless je vždy lacnejší.“ Lacný pri malom objeme, ale cena za požiadavku sa pri veľkom a stálom objeme môže nasčítať.
  • „Serverless sa škáluje nekonečne.“ Platformy majú limity súbežnosti a vaša databáza sa môže stať úzkym hrdlom oveľa skôr než funkcie.
  • „Súbory uložené vo funkcii tam budú aj nabudúce.“ Lokálne úložisko je dočasné. Použite databázu alebo úložisko súborov.
  • „Škálovanie na nulu je to isté ako serverless.“ Súvisiace, ale nie identické. Niektoré platformy bežia ako bežný server, ktorý pri nečinnosti zaspí a prebudí sa pri ďalšej požiadavke — podobná úspora a podobné oneskorenie prvej požiadavky, ale bez časových limitov na požiadavku typu funkcie.

Čo sa opýtať svojho AI nástroja na tvorbu

  • „Pobeží tento backend ako serverless funkcie, alebo ako server bežiaci nonstop či spiaci? Čo to znamená pre náklady?“
  • „Môžu niektoré úlohy trvať dlhšie ako časový limit platformy? Ak áno, ako ich máme spracovať?“
  • „Ukladaj všetko, čo musí pretrvať, do databázy alebo úložiska súborov, nie do pamäte alebo lokálnych súborov.“
  • „Ako majú byť spravované databázové pripojenia, ak naraz beží mnoho kópií?“
  • „Aké je oneskorenie prvej požiadavky po tom, čo aplikácia bola nečinná?“

Ako Mythex hostuje aplikácie

Mythex svoj hosting neopisuje ako serverless funkcie. Keď publikujete, vaša aplikácia beží ako bežná webová aplikácia alebo kontajner, ktorý za vás spravuje Mythex — nie je treba nič nastavovať. Je to škálovanie na nulu: publikované aplikácie a ich databázy pri nečinnosti zaspia a pri ďalšej návšteve sa prebudia, spiaca aplikácia neminie nič na výpočty a ďalšie stroje sa spúšťajú len pri veľkej návštevnosti (Pro povoľuje až 3 na službu). Pripojená databáza Postgres tiež zaspí po 5 minútach nečinnosti a účtuje sa čas, počas ktorého bola hore. Takže získate veľkú časť výhody „platíte za to, čo používate“, s rovnakým typom oneskorenia prvej požiadavky po tichom období. Pozrite limity hostingu v dokumentácii a naše návody o webhostingu a znižovaní nákladov na hosting.

Otázky

Čo znamená serverless jednoducho povedané?

Serverless znamená, že poskytovateľovi cloudu odovzdáte svoj kód a ten ho spustí len vtedy, keď je to treba — napríklad keď príde požiadavka — bez toho, aby ste nastavovali alebo sledovali akékoľvek servery. Zvyčajne platíte za čas, počas ktorého váš kód skutočne beží, a nie za stroj, ktorý je stále zapnutý.

Naozaj sú v serverless nejaké servery?

Servery existujú; len ich nespravujete. Poskytovateľ spúšťa váš kód na svojich strojoch, štartuje ho, keď prídu požiadavky, pri záťaži ho škáluje a pri nečinnosti vypína.

Čo je studený štart?

Studený štart je dodatočné oneskorenie, keď sa serverless funkcia spustí po nečinnosti, pretože poskytovateľ najprv musí spustiť novú kópiu. Môže byť sotva citeľný alebo trvať sekundu a viac, podľa platformy, jazyka a veľkosti kódu.

Je serverless lacnejší ako bežný server?

Pri aplikáciách s malou alebo nerovnomernou návštevnosťou často áno, pretože pri nečinnosti platíte takmer nič. Pri aplikáciách s veľkou a stálou návštevnosťou môže byť server, ktorý beží nonstop, lacnejší. Záleží to od vzoru používania a cenníka poskytovateľa.

Aké sú príklady serverless platforiem?

Známe príklady sú AWS Lambda, Google Cloud Run functions, Azure Functions, Cloudflare Workers a funkcie hostingových platforiem ako Vercel a Netlify.

Mythex · Pricing · Vytvorte čokoľvek s AI · Šablóny webov a aplikácií · Mythex v porovnaní · Slovník pojmov tvorby aplikácií s AI · Bezplatné nástroje na tvorbu aplikácií s AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)