LFCA: Naučite dostupnost, performanse i skalabilnost u oblaku – 14. dio


U prethodnoj temi naše LFCA serije dali smo uvod u računalstvo u oblaku, različite vrste i oblake i usluge u oblaku i proveli vas kroz neke od prednosti povezanih s računalstvom u oblaku.

Ako se vaše poslovanje još uvijek temelji na tradicionalnom IT okruženju, vrijeme je da se podignete i prebacite na oblak. Procjenjuje se da će do kraja 2021. godine preko 90% ukupnog radnog opterećenja biti obrađeno u oblaku.

Među glavnim prednostima povezanim sa prihvatanjem računarstva u oblaku su poboljšane performanse, visoka dostupnost i skalabilnost. U stvari, bacili smo se na njih kao na jednu od glavnih prednosti korištenja cloud tehnologije.

U ovoj temi fokusiramo se na dostupnost, performanse i skalabilnost u oblaku i nastojimo razumjeti kako se ova tri spajaju kako bi zadovoljili zahtjeve kupaca i osigurali korisnicima da pristupe njihovim podacima onako kako im je potrebno iz bilo kojeg dijela svijeta.

1. Dostupnost u oblaku

IT aplikacije i usluge organizacije su kritične i svaki prekid usluge može imati dubok uticaj na prihod. Korisnici očekuju da su usluge dostupne 24 sata dnevno u bilo koje vrijeme sa bilo koje lokacije. A to je ono što Cloud tehnologija nastoji pružiti.

Visoka dostupnost je krajnji cilj računarstva u oblaku. Nastoji da pruži maksimalno moguće vreme neprekidnog rada usluga kompanije čak i kada su u pitanju poremećaji koji mogu biti izazvani neviđenim zastojima servera ili degradacijom mreže.

Visoka dostupnost je moguća zahvaljujući redundantnim sistemima i sistemima za nadilaženje greške. Ovo se dešava u okruženju klastera gde više servera ili sistema obavljaju iste zadatke i na taj način obezbeđuju redundantnost.

Kada server padne, ostali mogu nastaviti raditi i pružati usluge koje pruža pogođeni server. Savršen primjer redundancije je replikacija podataka na više servera baze podataka u klasteru. U slučaju da primarni poslužitelj baze podataka u klasteru doživi problem, drugi poslužitelj baze podataka će i dalje pružati podatke koje zahtijevaju korisnici uprkos neuspjehu.

Redundantnost eliminiše jednu tačku kvara i osigurava 99,999% dostupnosti usluga i aplikacija. Grupiranje takođe obezbeđuje balansiranje opterećenja između servera i osigurava da je radno opterećenje ravnopravno raspoređeno i da nijedan server nije preopterećen.

2. Skalabilnost u oblaku

Još jedno obeležje računarstva u oblaku je skalabilnost. Skalabilnost je mogućnost prilagođavanja resursa oblaka kako bi se zadovoljili promjenjivi zahtjevi. Jednostavno rečeno, možete neprimetno povećavati ili smanjivati resurse kako i kada je potrebno da zadovoljite potražnju bez ugrožavanja kvaliteta usluga ili zastoja.

Pretpostavimo da vodite blog koji počinje da dobija hitove i više prometa. Možete jednostavno dodati više računarskih resursa kao što su skladište, RAM i CPU u svoju instancu računanja u oblaku kako biste se nosili s dodatnim radnim opterećenjem. S druge strane, možete smanjiti resurse kada je to potrebno. Ovo osigurava da plaćate samo ono što vam je potrebno, a to naglašava ekonomiju obima koju oblak pruža.

Skalabilnost je dvostruka: vertikalno skaliranje i horizontalno skaliranje.

Vertikalno skaliranje

Također se naziva 'skaliranje' vertikalno skaliranje uključuje dodavanje više resursa kao što su RAM, skladište i CPU vašoj instanci računala u oblaku kako bi se prilagodili dodatnim radnim opterećenjem. Ovo je ekvivalent isključivanju vašeg fizičkog računara ili servera radi nadogradnje RAM-a ili dodavanja dodatnog tvrdog diska ili SSD-a.

Horizontalno skaliranje

Horizontalno skaliranje, također poznato kao 'skaliranje' uključuje dodavanje više servera vašem skupu već postojećih servera kako bi se osigurala raspodjela radnog opterećenja na više servera. Sa horizontalnim skaliranjem, niste ograničeni na kapacitet jednog servera, za razliku od vertikalnog skaliranja. Ovo pruža veću skalabilnost i manje zastoja.

