LFCA: Naučite računarstvo bez servera, prednosti i zamke – 15. dio


Tehnologija bez servera je izazvala mnogo pompe u tehnološkoj zajednici izazivajući mnogo radoznalosti i donekle nailazeći na reakciju. To je tehnologija koja je započela lansiranjem AWS Lamba 2014. godine, nakon čega su ubrzo uslijedile Azure funkcije kasnije 2016. godine.

Google je kasnije slijedio taj primjer s izdavanjem funkcija Google Cloud u julu 2018. Dakle, šta je tehnologija bez servera? Da bismo što bolje odgovorili na ovo pitanje, vratimo se na tradicionalno računarstvo bazirano na serveru.

U tradicionalnom IT modelu, vi ste bili zaduženi u osnovi za sve. Kao vlasnik preduzeća, morali biste u budžetu izdvojiti servere i drugu mrežnu opremu kao što su ruteri i svičevi, te stalci za oplakivanje servera.

Morali biste se također brinuti o tome da dobijete netaknut i siguran podatkovni centar i da osigurate da može u dovoljnoj mjeri osigurati hlađenje i redundantno napajanje i internetske usluge. Nakon postavljanja, morali biste instalirati operativni sistem i kasnije implementirati svoje aplikacije. Dodatno, od vas bi se tražilo da postavite sisteme za nadzor i implementirate sigurnosne karakteristike kao što su zaštitni zidovi i sistemi za prevenciju upada i detekcije.

Kao što ste mogli pretpostaviti, ovo je zahtjevno za resurse, skupo i iscrpljujuće.

Tada je računarstvo u oblaku probilo u svijet tehnologije, potpuno revolucionirajući način na koji postavljamo i upravljamo serverima i aplikacijama. To je najavilo novu eru u kojoj će programeri za tren oka pokrenuti servere i baze podataka u oblaku i početi raditi na svojim aplikacijama. Bez brige o problemima vezanim za tradicionalno IT računarstvo kao što su zastoji, skupa oprema i iznajmljivanje centara podataka.

Dok je računarstvo u oblaku sa sobom donelo pogodnost i ekonomiju obima u primeni IT resursa, neke kompanije bi preterale sa kupovinom jedinica serverskog prostora i resursa kao što su RAM i CPU u očekivanju porasta mrežnog saobraćaja ili aktivnosti koje bi mogle da preplave aplikacije.

Iako je to razborit potez, nenamjeran ishod je nedovoljno iskorištenje serverskih resursa koji često propadaju. Čak i sa automatskim skaliranjem, ipak, nepredviđeni i iznenadni skok mogao bi se pokazati skupim. Također, i dalje ćete morati obavljati druge zadatke kao što je postavljanje balansera opterećenja koji će također vjerovatno povećati operativne troškove.

Očigledno je da uprkos prelasku na oblak, neka uska grla i dalje ostaju i imaju potencijal povećanja troškova i uzroka rasipanja resursa. I tu dolazi računanje bez servera.

Šta je računarstvo bez servera

Računarenje bez servera je model u oblaku koji korisnicima pruža pozadinske usluge po principu "pay-as-you-go". Jednostavnim rečima, dobavljač u oblaku dodeljuje računarske resurse i naplaćuje samo vreme koje aplikacije rade. Ovo je ekvivalentno prelasku sa mjesečnog plana za plaćanje kablovskom na plaćanje samo za vrijeme gledanja TV emisija.

Izraz 'bez servera' može biti pomalo pogrešan. Da li su uključeni serveri? Naravno, međutim, u ovom slučaju, serverima i osnovnom infrastrukturom isključivo rukuje i održava ih dobavljač u oblaku. Kao takvi, ne morate brinuti o njima. Kao programer, vaš fokus je isključivo na razvoju vaših aplikacija i osigurajte da rade na vaše zadovoljstvo.

Na taj način, računarstvo bez servera uklanja glavobolju upravljanja serverima i štedi vam dragocjeno vrijeme za rad na vašim aplikacijama.

Backend usluge koje pruža računarstvo bez servera

Savršen primjer backend usluge bez servera je platforma Function-as-a-Service (FaaS). FaaS je model računarstva u oblaku koji omogućava programerima da razvijaju, izvršavaju i upravljaju kodom kao odgovor na događaje bez složenosti izgradnje i upravljanja osnovnom infrastrukturom koja je obično povezana sa implementacijom mikrousluga.

Faas je potkategorija računarstva bez servera sa suptilnim razlikama. Računarstvo bez servera obuhvata širok spektar usluga uključujući računanje, bazu podataka, skladištenje i API da spomenemo samo neke. FaaS je isključivo fokusiran na računarski model vođen događajima gdje se aplikacije izvršavaju na zahtjev, odnosno kao odgovor na zahtjev.

Primjeri FaaS računarskih modela uključuju:

  • AWS Lambda od AWS
  • Azure funkcije od strane Microsofta
  • Googleove Cloud funkcije
  • Cloudflare Workers od Cloudflare

Ukratko, vidjeli smo da sa FaaS-om plaćate samo vrijeme koje vaša aplikacija radi, a provajder u oblaku radi gotovo sve umjesto vas, uključujući rukovanje osnovnom infrastrukturom. Upravljanje serverima je najmanja vaša briga.

Prednosti računarstva bez servera

Do sada imate dobru ideju o nekim prednostima koje računarstvo bez servera donosi na stol. Udubimo se dublje u prednosti prihvaćanja tehnologije.

1. Nema upravljanja serverom

Ovo je možda jedna od najvećih prednosti usvajanja računarskog modela bez servera. Iako se izraz „bez servera” može pogrešno protumačiti da implicira da nema uključenih servera, činjenica je da aplikacije i dalje rade na serverima. Suština stvari je da je upravljanje serverom u potpunosti posao dobavljača u oblaku, a to vam daje više vremena za rad na vašim aplikacijama.

2. Lako i efikasno skaliranje

Infrastruktura bez servera omogućava automatsko skaliranje aplikacija kao odgovor na porast upotrebe, potražnje ili rasta korisničke baze. Ako se aplikacija izvodi na više instanci, serveri će se pokrenuti i zaustaviti kada je to potrebno. U tradicionalnoj postavci računarstva u oblaku, nagli promet ili aktivnost može lako preopteretiti serverske resurse što dovodi do nedosljednosti s aplikacijom koja se izvršava.

3. Ugrađena dostupnost

Kao programer, ne morate da gradite nikakvu posebnu infrastrukturu da biste svoje aplikacije učinili visoko dostupnim. Računarstvo bez servera pruža vam ugrađenu visoku dostupnost kako biste osigurali da vaše aplikacije rade i rade kada je to potrebno.

4. Smanjeni operativni troškovi

Računarstvo bez servera dodeljuje resurse po principu "plati koliko koristiš". Vaša aplikacija će zahtijevati samo pozadinske funkcije kada se kod izvrši i automatski će se skalirati na osnovu količine posla.

Ovo osigurava ekonomiju obima jer vam se naplaćuje samo vrijeme u kojem aplikacije rade. U tradicionalnom modelu servera, morate platiti prostor na serveru, baze podataka između ostalih resursa bez obzira da li je aplikacija pokrenuta ili neaktivna.

5. Brže implementacije aplikacija

Arhitektura bez servera eliminiše potrebu za pozadinskom konfiguracijom i ručnim učitavanjem koda na servere kao kod tradicionalnog podešavanja. Programerima je lako učitati male hrpe koda na efikasan način i pokrenuti odličan proizvod.

Lakoća implementacije također omogućava programerima da lako zakrpe i ažuriraju određene karakteristike koda bez mijenjanja cijele aplikacije.

Zamke računarstva bez servera

Postoje li neki nedostaci povezani sa modelom bez servera? Saznajmo.

1. Sigurnost

Loše konfigurisane aplikacije predstavljaju jedan od najvećih rizika povezanih sa računarstvom bez servera. Ako se odlučite za AWS, na primjer, pametno je konfigurirati različite dozvole za svoju aplikaciju koja će zauzvrat odrediti kako će one komunicirati s drugim uslugama unutar AWS-a. Tamo gdje su dozvole nejasne, funkcija ili usluga može imati više dozvola nego što je potrebno, ostavljajući dovoljno prostora za narušavanje sigurnosti.

2. Zaključavanje dobavljača

Odabir modela bez servera može predstavljati izazove prilikom migracije na drugog dobavljača. To je uglavnom zato što svaki dobavljač ima svoje karakteristike i tokove rada koji se malo razlikuju od ostalih.

3. Poteškoće u testiranju i otklanjanju grešaka u aplikacijama

Još jedan izazov koji predstavlja model bez servera je poteškoća u reprodukciji okruženja bez servera za testiranje i praćenje performansi koda prije nego što se pokrene. Ovo je prvenstveno zato što programeri nemaju pristup pozadinskim uslugama koje su rezervisane za Cloud provajdera.

4. Poteškoće u nadgledanju aplikacija bez servera

Nadgledanje aplikacija bez servera je složen poduhvat iz istih razloga iz kojih su otklanjanje grešaka i testiranje težak zadatak. Ovo je pogoršano nedostupnošću alata sa integracijom u pozadinske usluge kao što je AWS Lamba.

Zaključak

Računarstvo bez servera nastavlja da dobija na snazi i prihvatanje među kompanijama i programerima iz 3 ključna razloga. Jedna je pristupačnost koja podrazumijeva smanjene operativne troškove. Drugo, računarstvo bez servera olakšava automatsko i brzo skaliranje, i konačno, programeri ne moraju da brinu o osnovnoj infrastrukturi kojom upravlja dobavljač.

U međuvremenu, provajderi u oblaku rade danonoćno kako bi riješili neke od zamki povezanih s računarstvom bez servera, kao što su poteškoće u otklanjanju grešaka i nadgledanju aplikacija.