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


U prethodnoj temi naše serije LFCA dali smo uvod u računalstvo u oblaku, različite vrste i oblake te 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 računalnom okruženju, vrijeme je da prijeđete na višu razinu i prebacite se na oblak. Procjenjuje se da će se do kraja 2021. više od 90% ukupnog posla obavljati u oblaku.

Među glavnim prednostima povezanim s prihvaćanjem računalstva u oblaku su poboljšane performanse, visoka dostupnost i skalabilnost. Zapravo, zanemarili smo ih kao jednu od glavnih prednosti korištenja tehnologije oblaka.

U ovoj se temi usredotočujemo na dostupnost Clouda, izvedbu i skalabilnost i nastojimo razumjeti kako se ovo troje spaja kako bi se zadovoljili zahtjevi korisnika i osiguralo korisnicima da pristupe svojim podacima kada im je potrebno iz bilo kojeg dijela svijeta.

1. Dostupnost u oblaku

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

Visoka dostupnost krajnji je cilj računalstva u oblaku. Nastoji pružiti maksimalno moguće vrijeme neprekidnog rada usluga tvrtke čak i u slučaju prekida koji mogu biti uzrokovani neviđenim zastojem poslužitelja ili degradacijom mreže.

Visoka dostupnost omogućena je postojanjem redundantnih sustava i sustava za preokret. To se događa u okruženju klastera gdje više poslužitelja ili sustava obavljaju iste zadatke i tako osiguravaju redundantnost.

Kada poslužitelj padne, ostatak može nastaviti raditi i pružati usluge koje pruža pogođeni poslužitelj. Savršen primjer redundancije je replikacija podataka na više poslužitelja baze podataka u klasteru. U slučaju da primarni poslužitelj baze podataka u klasteru ima problema, drugi poslužitelj baze podataka će i dalje pružati podatke koji su potrebni korisnicima unatoč kvaru.

Redundancija eliminira jednu točku kvara i osigurava dostupnost usluga i aplikacija od 99,999%. Klasteriranje također omogućuje balansiranje opterećenja između poslužitelja i osigurava ravnomjernu raspodjelu radnog opterećenja i niti jedan poslužitelj nije preopterećen.

2. Skalabilnost oblaka

Još jedno obilježje računalstva u oblaku je skalabilnost. Skalabilnost je mogućnost prilagodbe resursa oblaka kako bi se zadovoljili promjenjivi zahtjevi. Jednostavno rečeno, možete neprimjetno povećati ili smanjiti resurse prema i kada je to potrebno za zadovoljenje potražnje bez ugrožavanja kvalitete usluga ili zastoja.

Pretpostavimo da vodite blog koji počinje dobivati hitove i sve više prometa. Možete jednostavno dodati više računalnih resursa poput pohrane, RAM-a i CPU-a svojoj instanci računanja u oblaku kako biste podnijeli dodatno radno opterećenje. Nasuprot tome, možete smanjiti resurse kada je to potrebno. To osigurava da plaćate samo ono što trebate, a to naglašava ekonomiju razmjera koju pruža oblak.

Skalabilnost je dvojaka: Vertikalno skaliranje i horizontalno skaliranje.

Vertikalno skaliranje

Također se naziva "povećanje" okomito skaliranje uključuje dodavanje više resursa kao što su RAM, pohrana i CPU vašoj instanci računalstva u oblaku kako bi se prilagodilo dodatnom radnom opterećenju. Ovo je jednako isključivanju vašeg fizičkog računala ili poslužitelja 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 poslužitelja u vaš skup već postojećih poslužitelja kako bi se osigurala raspodjela radnog opterećenja na više poslužitelja. S horizontalnim skaliranjem niste ograničeni na kapacitet jednog poslužitelja, za razliku od vertikalnog skaliranja. To omogućuje veću skalabilnost i manje zastoja.

Skaliranje je poželjnije u usporedbi s povećanjem

A evo i zašto. Uz horizontalno skaliranje, u osnovi dodajete više resursa kao što su poslužitelji ili pohrana u vaš već postojeći skup resursa. To vam omogućuje da kombinirate snagu i performanse više računalnih instanci u jednu i tako dobijete bolje performanse za razliku od samo dodavanja resursa na jednom poslužitelju. Dodatni poslužitelji znače da se nećete morati nositi s manjkom resursa.

Dodatno, horizontalno skaliranje pruža redundanciju i toleranciju na pogreške na takav način da čak i ako je jedan poslužitelj pogođen, ostali će nastaviti s dokazivanjem pristupa potrebnim uslugama. Okomito skaliranje povezano je s jednom točkom kvara. Ako se računalna instanca sruši, sve ide s njom.

Horizontalno skaliranje također nudi maksimalnu fleksibilnost za razliku od vertikalnog skaliranja gdje su aplikacije izgrađene kao jedna velika cjelina. To čini većim izazovom upravljanje, nadogradnju ili promjenu dijelova koda bez ponovnog pokretanja cijelog sustava. Skaliranje omogućuje odvajanje aplikacija i omogućuje besprijekornu nadogradnju s minimalnim zastojem.

3. Izvedba u oblaku

Osigurati da performanse aplikacije zadovoljavaju zahtjeve korisnika može biti prilično težak zadatak, pogotovo ako imate više komponenti u različitim okruženjima koje moraju stalno međusobno komunicirati.

Problemi poput kašnjenja vjerojatno će se manifestirati i utjecati na izvedbu. Također, nije lako predvidjeti izvedbu tamo gdje resurse dijele različiti entiteti. Bez obzira na to, još uvijek možete postići visok učinak i ostati na površini provedbom sljedećih mjera.

1. Instanca oblaka

Pobrinite se da koristite prave instance oblaka s dovoljno resursa za podnošenje opterećenja vaših aplikacija i usluga. Za aplikacije koje zahtijevaju velike resurse, osigurajte dovoljno RAM-a, CPU-a i resursa za pohranu svojoj instanci oblaka kako biste spriječili mogući manjak resursa.

2. Balansiranje opterećenja

Implementirajte balanser opterećenja za pravednu distribuciju mrežnog prometa između vaših resursa. To će osigurati da nijedna od vaših aplikacija nije preopterećena potražnjom. Pretpostavimo da vaš web poslužitelj dobiva puno prometa koji uzrokuje kašnjenja i utječe na performanse.

Savršeno rješenje bilo bi implementirati horizontalno skaliranje s ukupno 4 web poslužitelja koji se nalaze iza balansera opterećenja. Uravnoteživač opterećenja će distribuirati mrežni promet preko 4 web poslužitelja i osigurati da nijedan nije preopterećen radnim opterećenjem.

3. Predmemoriranje

Koristite rješenja za predmemoriju kako biste ubrzali pristup datotekama od strane aplikacija. Predmemorije pohranjuju podatke koji se često čitaju i time eliminiraju stalne pretrage podataka koje mogu utjecati na performanse. Smanjuju kašnjenje i radno opterećenje jer su podaci već predmemorirani, čime se poboljšava vrijeme odgovora.

Predmemoriranje se može implementirati na različitim razinama kao što su razina aplikacije, razina baze podataka. Popularni alati za predmemoriju uključuju Redis, Memcached i Varnish cache.

4. Praćenje učinka

Na kraju, svakako nadzirite performanse svojih poslužitelja i aplikacija. Pružatelji usluga u oblaku pružaju izvorne alate koji vam mogu pomoći da nadgledate svoje poslužitelje u oblaku iz web-preglednika.

Osim toga, možete preuzeti vlastitu inicijativu i instalirati besplatne alate za nadzor otvorenog koda koji vam mogu pomoći da pratite svoje aplikacije i poslužitelje. Primjeri takvih aplikacija uključuju Grafana, Netdata i Prometheus, da spomenemo samo neke.

Zaključak

Ne možemo dovoljno naglasiti koliko su dostupnost, skaliranje i izvedba ključni u oblaku. Tri čimbenika određuju kvalitetu usluge koju ćete dobiti od dobavljača oblaka i u konačnici povlače granicu između uspjeha ili neuspjeha vašeg poslovanja.