Vodiči

Šta je serverless? Serverless računarstvo jednostavno objašnjeno

Serverless je način pokretanja koda u kojem ne postavljate niti upravljate serverima. Kod predajete cloud provajderu, a on ga pokreće samo kad nešto to okine (web zahtjev, upload fajla, obavještenje o plaćanju), pa se zaustavi. Obično plaćate vrijeme dok vaš kod stvarno radi, a ne mašinu koja stoji neaktivna.

Zašto je serverless važan kad pravite uz AI

Kad pogledate opcije hostinga ili kod aplikacije napravljene uz AI, naići ćete na „serverless funkcije“, „edge funkcije“ ili „cloud funkcije“. Mnoge hosting platforme ih nude, a neki AI alati postavljaju backende na ovaj način. Razumijevanje ovog modela pomaže vam u tri praktična pitanja:

  • Trošak. Hoće li vas aplikacija koštati novca dok je niko ne koristi?
  • Brzina. Zašto je prvi zahtjev nakon mirnog perioda sporiji?
  • Ograničenja. Zašto je neki dugi zadatak, poput generisanja velikog izvještaja ili obrade videa, istekao zbog vremenskog limita?

Korisno je znati i šta serverless nije: nije odsustvo backenda. I dalje imate kod na serveru; neko drugi samo vodi mašine. Za osnove pogledajte šta je server.

Analogija iz svakodnevnog života

Tradicionalni server je kao posjedovanje auta. Uvijek je tu, spreman da krene odmah, ali plaćate ga — osiguranje, parking, održavanje — bez obzira da li ga vozite.

Serverless je kao naručivanje taksija. Plaćate samo vožnje koje uzmete, i ako stotinu ljudi odjednom treba prevoz, dolazi stotinu taksija. Ali može postojati kratko čekanje dok auto stigne (hladni start), svaka vožnja ima maksimalnu dužinu, a vozač vas ne pamti od prošle vožnje (funkcije su bez stanja, stateless).

Kako rade serverless funkcije

U najčešćem obliku, nazvanom functions as a service:

  1. Napišete funkciju — mali dio koda koji obrađuje jednu vrstu događaja, na primjer „obradi POST na /api/bookings“.
  2. Postavite je. Provajder je čuva i povezuje s okidačem: URL-om, rasporedom, novim fajlom u skladištu, porukom u redu.
  3. Stigne događaj. Provajder pokrene kopiju vaše funkcije (ili iskoristi onu koja je već topla), izvrši je i vrati rezultat.
  4. Sam se skalira. Ako stigne hiljadu zahtjeva odjednom, provajder pokreće mnogo kopija paralelno, do limita vašeg naloga.
  5. Ide u mirovanje. Kad saobraćaja nestane, kopije se gase. Kad ništa ne radi, ne plaćate računanje.

Jednostavna serverless funkcija u JavaScriptu mogla bi izgledati ovako:

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

Ne postoji kod za pokretanje servera, otvaranje porta ili održavanje procesa. Platforma sve to radi.

„Serverless“ se također labavije koristi za druge upravljane servise koji se automatski skaliraju i naplaćuju po korištenju, na primjer serverless baze podataka, koje se pauziraju kad su neaktivne.

Ključni pojmovi

PojamZnačenje
Funkcija (FaaS)Mala jedinica koda koju provajder pokreće na zahtjev.
Okidač / događajOno što pokreće funkciju: HTTP zahtjev, upload fajla, tajmer, poruka iz reda.
Hladni startKašnjenje dok se nova kopija funkcije mora pokrenuti prije obrade zahtjeva.
Topla funkcijaKopija koja je već pokrenuta i može odmah odgovoriti.
Bez stanja (stateless)Funkcija ne pamti ništa između izvršavanja. Sve što mora ostati sačuvano ide u bazu ili skladište.
Vremenski limit (timeout)Maksimalno vrijeme koje jedno izvršavanje smije trajati. Na primjer, maksimum za AWS Lambda je 15 minuta; mnoge platforme imaju zadano daleko manje.
Edge funkcijaFunkcija koja se izvršava na mnogo lokacija blizu korisnika, često s strožim limitima.
Skaliranje na nulu (scale to zero)Ne pokreće ništa i ne plaća računanje kad nema saobraćaja.

Radni primjer: mali sajt za rezervacije

Sajt jednog studija joge dobija nalet posjeta svake nedjelje uveče kad se objavi novi raspored, a vrlo malo ostatak sedmice.

  • Na serveru koji stalno radi, studio plaća mašinu 24/7, dimenzioniranu za nedjeljni vrhunac, a ostatak vremena uglavnom je neaktivna.
  • Uz serverless funkcije, GET /api/classes i POST /api/bookings su funkcije. Nedjeljni nalet automatski pokreće mnogo kopija; u mirnom utorak ujutro gotovo ništa ne radi i račun je blizu nule.

Kompromisi se također vide. Prva osoba koja otvori sajt u utorak ujutro može čekati malo duže zbog hladnog starta. Baza podataka mora podnijeti mnogo kratkotrajnih konekcija iz mnogo kopija funkcija, što može zahtijevati pooler konekcija. A ako studio kasnije želi zadatak „generiši godišnji PDF prisustva za sve“, može prekoračiti vremenski limit funkcije i morati da se pokrene negdje drugo.

