Preskoči na sadržaj
BeoHosting
BeoHosting
Hosting

Šta je serverless hosting

BeoHosting Team··9 min čitanja čitanja
Šta je serverless hosting

Šta je serverless computing

Serverless computing je model cloud computing-a gdje pružatelj usluge automatski upravlja serverskom infrastrukturom dok se vi fokusirate isključivo na kod. Uprkos imenu, serveri i dalje postoje ali vi ne morate da ih konfiguišete, održavate, ažurirate ili skalirate. Pružatelj usluge se brine o svemu tome dok vi pišete funkcije koje se izvršavaju kao odgovor na događaje. Plaćate samo za vrijeme izvršavanja koda, ne za server koji čeka zahtjeve.

Koncept serverless-a je nastao evolucijom cloud computing-a. Od fizičkih servera prešli smo na virtuelne mašine, zatim na kontejnere i konačno na serverless funkcije. Svaki korak je apstrahirao sve više infrastrukture od developera, omogućavajući im da se fokusiraju na poslovnu logiku. AWS Lambda, lansiran 2014. godine, bio je prvi komercijai serverless servis i pokrenuo je revoluciju u načinu na koji razmišljamo o hosting-u.

Kako serverless funkcionira

Functions as a Service (FaaS)

FaaS je srce serverless arhitekture. Vi pišete funkciju koja obavlja specifičan zadatak, na primjer procesiranje slike, slanje emaila ili kreiranje PDF-a. Ta funkcija se pakuje i upload-uje na serverless platformu. Kada se dogodi događaj koji je trigger za vašu funkciju, poput HTTP zahtijeva, upload-a fajla ili poruke u redu čekanja, platforma automatski pokreće instancu vaše funkcije, izvršava je i vraća rezultat. Nakon izvršavanja, instanca se gasi. Ako istovremeno stigne 1000 zahtijeva, platforma pokreće 1000 instanci paralelno.

Backend as a Service (BaaS)

BaaS komponenta serverless-a pruža gotove backend servise poput baze podataka, autentifikacije, skladištenja fajlova i push notifikacija kao managed servise. Firebase od Google-a je najpopularniji BaaS koji nudi realtime bazu podataka, autentifikaciju, cloud storage i hosting u jednom paketu. AWS Amplify kombinira Lambda funkcije sa DynamoDB bazom, Cognito autentifikacijom i S3 skladištem. Supabase je open-source alternativa Firebase-u sa PostgreSQL bazom. BaaS eliminira potrebu za pisanjem standardnog backend koda za uobičajene operacije.

Event-driven arhitektura

Serverless aplikacije su inherentno event-driven što znači da se kod izvršava samo kada se dogodi određeni događaj. Događaji mogu biti HTTP zahtjevi od korisnika, promjena u bazi podataka, upload fajla u storage, zakazano vrijeme poput cron job-a, poruka u message queue-u ili IoT senzor podatak. Ova arhitektura je prirodno efikasna jer se resursi troše samo kada postoji posao za obavljanje. U tradicionalnom modelu, server konstantno radi i troši resurse čak i kada nema prometa.

Prednosti serverless-a

Automatsko skaliranje

Serverless platforme automatski skaliraju vaš kod od nula do milijuna zahtijeva bez ikakve konfiguracije. Nema potrebe za postavljanjem auto-scaling pravila, definisanjem minimalnog i maksimalnog broja instanci ili brige o load balanceru. Ako vaš sajt ima 10 posjetitelja u ponoć i 10000 tokom popodnevnog špica, serverless se automatski prilagođava. Ovo je posebno korisno za aplikacije sa nepredvidivim saobraćajem poput e-commerce sajtova tokom rasprodaja ili viralnih kampanja na društvenim mrežama.

Plaćanje po potrošnji

Tradicionalni hosting naplaćuje fiksnu mjesečnu cijenu bez obzira da li server radi na 1 ili 100 posto kapaciteta. Serverless naplaćuje samo vrijeme izvršavanja koda, obično u milisekundama, plus broj poziva funkcije. AWS Lambda na primjer nudi milijun besplatnih poziva mjesečno i 400000 GB-sekundi besplatnog compute vremena. Za mali sajt koji ima 50000 zahtijeva mjesečno, serverless hosting može biti praktično besplatan. Ovo je idealno za startape i projekte u ranoj fazi gdje budžet treba pažljivo kontrolirati.

Zero maintenance

Ne morate brinuti o ažuriranju operacijskog sistema, instaliranju sigurnosnih zakrpa, konfiguriranju web servera, upravljanju SSL sertifikatima ili monitoringu hardvera. Pružatelj usluge se brine o cijeloj infrastrukturi uključujući sigurnost, redundansu i backup. Ovo oslobađa vrijeme vašeg tima za rad na proizvodima umjesto na infrastrukturi. Za mali tim ili solo developera, ovo je ogromna prednost jer eliminira potrebu za DevOps znanjem.

Mane serverless-a

Cold start problem

