GCP: Analýza výpočtovej architektúry Google Cloud Platform

Preklad článku bol pripravený špeciálne pre študentov kurzu „Cloudové služby“.

Máte záujem sa v tejto oblasti rozvíjať? Pozrite si záznam profesionálneho masterclassu „AWS EC2 služba“, ktorý viedol Egor Zuev — TeamLead v spoločnosti InBit a autor vzdelávacieho programu na OTUS.

GCP: Analýza výpočtovej architektúry Google Cloud Platform

Google Cloud Platform (GCP) ponúka množstvo služieb, a to najmä výpočtový stack, ktorý obsahuje Google Compute Engine (GCE), Google Kubernetes Engine (predtým — Container Engine) (GKE), Google App Engine (GAE) a Google Cloud Functions (GCF). Všetky tieto služby majú skvelé názvy, no nemusí byť celkom jasné, aké sú ich funkcie a čo ich robí jedinečnými navzájom. Tento článok je určený pre tých, ktorí sa len zoznamujú s cloudovými konceptmi, predovšetkým s cloudovými službami a GCP.

GCP: Analýza výpočtovej architektúry Google Cloud Platform

1. Výpočtový stack

Výpočtový stack môžeme považovať za viacúrovňovú abstrakciu nad tým, čo môže poskytnúť počítačový systém. Tento stack sa posúva (moves up) od „holého železa“ (bare metal), ktoré sa týka skutočných hardvérových komponentov počítača, až po funkcie (functions), ktoré predstavujú najmenšiu jednotku výpočtu. Dôležité je poznamenať, že služby sa agregujú pri posune nahor po stacku, napríklad sekcia „aplikácie“ (apps), znázornená na obrázku 1 nižšie, by mala obsahovať všetky základné komponenty kontajnerov (containers), virtuálnych strojov (virtual machines) a hardvéru. Podobne by komponent virtuálnych strojov mal obsahovať hardvér na prevádzku.

GCP: Analýza výpočtovej architektúry Google Cloud Platform

Obrázok 1: Výpočtový stack | Obrázok prevzatý z Google Cloud

Tento model, znázornený na obrázku 1, je základom pre opis ponúk od cloudových poskytovateľov. Týmto spôsobom niektorí poskytovatelia môžu ponúknuť iba, napríklad, kontajnery a služby o nižšej kvalite po stacku, zatiaľ čo iní ponúkajú všetko, čo je znázornené na obrázku 1.

— Ak poznáte cloudové služby, prejdite na sekciu 3, aby ste sa oboznámili s ekvivalentom GCP
— Ak potrebujete iba prehľad cloudových služieb, prejdite na sekciu 2.4

2. Cloudové služby

Svet cloudových výpočtov je veľmi rozmanitý. Cloudoví poskytovatelia ponúkajú množstvo služieb prispôsobených rôznym požiadavkám klientov. Možno ste počuli takéto pojmy ako IaaS, PaaS, SaaS, FaaS, KaaS a pod., pričom za nimi nasleduje 'aaS'. Napriek podivnému pojmenovaniu vytvárajú súbor služieb poskytovateľov cloudu. Konštatujem, že existujú 3 hlavné ponuky 'ako služba' (as a Service), ktoré cloudoví poskytovatelia takmer vždy poskytujú.

Sú to IaaS, PaaS a SaaS, ktoré znamenajú infraštruktúru ako službu (Infrastructure as a Service), platformu ako službu (Platform as a Service) a softvér ako službu (Software as a Service). Je dôležité vizualizovať cloudové služby ako úrovne poskytovaných služieb. To znamená, že keď sa dostanete vyššie alebo nižšie z úrovne na úroveň, ako zákazník prechádzate rôznymi možnosťami služieb, ktoré sú buď pridané, alebo vynechané z hlavnej ponuky. Najlepšie je to považovať za pyramídu, ako je znázornené na obrázku 2.
GCP: Analýza výpočtovej architektúry Google Cloud Platform

Obrázok 2: Pyramída 'aaS' | Obraz získaný z Ruby Garage

2.1 Infraštruktúra ako služba (IaaS)

Toto je najnižšia úroveň, ktorú môže poskytovateľ cloudových služieb ponúknuť, a zahŕňa poskytovateľa cloudového počítania dodávajúceho 'holú' infraštruktúru, vrátane middleware, sieťových káblov, procesorov, grafických procesorov, operačnej pamäte, externého úložiska, serverov a obrazy základných operačných systémov, ako sú Debian Linux, CentOS, Windows a pod.

Ak si objednáte ponuku IaaS od poskytovateľa cloudových služieb, toto je to, čo by ste mali očakávať. Na vás, ako na zákazníkovi, zostáva zložiť tieto časti pre svoje podnikanie. Miera toho, s čím sa budete musieť vysporiadať, sa môže líšiť od poskytovateľa k poskytovateľovi, ale vo všeobecnosti dostanete len hardvér a OS, a všetko ostatné je na vás. Príkladmi IaaS sú AWS Elastic Compute, Microsoft Azure a GCE.

Niektorým ľuďom sa nemusí páčiť, že musia inštalovať obrazy OS a zaoberať sa sieťou, zaťažovaním alebo sledovaním toho, aký typ procesora je ideálny pre ich pracovnú záťaž. Tu sa posúvame vyššie po pyramíde k PaaS.

2.2 Platforma ako služba (PaaS)

PaaS zahŕňa iba poskytovateľa cloudových služieb, ktorý ponúka určitú platformu, na ktorej môžu používatelia vytvárať aplikácie. Je to abstrakcia nad IaaS, čo znamená, že poskytovateľ cloudu preberá všetky detaily týkajúce sa typov CPU, pamäte, RAM, úložiska, sietí atď. Ako je znázornené na obrázku 2, ako klient máte obmedzenú kontrolu nad skutočnou platformou, pretože cloudový poskytovateľ sa stará o všetky detaily infraštruktúry za vás. Požiadate o vybranú platformu a na nej zrealizujete projekt. Príkladmi PaaS sú Heroku.

Pre niekoho môže byť toto príliš vysoká úroveň, pretože nemusí nutne chcieť vytvárať projekt na uvedenej platforme, ale skôr potrebuje súbor služieb priamo od poskytovateľa cloudových služieb. Tu prichádza na scénu SaaS.

2.3 Softvér ako služba (SaaS)

SaaS predstavuje najbežnejšie služby, ktoré poskytujú poskytovatelia cloudových služieb. Sú určené pre koncových používateľov a sú dostupné hlavne cez webové stránky, ako sú Gmail, Google Docs, Dropbox atď. Pokiaľ ide o Google Cloud, existuje niekoľko ponúk mimo ich výpočtového stacku, ktoré sú SaaS. Medzi ne patrí Data Studio, Big Query atď.

2.4 Zhrnutie o cloudových službách

Zložky
IaaS
PaaS
SaaS

Čo získate
Získate infraštruktúru a platíte zodpovedajúcim spôsobom. Slobodu používať alebo inštalovať akýkoľvek softvér, operačný systém alebo ich kombináciu.
Tu dostanete to, čo požiadate. Softvér, hardvér, operačný systém, webové prostredie. Získate hotovú platformu a platíte zodpovedajúcim spôsobom.
Tu sa nemusíte ničoho obávať. Dostanete predinštalovaný balík prispôsobený vašim požiadavkám a ostáva vám len zaplatiť zodpovedajúcim spôsobom.

Hodnota
Základná úroveň výpočtových služieb
Špička IaaS
Ide v podstate o celý balík služieb

Technické zložitosti
Sú potrebné technické znalosti
Máte základnú konfiguráciu, ale stále sú potrebné odborné znalosti.
Nemusíte sa zaťažovať technickými detailmi. Poskytovateľ SaaS poskytuje všetko.

S čím pracuje
Virtuálne stroje, úložiská, servery, sieť, vyrovnávače záťaže atď.
Prostredia na vykonávanie (ako java runtime), databázy (ako mySQL, Oracle), webové servery (ako tomcat a pod.)
Aplikácie ako e-mailové služby (Gmail, Yahoo mail atď.), sociálne interakčné stránky (Facebook atď.)

Graf popularity
Obľúbené medzi vysoko kvalifikovanými vývojármi a výskumníkmi, ktorí potrebujú prispôsobenie podľa svojich požiadaviek alebo oblasti výskumu
Najobľúbenejšie medzi vývojármi, pretože sa môžu sústrediť na vývoj svojich aplikácií alebo skriptov. Nemusia sa starať o zaťaženie prevádzky alebo správu servera atď.
Najobľúbenejšie medzi bežnými používateľmi alebo spoločnosťami, ktoré využívajú softvér ako e-mail, zdieľanie súborov, sociálne siete, pretože sa nemusia starať o technické detaily

Obrázok 3: Súhrn hlavných cloudových ponúk | Obrázok poskytnutý Amir at Blog Specia

3. Výpočtový balík Google Cloud Platform

Zvážením typických ponúk cloudových poskytovateľov v časti 2 môžeme porovnať ich s ponukami Google Cloud.

3.1 Google Compute Engine (GCE) — IaaS

GCP: Analýza výpočtovej architektúry Google Cloud Platform

Obrázok 4: Ikona Google Compute Engine (GCE)

GCE je IaaS ponuka od Google. S GCE môžete slobodne vytvárať virtuálne stroje, prideliť procesorové a pamäťové zdroje, vybrať typ úložiska, ako SSD alebo HDD, a tiež objem pamäte. Je to takmer ako by ste vytvorili vlastný počítač/pracovnú stanicu a starali sa o všetky detaily jej fungovania.

V GCE si môžete vybrať od mikro inštancií s 0,3-jadrovými procesormi a 1 GB RAM až po 96-jadrové monštrá s viac ako 300 GB RAM. Môžete tiež vytvárať virtuálne stroje na mieru pre svoje pracovné zaťaženia. Pre tých, ktorí majú záujem — tieto virtuálne stroje si môžete zostaviť.

Typy strojov | Dokumentácia Compute Engine | Google Cloud

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

GCP: Analýza výpočtovej architektúry Google Cloud Platform

Obrázok 5: Ikona Google Kubernetes Engine (GKE)

GKE je jedinečná výpočtová ponuka od GCP, ktorá predstavuje abstrakciu nad Compute Engine. V širšom zmysle môžeme GKE zaradiť do kategórie „Kontajner ako služba“ (CaaS), niekedy nazývanej aj „Kubernetes ako služba“ (KaaS), ktorá umožňuje klientom jednoducho spúšťať svoje Docker kontajneri v plne spravovanej prostredí Kubernetes. Pre tých, ktorí nie sú oboznámení s kontajnerami, kontajnery pomáhajú modulárne formovať služby/aplikácie, takže rôzne kontajnery môžu obsahovať rôzne služby, napríklad jeden kontajner môže hostiť rozhranie vašej webovej aplikácie, zatiaľ čo iný môže obsahovať jej serverovú časť. Kubernetes vykonáva automatizáciu, koordináciu, správu a nasadenie vašich kontajnerov. Viac informácií tu.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) — (PaaS)

GCP: Analýza výpočtovej architektúry Google Cloud Platform

Obrázok 6: Ikona Google App Engine (GAE)

Ako bolo uvedené v oddiele 2.2, PaaS sa nachádza nad IaaS, a v prípade GCP ho môžeme považovať aj za ponuku nad GKE. GAE je špecializovaný Google PaaS a ako sami seba najlepšie opisujú — „doneste svoj kód, my sa postaráme o všetko ostatné“.

To zaručuje, že klienti používajúci GAE sa nemusia zaoberať základným hardvérom/middleware, a môžu mať už predkonfigurovanú platformu pripravenú na prácu; všetko, čo musia urobiť, je poskytnúť kód potrebný na jeho spustenie.

GAE automaticky spravuje škálovanie, aby vyhovelo záťaži a dopytu zo strany používateľov, čo znamená, že ak váš web predávajúci kvety náhle dosiahne vrchol, pretože sa blíži Deň svätého Valentína, GAE sa postará o škálovanie základnej infraštruktúry, aby vyhovelo dopytu a zabezpečilo, že vaša webová stránka nespadne kvôli zvýšenému dopytu. To znamená, že platíte presne za tie zdroje, ktoré vaše aplikácie momentálne potrebujú.

