GCP: raščlanjivanje Google Cloud Platform Compute Stack

Prijevod članka pripremljen je posebno za studente predmeta "Cloud usluge".

Da li ste zainteresovani za razvoj u ovom pravcu? Pogledajte snimak profesionalne majstorske klase "AWS EC2 usluga", koju je vodio Egor Zuev - TeamLead u InBit-u i autor obrazovnog programa na OTUS-u.

GCP: raščlanjivanje Google Cloud Platform Compute Stack

Google Cloud Platforma (GCP) nudi mnoge usluge, a posebno računski stog koji sadrži Google Compute Engine (GCE), Google Kubernetes Engine (ranije Container Engine) (GKE), Google App Engine (GAE) i Google Cloud Functions (GCF) . Sve ove usluge imaju sjajna imena, ali možda nisu sasvim očigledne u pogledu njihovih funkcija i po čemu su međusobno jedinstvene. Ovaj članak je namijenjen onima koji su novi u konceptima oblaka, posebno uslugama u oblaku i GCP-u.

GCP: raščlanjivanje Google Cloud Platform Compute Stack

1. Izračunajte stog

Računalni stog se može posmatrati kao slojevita apstrakcija onoga što računarski sistem može da pruži. Ovaj stog se penje (kreće gore) od "golog gvožđa" (goli metal), koji se odnosi na stvarne hardverske komponente računara, sve do funkcija (funkcije), koji predstavljaju najmanju obračunsku jedinicu. Ono što je važno napomenuti u vezi sa stekom je da se usluge agregiraju kako se pomičete nagore, kao što je odjeljak "aplikacije" (aplikacije), prikazan na slici 1 ispod, treba da sadrži sve osnovne komponente kontejnera (kontejneri), virtuelne mašine (virtualne mašine) i gvožđe. Na isti način, komponenta virtuelnih mašina mora sadržavati hardver unutra da bi radila.

GCP: raščlanjivanje Google Cloud Platform Compute Stack

Slika 1: Računski stog | Slika preuzeta sa Google Cloud

Ovaj model, prikazan na slici 1, predstavlja osnovu za opisivanje ponuda dobavljača u oblaku. Tako neki provajderi mogu pružiti samo, na primjer, kontejnere i usluge nižeg kvaliteta duž steka, dok drugi mogu pružiti sve što je prikazano na slici 1.

— Ako ste upoznati sa uslugama u oblaku, idite na odjeljak 3da vidite GCP ekvivalent
— Ako želite samo sažetak usluga u oblaku, idite na odjeljak 2.4

2. Usluge u oblaku

Svijet računarstva u oblaku je vrlo raznolik. Provajderi u oblaku nude niz usluga prilagođenih različitim zahtjevima kupaca. Možda ste čuli za termine kao što su IaaS, PaaS, SaaS, FaaS, KaaS, itd. sa svim slovima abecede iza kojih slijedi "aaS". Uprkos čudnoj konvenciji imenovanja, oni čine skup usluga provajdera u oblaku. Navodim da postoje 3 glavne ponude „kao usluga“ koje pružaoci usluga u oblaku gotovo uvijek pružaju.

To su IaaS, PaaS i SaaS, koji označavaju infrastrukturu kao uslugu, platformu kao uslugu i softver kao uslugu. Važno je vizualizirati usluge u oblaku kao slojeve usluga koje se pružaju. To znači da dok se krećete gore ili dolje od nivoa do nivoa, vi kao kupac prolazite kroz različite opcije usluga koje se ili dodaju ili oduzimaju od osnovne ponude. Najbolje je o njoj razmišljati kao o piramidi, kao što je prikazano na slici 2.
GCP: raščlanjivanje Google Cloud Platform Compute Stack

Slika 2: aaS piramida | Slika preuzeta sa Ruby Garage

2.1 Infrastruktura kao usluga (IaaS)

