Šta nam donosi serverless arhitektura?

Već neko vreme je serverless popularna tema u IT svetu i verujemo da ste se već negde susreli sa ovim pojmom. U ovom tekstu ćemo pokušati da objasnimo osnove ovog koncepta.

Zašto serverless arhitektura?

Hosting softverske aplikacije na Internetu obično uključuje upravljanje nekom serverskom infrastrukturom. To uglavnom podrazumeva virtuelni ili fizički server kojim neko treba da upravlja, kao i operativni sistem i druge procese hostinga za veb server potrebne za pokretanje vaše aplikacije. Korišćenje Cloud servera kao skalabilne naprednije infrastrukture, poput mClouda, Amazona ili Microsofta, korisnicima sa većim i promenljivim potrebama smanjuje problem sa hardverom, ali i dalje zahteva određeni nivo upravljanja operativnim sistemom i ostalim softverom na serveru.

Iako deo klijenata održavanje outsource-uje, ima i onih koji to rešavaju interno, pa se vremenom scenario pokazao kao opterećujući i usporavajući faktor kada su u pitanju razvoj i rad aplikacija, pogotovo za kompanije koje nemaju dovoljno ljudskih resursa i znanja iz domena održavanja i upravljanja složenom serverskom infrastrukturom.

Sa serverless arhitekturom nema ovakvih zahteva jer zahvaljujući servisima koje obezbeđuje serverless arhitektura, klijent se fokusira isključivo na pojedinačne funkcije u kodu aplikacije. Usluge obezbeđene u okviru same arhitekture brinu se za sav fizički hardver, operativni sistem virtuelnih mašina i upravljanje softverom za veb server. Klijentu ostaje briga samo o kodu.

Zato se danas sa pravom smatra da je serverless arhitektura zapravo budućnost servisa, odnosno novi veliki korak napred u našem poimanju serverske infrastrukture.

 

Tradicionalna arhitektura i serverless arhitektura

 

Kako funkcioniše serverless (na primeru FaaS-a)?

Ovo ćemo najbolje predstaviti na primeru servisa koje provajderi nude u cloud-u. Pre svega tu mislimo na pojam Funkcije kao servis – eng. Functions as a Service (FaaS).

Funkcije kao servis (FaaS) je način na koji na ekranu izvršavate modularne delove koda. FaaS omogućava developerima da pišu i ažuriraju deo koda u hodu, koji se zatim može izvršiti kao odgovor na događaj, poput korisnika koji klikne na element u veb aplikaciji. To olakšava skaliranje koda i ekonomičan je način za implementaciju mikro servisa.

Ispod možete videti kako ovo funkcioniše koraka po korak:

  • Developer piše funkciju. Ova funkcija često služi specifičnoj svrsi u kodu aplikacije.
  • Developer definiše događaj. Događaj je ono što pokreće pružaoca usluga u oblaku da izvrši funkciju. Uobičajena vrsta događaja je HTTP zahtev.
  • Događaj je pokrenut. Ako je definisani događaj npr. HTTP zahtev, korisnik aktivira događaj klikom ili drugom odgovarajućom radnjom.
  • Funkcija se izvršava. Provajder servisa u cloud-u proverava da li se instanca funkcije već pokreće. Ako nije, pokreće novu za funkciju.
  • Rezultat se šalje klijentu. Korisnik vidi rezultat izvršene funkcije unutar aplikacije.

Kao što je iz navedenog primera očigledno, u developerskom smislu, serverless arhitektura nam pomaže da brže pređemo put od ideje do realizacije. U mnogim slučajevima to znači da se prototip aplikacije može pripremiti i pokrenuti u kratkom roku.

U nekom širem smislu, serverless pre svega omogućava developeru ili organizaciji da posao održavanja i upravljanja serverom, operativnim sistemima, nadogradnjama, zakrpama, hardverom i softverom, poveri provajderu i servisima koje on nudi u okviru serverless arhitekture.

Evo i spiska najčešćih servisa koje provajderi nude u okviru svojih cloud servisa.

Evolucija FaaS-a

Slika: evolucija FaaS-a

 

Funkcije kao servisi (Functions as as Service – FaaS)

Moglo bi se reći da je drugo ime serverless arhitekture – Funkcije kao servis (FaaS), a odnosi se na način na koji developeri sastavljaju kod u funkcije. Ovaj koncept je prilično sličan Mikro-servisima gde se ogromna količina kodova deli na male fragmente, gde se elementi zatim skaliraju i ažuriraju odvojeno.

Programiranje zasnovano na događajima

Ako kojim slučajem želite da vaša bezbednosna kamera zabeleži svaki momenat dok ste van kuće, onda će se veoma brzo desiti da će snimljeni materijal zauzeti ceo dostupni prostor na vašem hard-disku. Zbog toga koristimo kamere koje imaju senzor pokreta da bismo otkrili sumnjivo ponašanje kada nismo kod kuće, ali ujedno i optimizovali njen rad i sačuvali prostor na disku. Serverless arhitektura funkcioniše na sličan način: Poput senzora kretanja, funkcioniše samo kada se pokrene određeni unapred programirani događaj. Serverless arhitektura je koncipirana tako da samo izvršava zadatak i ne čuva i ne raspoređuje naknadno zahteve.

Skalabilni servisi

Pristup serverless arhitekturi fleksibilan je i idealan za skaliranje aplikacija. Provajder serverless arhitekture preuzima svaku od funkcija i pruža im različite kontejnere za rad. To vam omogućava da ih beskonačno i automatski skalirate. Ovo je još jedna razlika između serverless arhitekture i tradicionalnog cloud-a. Ovde ne morate da kupujete pretpostavljenu količinu resursa, a ujedno možete biti i fleksibilniji.

Naplata po korišćenju

U tradicionalnom sistemu server je u svakom trenutku spreman da obrađuje zahteve. To je poput korišćenja klima uređaja tokom cele godine, bez obzira na vremenske prilike. Jasno je da to nema neku logičnu primenu i na kraju završite sa ogromim računom za struju. Slučnu paralelu možemo povući kada su u pitanju serveri u tradicionalnoj arhitekturi. Konstantna dostupnost servera dovodi do značajnih back-end troškova svakog meseca, bez obzira na vreme, CPU-a i memoriju koja se zaista koristi i angažuje. Kao pametnu alternativu tome, provajderi serverless arhitekture omogućavaju vam da platite delić cene po zahtevu, što znači da će vaši troškovi zavisiti samo od količine prometa u obračunskom mesecu.

Međukorak je naravno Cloud tehonologija (poput mCloud servera) gde resurse možete skalirati prema potrebi (samostalno povećavati resurse kada za time ima potrebe, npr kada su aktuelne kampanje i slično, a smanjivati na minimalne resurse kada su aktivnosti na sajtu-aplikacijama u fazi mirovanja), što je za naše tržište i potrebe još uvek prihvatljivo. Međutim, sa razvojem tehologije i sve većim variranjima u posetama, serverless tehnologija je definitivno budućnost.

U sledećem tekstu ćemo pojasniti koje su prednosti i mane serverless arhitekture i dati neke primere njene primene. Zato pratite naš blog i mCloud naloge na društvenim mrežama (FB, Twitter, LinkedIn), kako biste pravovremeno videli nove članke i servise koje spremamo.

Bez komentara

Оставите одговор

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *

mCloud mailing lista
Da li želiš da se prijaviš na mCloud mailing listu i svake nedelje dobijaš informacije o našim tekstovima na blogu i novostima iz mCloud-a?
Nemoj više prikazivati