Kad serverless odgovara, a kad ne

Dobro odgovaraManje dobro odgovara
Saobraćaj koji je nizak, skokovit ili nepredvidljivStalan, velik saobraćaj, gdje server koji stalno radi može biti jeftiniji
Kratki zadaci zahtjev/odgovor: API-ji, obrada formulara, webhookoviDugotrajni poslovi: obrada velikih videa, veliki uvozi podataka
Mali timovi koji ne žele upravljati serverimaAplikacije koje drže žive konekcije otvorene (neke chat ili multiplayer funkcije), osim ako platforma to podržava
Obrada događaja: „kad se fajl uploaduje, napravi sličicu“Aplikacije kojima treba mnogo memorije između zahtjeva

Česte zablude

  • „Serverless znači da nema backenda.“ Znači da nema servera za upravljanje. I dalje pišete i štitite backend kod.
  • „Serverless je uvijek jeftiniji.“ Jeftin je pri malom obimu, ali cijena po zahtjevu može se nagomilati pri velikom, stalnom obimu.
  • „Serverless se beskonačno skalira.“ Platforme imaju limite istovremenosti, a vaša baza podataka može postati usko grlo mnogo prije funkcija.
  • „Fajlovi sačuvani u funkciji bit će tu i sljedeći put.“ Lokalno skladište je privremeno. Koristite bazu ili skladište za fajlove.
  • „Skaliranje na nulu je isto što i serverless.“ Srodno, ali ne i identično. Neke platforme pokreću vašu aplikaciju kao običan server koji zaspi kad je neaktivan i probudi se na sljedeći zahtjev — slične uštede i sličan kašnjenje prvog zahtjeva, ali bez vremenskih limita po funkciji.

Šta tražiti od vašeg AI alata

  • „Hoće li ovaj backend raditi kao serverless funkcije ili kao server koji stalno radi ili spava? Šta to znači za trošak?“
  • „Hoće li neki zadaci vjerovatno trajati duže od vremenskog limita platforme? Ako da, kako ih obraditi?“
  • „Sve što mora ostati sačuvano čuvaj u bazi ili u skladištu fajlova, a ne u memoriji ili lokalnim fajlovima.“
  • „Kako upravljati konekcijama na bazu ako se mnogo kopija pokrene istovremeno?“
  • „Koliko traje kašnjenje na prvom zahtjevu nakon što je aplikacija bila neaktivna?“

Kako Mythex hostuje aplikacije

Mythex svoj hosting ne opisuje kao serverless funkcije. Kad objavite, vaša aplikacija radi kao običan web app ili kontejner kojim Mythex upravlja umjesto vas — ne morate ništa postavljati. Radi se o skaliranju na nulu: objavljene aplikacije i njihove baze spavaju kad su neaktivne i bude se pri sljedećoj posjeti, aplikacija koja spava ne troši ništa na računanje, a dodatne mašine se pokreću samo kad je saobraćaj velik (Pro dozvoljava do 3 po servisu). Priložena Postgres baza također spava nakon 5 minuta neaktivnosti i naplaćuje se za vrijeme dok je bila budna. Dakle, dobijate velik dio koristi „plaćate ono što koristite“, uz isto vrstu kašnjenja prvog zahtjeva nakon mirnog perioda. Pogledajte ograničenja hostinga u dokumentaciji i naše vodiče o web hostingu i smanjenju troškova hostinga.

Pitanja

Šta serverless znači jednostavno rečeno?

Serverless znači da dajete cloud provajderu svoj kod, a on ga pokreće samo kad je potrebno, na primjer kad stigne zahtjev, bez da vi postavljate ili održavate ikakve servere. Obično plaćate vrijeme dok se vaš kod stvarno izvršava, a ne mašinu koja stalno radi.

Da li u serverless-u zaista nema servera?

Serveri postoje; vi ih samo ne upravljate. Provajder pokreće vaš kod na svojim mašinama, pokreće ga kad stignu zahtjevi, skalira ga pod opterećenjem i gasi kad je neaktivan.

Šta je hladni start?

Hladni start je dodatno kašnjenje kad se serverless funkcija pokrene nakon neaktivnosti, jer provajder prvo mora pokrenuti novu kopiju. Može biti jedva primjetno ili trajati sekundu i više, zavisno od platforme, jezika i veličine koda.

Da li je serverless jeftiniji od običnog servera?

Za aplikacije s malo ili neravnomjernim saobraćajem, često da, jer gotovo ništa ne plaćate dok miruju. Za aplikacije s velikim, stalnim saobraćajem, server koji stalno radi može ispasti jeftiniji. Zavisi od obrasca korištenja i cijena provajdera.

Koji su primjeri serverless platformi?

Poznati primjeri su AWS Lambda, Google Cloud Run functions, Azure Functions, Cloudflare Workers i funkcije na hosting platformama poput Vercela i Netlifyja.

Mythex · Pricing · Izradite bilo šta uz AI · Šabloni za web stranice i aplikacije · Mythex u poređenju · Rječnik izrade aplikacija uz AI · Besplatni alati za izradu aplikacija uz AI · English

English አማርኛ العربية Български বাংলা 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 Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)