Ovo je najniži nivo koji pružatelj oblaka može ponuditi i uključuje pružatelja oblaka koji isporučuje golu metalnu infrastrukturu, uključujući međuover, mrežno kabliranje, CPU, GPU, RAM, eksternu pohranu, servere i osnovne slike operativnog sistema, npr. Debian Linux, CentOS, Windows , itd.

Ako naručite ponudu od IaaS provajdera u oblaku, to je ono što biste trebali očekivati ​​da dobijete. Na vama je, kupcu, da sastavite ove dijelove za vođenje vašeg poslovanja. Opseg sa čime ćete morati da radite može varirati od dobavljača do prodavca, ali generalno dobijate samo hardver i OS, a ostalo je na vama. Primjeri IaaS-a su AWS Elastic Compute, Microsoft Azure i GCE.

Nekim ljudima se možda neće svidjeti činjenica da moraju instalirati OS slike i baviti se umrežavanjem, balansiranjem opterećenja ili brigom o tome koji tip procesora je idealan za njihovo radno opterećenje. Ovdje se krećemo po piramidi prema PaaS-u.

2.2 Platforma kao usluga (PaaS)

PaaS uključuje samo dobavljača usluga u oblaku koji nudi specifičnu platformu na kojoj korisnici mogu graditi aplikacije. Ovo je apstrakcija u odnosu na IaaS, što znači da se dobavljač oblaka brine o svim detaljima tipova procesora, memorije, RAM-a, skladišta, mreža itd. Kao što je prikazano na slici 2, vi kao kupac imate malo kontrole nad stvarnom platformom jer oblak provajder upravlja svim detaljima infrastrukture za vas. Zahtijevate odabranu platformu i na njoj gradite projekat. Primjeri PaaS-a su Heroku.

Ovo može biti previsok nivo za neke, jer oni ne žele nužno da izgrade projekat na određenoj platformi, već im je potreban skup usluga direktno od provajdera u oblaku. Ovdje na scenu stupa SaaS.

2.3 Softver kao usluga (SaaS)

SaaS predstavlja najčešće usluge koje pružaju dobavljači usluga u oblaku. Namijenjeni su krajnjim korisnicima i dostupni su prvenstveno putem web stranica kao što su Gmail, Google Docs, Dropbox, itd. Što se tiče Google Cloud-a, postoji nekoliko ponuda izvan njihovog računarskog steka koje su SaaS. To uključuje Data Studio, Big Query, itd.

2.4 Sažetak usluga u oblaku

Komponente
IaaS
PaaS
SaaS

Šta dobivate
Dobijate infrastrukturu i shodno tome plaćate. Sloboda korištenja ili instaliranja bilo kojeg softvera, OS ili njegove kompozicije.
Ovdje dobijate ono što tražite. Softver, hardver, OS, web okruženje. Dobijate platformu spremnu za korištenje i plaćate u skladu s tim.
Ovdje ne morate brinuti ni o čemu. Dobijate unapred instaliran paket prilagođen vašim zahtevima i sve što treba da uradite je da platite u skladu sa tim.

vrijednost
Basic Computing
Top IaaS
Ovo je u suštini kompletan paket usluga

Tehničke poteškoće
Potrebno tehničko znanje
Dobili ste osnovnu konfiguraciju, ali vam je i dalje potrebno znanje o domeni.
Nema potrebe da se zamarate tehničkim detaljima. SaaS provajder pruža sve.

Sa čime radi?
Virtuelne mašine, skladište, serveri, mreža, balanseri opterećenja itd.
Runtime okruženja (kao što je Java runtime), baze podataka (poput mySQL, Oracle), web serveri (kao što je tomcat, itd.)
Aplikacije kao što su usluge e-pošte (Gmail, Yahoo mail, itd.), stranice za društvene interakcije (Facebook, itd.)