Kada serverless funkcija nije korištena neko vrijeme, platforma gasi njenu instancu da uštedi resurse. Sljedeći zahtjev mora pokrenuti novu instancu što uvodi dodatno kašnjenje poznato kao cold start. Cold start može trajati od 100 milisekundi za Node.js funkcije do nekoliko sekundi za Java ili C# funkcije. Za aplikacije koje zahtijevaju konzistentno nisko vrijeme odgovora, cold start je značajan problem. Rješenja uključuju provisioned concurrency koji drži instance toplim, ali to eliminira prednost plaćanja po potrošnji.

Vendor lock-in

Svaki cloud pružatelj usluge ima svoj serverless ekosistem sa specifičnim API-jevima, alatima i servisima. Aplikacija napisana za AWS Lambda koristi API Gateway, DynamoDB i S3 koji nemaju direktne ekvivalente kod Google Cloud-a ili Azure-a. Migracija na drugog pružatelja usluge zahtijeva značajno prepisivanje koda. Framework-ovi poput Serverless Framework-a ili Terraform-a pokušavaju apstrahirati razlike između pružatelja usluge ali potpuna prenosivost je nerealna jer su fundamentalne razlike u servisima i API-jevima.

Ograničenja izvršavanja

Serverless funkcije imaju ograničenja u trajanju izvršavanja, memoriji i veličini paketa. AWS Lambda ima maksimalno trajanje od 15 minuta po izvršavanju, 10 GB memorije i 250 MB za deployment paket. Ovo znači da dugotrajne operacije poput obrade velikih video fajlova, kompleksnog mašinskog učenja ili batch procesiranja podataka nisu pogodne za serverless. Debugging i monitoring su kompleksniji jer nemate pristup serveru - koristite cloud-native alate poput CloudWatch-a ili X-Ray-a.

Kada koristiti serverless

Idealni slučajevi

  • API backend: REST ili GraphQL API-ji sa nepredvidivim saobraćajem su savršeni kandidati jer se automatski skaliraju i ne koštaju kada nema zahtijeva.
  • Event procesiranje: Obrada događaja poput upload-a slika, slanja emailova, generiranja izvještaja ili procesiranja webhook-ova.
  • Scheduled tasks: Cron poslovi koji se izvršavaju periodično poput čišćenja baze podataka, generiranja dnevnih izvještaja ili sinhronizacije podataka.
  • Chatbotovi: Odgovaranje na korisničke upite gdje je promet nepredvidiv i sporadičan.
  • IoT backend: Procesiranje podataka od senzora gdje broj uređaja može varirati od 10 do 10000.

Kada izbjeći serverless

Serverless nije idealan za aplikacije sa konzistentnim visokim saobraćajem jer fiksni server postaje isplativiji pri konstantnom opterećenju. Aplikacije koje zahtijevaju dugotrajne procese poput video renderinga, websocket konekcija ili streaming-a ne mogu se uklopiti u ograničenja serverless funkcija. Aplikacije sa specifičnim zahtjevima za operacijski sistem, hardver ili softver koji nije dostupan na serverless platformi zahtijevaju tradicionalni hosting. Legacy aplikacije koje koriste state između zahtijeva su teške za migraciju jer su serverless funkcije inherentno stateless.

Serverless vs tradicionalni hosting

Usporedba za mali sajt

Za mali sajt sa 10000 do 50000 posjeta mjesečno, zajedničkii hosting paket košta 3 do 10 dolara mjesečno i pruža predvidive troškove, jednostavnost i podršku za PHP, WordPress i email. Serverless može biti besplatan ili koštati manje od 1 dolara mjesečno za isti promet ali zahtijeva tehničko znanje za postavljanje i ne podržava tradicionalne CMS platforme. Za vlasnike malih sajtova koji koriste WordPress, tradicionalni hosting je praktičniji izbor.

Usporedba za veliku aplikaciju

Za veliku aplikaciju sa milijunima zahtijeva dnevno, napredni hosting sa dedikovanim resursima košta 50 do 500 dolara mjesečno ali zahtijeva DevOps tim za upravljanje. Serverless automatski skalira bez intervencije ali troškovi mogu brzo narasti pri konstantnom visokom opterećenju. Hibridni pristup gdje bazni promet obrađuje tradicionalni server dok serverless preuzima špiceve je često optimalno rješenje koje kombinira predvidivost troškova sa elastičnošću skaliranja. Na BeoHosting-u nudimo tradicionalne hosting pakete optimizirane za WordPress i web aplikacije sa predvidivim troškovima i punom tehničkom podrškom što je za većinu korisnika praktičnije rješenje od serverless arhitekture.

Zaključak

Serverless hosting predstavlja evoluciju cloud computing-a koja eliminira brigu o infrastrukturi i omogućava fokus na kod i poslovnu logiku. Automatsko skaliranje, plaćanje po potrošnji i zero maintenance su moćne prednosti za prave slučajeve korištenja. Međutim, cold start problem, vendor lock-in i ograničenja izvršavanja čine serverless nepogodnim za sve tipove aplikacija. Razumijevanje prednosti i mana vam pomaže da donesete informiranu odluku o tome da li serverless ili tradicionalni hosting bolje odgovara vašim potrebama.

BeoHosting Team

10+ godina iskustva — Stručnjaci za web hosting i infrastrukturu

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Posljednje ažuriranje: