Šta je serverless?

Šta je serverless?

Tehnologija
17.11.2018. / 17.11.2018.
Vjerovatno ste u zadnje vrijeme dosta puta čuli za pojam serverless ali šta to ustvari predstavlja?

Sta je serverless arhitektura?

Najkraće rečeno, serverless arhitektura je način razvoja i pokretanja aplikacija i servisa bez potrebe za održavanjem infrastrukture.

Iako sam naziv može pogrešno da sugeriše, nije u pitanju pokretanje aplikacija bez servera. Naziv “serverless” se koristi zbog toga što vlasnik ili osoba odgovorna za sistem nema potrebe za naručivanjem, podešavanjem i održavanjem samog servera. Iako serverless izdvaja pozadinsku infrastrukturu dalje od developera, serveri su i dalje uključeni u izvršavanje same aplikacije.

Fokus na aplikaciji, ne na infrastrukturi

Iako se aplikacija ili servis i dalje pokreću na serveru, vlasnik ili developer nije odgovoran za infrastrukturu već cloud provajder. Cloud provajder je taj koji se brine o održavanju servera.

Tradicionalne web aplikacije se izvršavaju na serveru koji smo mi podesili i za koji smo mi odgovorni.

Neki od nedostataka tradicionalnog pristupa su:
  • Mi smo odgovorni da server radi i kada nema nikakvih HTTP zahtjeva prema serveru
  • Mi smo odgovori za "uptime" i održavanje servera i svih njegovih resursa
  • Odgovori smo za sigurnost servera
  • Kako se potrošnja povećava mi moramo da skaliramo server

Za male kompanije i developere ovo može predstavljati dosta posla. To nas može odvraćati od mnogo bitnijeg posla: razvijanje i održavanje same aplikacije.

Serverless Computing

Serverless computing ( ili serverless skraćeno ) je model gdje je cloud provajder ( AWS, AZure ili Google Cloud ) odgovoran za izvršavanje dio kod-a dinamički dodjeljivanjem resursa. Samo se naplaćuje količina resursa koji su korišteni za pokretanje tog kod-a. Kod se obično pokreće unutar statless konteinera koji mogu biti pokrenuti raznim događajima uključujući HTTP zahtjeve, Database events, queuing services, monitoring alerts, file uploads, scheduled events ( cron jobs ) itd. Kod koji se pošalje cloud provajderu za izvršavanje obično je u obliku funkcije ili manjih dijelova kod-a.

Zbog toga serverless se takođe naziva i kao "Functions as a Service" ili "FaaS".



Neke od najvećih kompanija koje nude FaaS su:

Prednosti serverless arhitekture:
  • Nema potrebe za server administracijom
  • Plaća se po broju izvršavanja funkcija
  • Automatsko skaliranje aplikacije

Nedostaci serverless arhitekture:
  • Kompleksnost same arhitekture
  • Ovisni ste o cloud provajderu
  • Aplikacija ili servis se mora prilagoditi serverless arhitekturi
  • “Debugging” je dosta komplikovaniji nego kod tradicionalnih aplikacija
Oglasi za posao