GAE využíva Kubernetes alebo jeho vloženú verziu na zvládnutie všetkého tohto, aby ste sa o to nemuseli starať. GAE je najvhodnejší pre spoločnosti, ktoré nie sú zainteresované v základnej infraštruktúre a starajú sa len o to, aby bola ich aplikácia dostupná čo najlepšie.

Podľa môjho názoru je GAE najlepším miestom na začiatok, ak ste vývojár s výborným nápadom, ale nechcete sa zaoberať rutinnou prácou pri nastavovaní serverov, vyvažovaním záťaže a všetkou tou ďalšou časovo náročnou prácou devops/SRE. Postupom času by ste mohli vyskúšať GKE a GCE, ale to je len môj názor.

Zrieknutie sa zodpovednosti: AppEngine sa používa pre webové aplikácie, a nie mobilné aplikácie.

Na oboznámenie: App Engine – Vytvárajte škálovateľné webové a mobilné backendy v akomkoľvek jazyku | Google Cloud

3.4 Google Cloud Functions – (FaaS)

GCP: Analýza výpočtovej architektúry Google Cloud Platform

Obrázok 7: Ikona Google Cloud Functions (GCF)

Dúfam, že ste si všimli trend pri analýze predchádzajúcich ponúk. Čím vyššie sa pohybujete po rebríčku výpočtových riešení GCP, tým menej sa musíte obávať základných technológií. Táto pyramída končí najmenšou možnou jednotkou výpočtu, funkciou, ako je uvedené v kapitole 1.

GCF je relatívne novou ponukou GCP, ktorá je stále v beta teste (v čase písania tohto článku). Cloudové funkcie umožňujú spúšťanie určitých funkcií napísaných vývojárom na základe nejakého podnetu.

Sú riadené podnetmi a sú základom módneho slova „bezserverový“, teda nepoznajú servery. Cloudové funkcie sú veľmi jednoduché a majú množstvo rôznych využití, ktoré vyžadujú myšlienku založenú na podnetoch. Napríklad, zakaždým, keď sa zaregistruje nový používateľ, môže sa spustiť cloudová funkcia, aby upozornila vývojárov.

Vo fabrike, keď určitý senzor dosiahne určitú hodnotu, môže spustiť cloudovú funkciu, ktorá vykoná nejaké spracovanie informácií, alebo upozorní určitý údržbový personál a pod.

Cloudové funkcie – riadené podnetmi serverové výpočty | Google Cloud

Záver

V tomto článku sme hovorili o rôznych cloudových ponukách, ako IaaS, PaaS a pod., a ako Google realizuje tieto rôzne úrovne výpočtového stacku. Videli sme, že úrovne abstrakcie pri prechode z jednej kategórie služieb do druhej, ako z IaaS do PaaS, si vyžadujú menej znalostí o základných technológiach.

Pre obchod to poskytuje kritickú flexibilitu, ktorá nielenže spĺňa jeho operačné ciele, ale tiež uspokojuje ďalšie kľúčové oblasti, ako sú bezpečnosť a náklady. Zhrnutie:

Compute Engine — vám umožňuje vytvoriť si vlastný virtuálny stroj, priradením určitých hardvérových zdrojov, ako sú RAM, procesor a pamäť. Je tiež veľmi praktický a nízkoúrovňový.

Kubernetes Engine — je to krok vyššie v porovnaní s Compute Engine, ktorý vám umožňuje používať Kubernetes a kontajnery na správu vašej aplikácie, pričom umožňuje jej škálovanie, ak je to potrebné.

App Engine — je to krok vyššie v porovnaní s Kubernetes Engine, čo vám umožňuje sústrediť sa iba na svoj kód, zatiaľ čo Google zabezpečuje všetky požiadavky základnej platformy.

Cloud-Functions — je to vrchol výpočtovej pyramídy, ktorý vám umožňuje napísať jednoduchú funkciu, ktorá pri spustení využíva celú základnú infraštruktúru na výpočty a vrátenie výsledku.

Ďakujem za pozornosť!

Twitter: @martinomburajr

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster