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".