Skaliranje je poželjnije u odnosu na povećanje

A evo i zašto. Sa horizontalnim skaliranjem, u osnovi dodajete više resursa kao što su serveri ili skladišta u vaš već postojeći skup resursa. Ovo vam omogućava da kombinujete snagu i performanse više instanci računara u jednu, i na taj način dobijete bolje performanse za razliku od samo dodavanja resursa na jednom serveru. Dodatni serveri impliciraju da nećete morati da se nosite sa deficitom resursa.

Osim toga, horizontalno skaliranje obezbjeđuje redundantnost i toleranciju grešaka na takav način da čak i ako je jedan server pogođen, ostali će nastaviti dokazivanje pristupa potrebnim uslugama. Vertikalno skaliranje je povezano s jednom tačkom kvara. Ako se instanca računara sruši, onda se sve sruši s njom.

Horizontalno skaliranje također nudi maksimalnu fleksibilnost za razliku od vertikalnog skaliranja gdje su aplikacije izgrađene kao jedna velika jedinica. Ovo čini izazovnijim upravljanje, nadogradnju ili promjenu dijelova koda bez ponovnog pokretanja cijelog sistema. Skaliranje omogućava razdvajanje aplikacija i omogućava besprijekornu nadogradnju uz minimalno vrijeme zastoja.

3. Performanse u oblaku

Osiguravanje da performanse aplikacije ispunjavaju zahtjeve kupaca može biti prilično težak zadatak, posebno ako imate više komponenti koje se nalaze u različitim okruženjima koje moraju stalno međusobno komunicirati.

Problemi poput kašnjenja će se vjerovatno manifestirati i utjecati na performanse. Također, nije lako predvidjeti učinak tamo gdje resurse dijele različiti entiteti. Bez obzira na to, i dalje možete postići visoke performanse i ostati na površini primjenom sljedećih mjera.

1. Instanca oblaka

Osigurajte da koristite prave instance oblaka s dovoljno resursa za rukovanje radnim opterećenjem vaših aplikacija i usluga. Za aplikacije koje zahtijevaju velike resurse, osigurajte dovoljno RAM-a, CPU-a i skladišnih resursa vašoj instanci oblaka kako biste spriječili mogući deficit resursa.

2. Load Balancer

Implementirajte balansator opterećenja kako biste ravnomjerno distribuirali mrežni promet između vaših resursa. Ovo će osigurati da nijedna od vaših aplikacija ne bude preopterećena potražnjom. Pretpostavimo da vaš web server dobija mnogo prometa koji uzrokuje kašnjenja i utiče na performanse.

Savršeno rješenje bi bila implementacija horizontalnog skaliranja sa ukupno 4 web servera iza balansera opterećenja. Balansator opterećenja će distribuirati mrežni promet na 4 web servera i osigurati da nijedan nije preopterećen radnim opterećenjem.

3. Keširanje

Koristite rješenja za keširanje da ubrzate pristup datotekama aplikacija. Predmemorije pohranjuju podatke koji se često čitaju i na taj način eliminišu stalna pretraživanja podataka koja mogu utjecati na performanse. Oni smanjuju kašnjenje i radno opterećenje jer su podaci već keširani, čime se poboljšavaju vremena odgovora.

Keširanje se može implementirati na različitim nivoima kao što su nivo aplikacije, nivo baze podataka. Popularni alati za keširanje uključuju Redis, Memcached i Varnish keš memoriju.

4. Praćenje učinka

Na kraju, obavezno pratite performanse svojih servera i aplikacija. Provajderi u oblaku pružaju izvorne alate koji vam mogu pomoći da pratite svoje servere u oblaku iz web pretraživača.

Osim toga, možete preuzeti vlastitu inicijativu i instalirati besplatne alate za praćenje otvorenog koda koji vam mogu pomoći da pratite svoje aplikacije i servere. Primjeri takvih aplikacija su Grafana, Netdata i Prometheus, da spomenemo neke.

Zaključak

Ne možemo dovoljno naglasiti koliko su dostupnost, skaliranje i performanse ključni u oblaku. Tri faktora određuju kvalitet usluge koju ćete dobiti od svog dobavljača u oblaku i na kraju povlače liniju između uspjeha ili neuspjeha vašeg poslovanja.