Grafikon popularnosti
Popularno među visokokvalifikovanim programerima, istraživačima kojima je potrebna prilagodba prema njihovim zahtevima ili oblasti istraživanja
Najpopularniji među programerima jer se mogu fokusirati na razvoj svojih aplikacija ili skripti. Ne moraju da brinu o opterećenju saobraćaja ili upravljanju serverom, itd.
Najpopularniji među običnim potrošačima ili kompanijama koje koriste softver poput e-pošte, dijeljenja datoteka, društvenih mreža, jer ne moraju brinuti o tehničkim detaljima

Slika 3: Sažetak glavnih ponuda u oblaku | Slika obezbeđena Amir na Blog Specia

3. Google Cloud Platform Computing Suite

Nakon što smo pogledali tipične ponude pružatelja usluga u oblaku u odjeljku 2, možemo ih uporediti sa ponudom Google Cloud-a.

3.1 Google Compute Engine (GCE) - IaaS

GCP: raščlanjivanje Google Cloud Platform Compute Stack

Slika 4: Ikona Google Compute Engine (GCE).

GCE je IaaS ponuda od Google-a. Pomoću GCE-a možete slobodno kreirati virtuelne mašine, dodijeliti CPU i memorijske resurse, odabrati vrstu pohrane kao što je SSD ili HDD i količinu memorije. Gotovo kao da ste napravili svoj vlastiti kompjuter/radnu stanicu i obradili sve detalje o tome kako to funkcionira.

U GCE-u možete birati između mikro instanci sa procesorima od 0,3 jezgra i 1 GB RAM-a do čudovišta sa 96 jezgara sa preko 300 GB RAM-a. Također možete kreirati virtualne mašine prilagođene veličine za svoja radna opterećenja. Za one koji su zainteresovani, ovo su virtuelne mašine koje možete da napravite.

Tipovi mašina | Compute Engine Dokumentacija | Google Cloud

3.2. Google Kubernetes Engine (GKE) - (Caas / Kaas)

GCP: raščlanjivanje Google Cloud Platform Compute Stack

Slika 5: Ikona Google Kubernetes Engine (GKE).

GKE je jedinstvena računarska ponuda GCP-a koja je apstrakcija na vrhu Compute Engine-a. Općenito, GKE se može kategorizirati kao Kontejner kao usluga (CaaS), koji se ponekad naziva i Kubernetes kao usluga (KaaS), što omogućava korisnicima da lako pokreću svoje Docker kontejnere u potpuno upravljanom Kubernetes okruženju. Za one koji nisu upoznati sa kontejnerima, kontejneri pomažu u modularizaciji usluga/aplikacija, tako da različiti kontejneri mogu sadržavati različite usluge, na primjer, jedan kontejner može ugostiti prednji kraj vaše web aplikacije, a drugi može sadržavati zadnji kraj. Kubernetes automatizira, orkestrira, upravlja i postavlja vaše kontejnere. Više informacija ovdje.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) - (PaaS)

GCP: raščlanjivanje Google Cloud Platform Compute Stack

Slika 6: Ikona Google App Engine (GAE).

Kao što je spomenuto u odjeljku 2.2, PaaS je iznad IaaS-a, au slučaju GCP-a, može se smatrati i ponudom iznad GKE-a. GAE je Googleov prilagođeni PaaS, a način na koji sebe najbolje opisuju je "donesite svoj kod i mi ćemo se pobrinuti za ostalo."

Ovo osigurava da korisnici koji koriste GAE ne moraju da imaju posla sa osnovnim hardverom/srednjim softverom, i da već mogu imati unapred konfigurisanu platformu spremnu za rad; sve što treba da urade je da obezbede kod potreban za njegovo pokretanje.

GAE automatski upravlja skaliranjem kako bi zadovoljio opterećenje i potražnju korisnika, što znači da ako vaša web stranica za prodaju cvijeća iznenada dosegne vrhunac jer se bliži Dan zaljubljenih, GAE će upravljati skaliranjem osnovne infrastrukture kako bi zadovoljio potražnju i osigurao da se vaša web stranica neće srušiti zbog povećane potražnje. To znači da plaćate upravo ona sredstva koja su u tom trenutku potrebna vašoj aplikaciji.

GAE koristi Kubernetes ili njegovu izvornu verziju za sve ovo, tako da ne morate brinuti o tome. GAE je najpogodniji za kompanije koje nisu zainteresirane za osnovnu infrastrukturu i brinu samo o tome da njihova aplikacija bude dostupna na najbolji mogući način.

Po mom mišljenju, GAE je najbolje mjesto za početak ako ste programer sa sjajnom idejom, ali ne želite da se bavite mukotrpnim radom postavljanja servera, balansiranja opterećenja i svih ostalih dugotrajnih devops/SRE poslova . Vremenom biste mogli isprobati GKE i GCE, ali to je samo moje mišljenje.

Odricanje od odgovornosti: AppEngine se koristi za web aplikacije, a ne za mobilne aplikacije.

Za informaciju: App Engine - Izgradite skalabilne web i mobilne pozadine na bilo kojem jeziku | Google Cloud

3.4 Google Cloud funkcije - (FaaS)

GCP: raščlanjivanje Google Cloud Platform Compute Stack

Slika 7: Ikona Google Cloud Functions (GCF).

Nadamo se da ste primijetili trend gledajući prethodne ponude. Što se više penjete na lestvici GCP računarskih rešenja, manje morate da brinete o osnovnoj tehnologiji. Ova piramida završava najmanjom mogućom jedinicom proračuna, funkcijom, kao što je prikazano u Odjeljku 1.

GCF je relativno nova GCP ponuda koja je još uvijek u beta verziji (u vrijeme pisanja ovog teksta). Cloud funkcije omogućavaju da određene funkcije koje je napisao programer pokrene događaj.

Oni su vođeni događajima i u srcu su popularne riječi „bez servera“, što znači da ne poznaju servere. Cloud funkcije su vrlo jednostavne i imaju mnogo različitih upotreba koje zahtijevaju razmišljanje o događajima. Na primjer, svaki put kada se registruje novi korisnik, funkcija oblaka se može pokrenuti da upozori programere.

U tvornici, kada određeni senzor dostigne određenu vrijednost, može pokrenuti funkciju oblaka koja vrši neku obradu informacija, ili obavještava neko osoblje za održavanje, itd.

Funkcije u oblaku - serversko računarstvo vođeno događajima | Google Cloud

zaključak

U ovom članku smo govorili o različitim ponudama u oblaku kao što su IaaS, PaaS, itd. i kako Googleov računarski stog implementira ove različite slojeve. Vidjeli smo da slojevi apstrakcije pri prelasku iz jedne kategorije usluga u drugu, kao što je IaaS u Paasu, zahtijevaju manje znanja o osnovi.

Za poslovanje, ovo pruža kritičnu fleksibilnost koja ne samo da ispunjava njegove operativne ciljeve, već ispunjava i druga ključna područja kao što su sigurnost i troškovi. Da rezimiramo:

Compute Engine - omogućava vam da kreirate sopstvenu virtuelnu mašinu dodeljujući određene hardverske resurse, na primer, RAM, procesor, memoriju. Također je prilično praktičan i niskog nivoa.

Kubernetes Engine je korak napred u odnosu na Compute Engine i omogućava vam da koristite Kubernetes i kontejnere za upravljanje aplikacijom, omogućavajući vam da je povećate po potrebi.

App Engine je korak naprijed u odnosu na Kubernetes Engine, koji vam omogućava da se fokusirate samo na svoj kod, dok Google vodi računa o svim osnovnim zahtjevima platforme.

Cloud Funkcije je vrh računarske piramide, što vam omogućava da napišete jednostavnu funkciju koja, kada se pokrene, koristi cjelokupnu infrastrukturu za izračunavanje i vraćanje rezultata.

Spasibo za vnimanie!

Twitter: @martinomburajr

izvor: www.habr.com

Dodajte komentar