Překlad článku byl připraven speciálně pro studenty kurzu .
Zajímá vás rozvoj v tomto směru? Podívejte se na záznam profesionálního workshopu , který vedl Egor Zuyev — TeamLead ve společnosti InBit a autor vzdělávacího programu v OTUS.

Google Cloud Platform (GCP) nabízí řadu služeb, a to zejména výpočetní stack, který zahrnuje Google Compute Engine (GCE), Google Kubernetes Engine (dříve – Container Engine) (GKE), Google App Engine (GAE) a Google Cloud Functions (GCF). Všechny tyto služby mají zajímavé názvy, ale nemusí být zcela jasné, jaké mají funkce a co je činí jedinečnými navzájem. Tento článek je určen pro ty, kteří se teprve seznamují s koncepty cloudu, zejména s cloudovými službami a GCP.

1. Výpočetní stack
Výpočetní stack lze považovat za víceúrovňovou abstrakci nad tím, co může počítačový systém poskytnout. Tento stack stoupá (moves up) od „holého železa“ (bare metal), vztahujícího se k skutečným hardwarovým komponentům počítače, až po funkce (functions), které představují nejmenší jednotku výpočtu. Důležité je poznamenat, že ve vztahu ke stacku se služby agregují při pohybu vzhůru, například sekce „aplikace“ (apps), znázorněná na obrázku 1 níže, by měla obsahovat všechny základní komponenty kontejnerů (kontejnery), virtuálních strojů (virtual machines) a hardwaru. Stejným způsobem musí komponent virtuálních strojů obsahovat hardware uvnitř pro fungování.

Obrázek 1: Výpočetní stack | Obrázek byl převzat z
Tento model, znázorněný na obrázku 1, je základem pro popis nabídek od cloudových poskytovatelů. Někteří poskytovatelé mohou nabízet pouze, například, kontejnery a služby nižší kvality v rámci stacku, jiní pak vše, co je znázorněno na obrázku 1.
— Pokud jste obeznámeni s cloudovými službami, přejděte na část 3, abyste se seznámili s ekvivalentem GCP
— Pokud potřebujete pouze shrnutí o cloudových službách, přejděte na část 2.4
2. Cloudové služby
Svět cloudového výpočetnictví je velmi rozmanitý. Cloudoví poskytovatelé nabízejí řadu služeb, které jsou přizpůsobeny různým požadavkům klientů. Možná jste slyšeli o takových termínech jako IaaS, PaaS, SaaS, FaaS, KaaS atd. se všemi písmeny abecedy, za kterými následuje „aaS“. Navzdory zvláštnímu pojmenování tvoří tyto termíny sadu služeb cloudových poskytovatelů. Uvádím, že existují 3 hlavní nabídky „jako služba“ (as a Service), které cloudoví poskytovatelé téměř vždy poskytují.
Jsou to IaaS, PaaS a SaaS, které znamenají respektive infrastrukturu jako službu (Infrastructure as a Service), platformu jako službu (Platform as a Service) a software jako službu (Software as a Service). Je důležité vizualizovat cloudové služby jako úrovně nabízených služeb. To znamená, že když se dostáváte nahoru nebo dolů na úrovni, jako klient překonáváte různé varianty služeb, které jsou buď přidávány, nebo odebrány z hlavní nabídky. Nejlépe to lze považovat za pyramidu, jak je znázorněno na obrázku 2.

Obrázek 2: Pyramida „aaS“ | Obrázek převzatý z
2.1 Infrastruktura jako služba (IaaS)
To je nejnižší úroveň, kterou může poskytovatel cloudových služeb nabídnout, a zahrnuje poskytovatele cloudového výpočetnictví, který dodává „holou“ infrastrukturu, včetně middleware, síťových kabelů, procesorů, grafických procesorů, paměti RAM, externího úložiště, serverů a obrazů základních operačních systémů, jako jsou Debian Linux, CentOS, Windows atd.
Pokud si objednáte nabídku IaaS od poskytovatele cloudových služeb, to je to, co byste měli očekávat. Na vás, jako klientovi, zůstává sestavení těchto částí pro provozování vašeho podnikání. Úroveň toho, s čím budete muset pracovat, se může lišit od poskytovatele k poskytovateli, ale obecně dostáváte hardware a OS, zatímco ostatní je zcela na vás. Příklady IaaS zahrnují AWS Elastic Compute, Microsoft Azure a GCE.
Některým lidem se nemusí líbit, že musí instalovat obrazy OS a zabývat se sítí, vyvažováním zátěže nebo se starat o to, jaký typ procesoru je pro jejich pracovní zátěž ideální. Tady se posouváme nahoru po pyramidě k PaaS.
2.2 Platforma jako služba (PaaS)
PaaS zahrnuje pouze poskytovatele cloudových služeb, který nabízí určitou platformu, na které mohou uživatelé vytvářet aplikace. Je to abstrakce nad IaaS, což znamená, že poskytovatel cloudu se stará o všechny detaily typů CPU, paměti, RAM, úložiště, sítí atd. Jak je znázorněno na obrázku 2, vy, jako klient, máte malou kontrolu nad skutečnou platformou, protože poskytovatel cloudu se stará o všechny detaily infrastruktury za vás. Požadujete vybranou platformu a stavíte na ní projekt. Příkladem PaaS je Heroku.
Pro někoho může být tato úroveň příliš vysoká, protože nemusí mít zájem o vytváření projektu na uvedené platformě, ale spíše potřebuje sadu služeb přímo od poskytovatele cloudových služeb. Zde přichází na scénu SaaS.
2.3 Software jako služba (SaaS)
SaaS představuje nejrozšířenější služby nabízené poskytovateli cloudových služeb. Jsou určeny pro koncové uživatele a jsou dostupné především prostřednictvím webových stránek, jako například Gmail, Google Docs, Dropbox atd. Co se týče Google Cloud, existuje několik nabídek mimo jejich výpočetní stack, které jsou SaaS. Patří sem Data Studio, Big Query atd.
2.4 Shrnutí cloudových služeb
Složky
IaaS
PaaS
SaaS
Co získáte
Získáte infrastrukturu a platíte podle toho. Svobodu používat nebo instalovat jakýkoli software, OS nebo jejich kombinaci.
Zde získáte to, co požadujete. Software, hardware, OS, webové prostředí. Získáte připravenou platformu k použití a platíte podle toho.
Zde se nemusíte o nic starat. Je vám poskytnut předinstalovaný balíček přizpůsobený vašim požadavkům, a vy už jen platíte podle toho.
Hodnota
Základní úroveň výpočtů
Špička IaaS
To je v podstatě kompletní balíček služeb
Technické složitosti
Jsou potřebné technické znalosti
Máte základní konfiguraci, ale stále jsou nutné znalosti oboru.
Nemusíte se starat o technické detaily. Poskytovatel SaaS poskytuje vše.
S čím pracuje
Virtuální stroje, úložiště, servery, síť, vyvažovače zátěže atd.
Prostředí běhu (jako java runtime), databáze (jako mySQL, Oracle), webové servery (jako tomcat atd.)
Aplikace jako poštovní služby (Gmail, Yahoo Mail atd.), webové stránky pro sociální interakci (Facebook atd.)
Graf popularity
Populární mezi vysoce kvalifikovanými vývojáři, výzkumníky, kteří potřebují přizpůsobení podle svých požadavků nebo oblasti výzkumu
Nejpopulárnější mezi vývojáři, protože se mohou soustředit na vývoj svých aplikací nebo skriptů. Nemusí se starat o zátěžový provoz nebo správu serveru atd.
Nejpopulárnější mezi běžnými spotřebiteli nebo firmami, které používají software jako e-mail, sdílení souborů, sociální sítě, protože se nemusí starat o technické detaily
Obrázek 3: Přehled hlavních cloudových nabídek | Obrázek poskytnut
3. Výpočetní balíček Google Cloud Platform
Po zvážení typických nabídek cloudových poskytovatelů v sekci 2 můžeme je porovnat s nabídkami Google Cloud.
3.1 Google Compute Engine (GCE) — IaaS

Obrázek 4: Ikona Google Compute Engine (GCE)
GCE je IaaS nabídka od Google. S GCE můžete volně vytvářet virtuální stroje, distribuovat procesorové a paměťové zdroje, vybírat typ úložiště, například SSD nebo HDD, a také objem paměti. Je to téměř jako byste si vytvořili svůj vlastní počítač/pracovní stanici a zabývali se všemi detaily jeho provozu.
V GCE si můžete vybrat od mikro instancí s 0,3 jádrovými procesory a 1 GB RAM po 96-jádrové monstra s více než 300 GB RAM. Můžete také vytvářet virtuální stroje na míru pro své pracovní zátěže. Pro ty, které to zajímá — jsou to virtuální stroje, které si můžete sestavit.
3.2. Google Kubernetes Engine (GKE) — (CaaS / KaaS)

Obrázek 5: Ikona Google Kubernetes Engine (GKE)
GKE je jedinečná výpočetní nabídka od GCP, která představuje abstrakci nad Compute Engine. Obecněji lze GKE zařadit do kategorie "Kontejner jako služba" (CaaS), někdy nazývané "Kubernetes jako služba" (KaaS), což umožňuje zákazníkům snadno spouštět své Docker kontejnery v plně spravovaném prostředí Kubernetes. Pro ty, kteří nejsou obeznámeni s kontejnery, kontejnery pomáhají modulárně tvořit služby/aplikace, takže různé kontejnery mohou obsahovat různé služby, například jeden kontejner může hostit uživatelské rozhraní vaší webové aplikace a jiný může obsahovat její serverovou část. Kubernetes provádí automatizaci, koordinaci, správu a nasazení vašich kontejnerů. Více informací zde.
3.3 Google App Engine (GAE) — (PaaS)

Obrázek 6: Ikona Google App Engine (GAE)
Jak bylo zmíněno v části 2.2, PaaS je nad IaaS, a v případě GCP lze tuto nabídku také považovat za nad GKE. GAE je specializovaný Google PaaS a jak se sami nejlépe popisují — "přineste svůj kód a my se postaráme o zbytek".
To zajišťuje, že zákazníci používající GAE se nemusí zabývat základním hardwarem/softwarovou architekturou a mohou mít předem nastavenou platformu připravenou k použití; vše, co musí udělat, je poskytnout kód, který potřebují k jejímu spuštění.
GAE automaticky zpracovává škálování, aby vyhovělo zátěži a poptávce ze strany uživatelů, což znamená, že pokud váš web prodávající květiny náhle dosáhne vrcholu, protože se blíží Valentýn, GAE se postará o škálování základní infrastruktury, aby splnilo poptávku a zajistilo, že vaše webová stránka nespadne kvůli zvýšené poptávce. To znamená, že platíte pouze za ty zdroje, které vaše aplikace v danou chvíli potřebuje.
GAE používá Kubernetes nebo jeho integrovanou verzi, aby se s tímto vším vyrovnalo, abyste se o to nemuseli starat. GAE je nejvhodnější pro firmy, které nemají zájem o základní infrastrukturu a zajímají se pouze o to, aby byla jejich aplikace co nejlépe dostupná.
Podle mého názoru je GAE nejlepší místo pro start, pokud jste vývojář s skvělým nápadem, ale nechcete se zabývat rutinními úkoly jako je nastavení serverů, vyvažování zátěže a dalšími pracemi spojenými s devops/SRE. Časem byste mohli vyzkoušet GKE a GCE, ale to je jen můj názor.
Vyloučení odpovědnosti: AppEngine se používá pro webové aplikace, nikoli pro mobilní aplikace.
Pro seznámení:
3.4 Google Cloud Functions – (FaaS)

Obrázek 7: Ikona Google Cloud Functions (GCF)
Doufám, že jste si všimli trendu při analýze předchozích návrhů. Čím výše stoupáte po žebříčku výpočetních řešení GCP, tím méně se musíte obávat základních technologií. Tato pyramida končí nejmenší možnou jednotkou výpočtu, funkcí, jak je uvedeno v oddíle 1.
GCF je relativně novou nabídkou GCP, která je stále v beta testování (v době psaní tohoto článku). Cloudové funkce umožňují určitým funkcím napsaným vývojářem spouštět se na základě určité události.
Jsou řízeny událostmi a leží v základu módního slova „bezserverový“, což znamená, že neznají servery. Cloudové funkce jsou velmi jednoduché a mají mnoho různých využití, které vyžadují myšlení zaměřené na události. Například pokaždé, když se zaregistruje nový uživatel, může se spustit cloudová funkce, aby upozornila vývojáře.
Na výrobně, když určitý senzor dosáhne určité hodnoty, může spustit cloudovou funkci, která provádí určité zpracování informací nebo informuje nějaký obslužný personál atd.
Závěr
V tomto článku jsme hovořili o různých cloudových nabídkách, jako je IaaS, PaaS atd., a o tom, jak googleová výpočetní architektura implementuje tyto různé úrovně. Viděli jsme, že úrovně abstrakce při přechodu z jedné kategorie služeb do druhé, například z IaaS na PaaS, vyžadují méně znalostí o základní technologii.
Pro podnikání to poskytuje kritickou flexibilitu, která nejen odpovídá jeho operativním cílům, ale také uspokojuje další klíčové oblasti, jako je bezpečnost a náklady. Obecně řečeno:
Compute Engine — umožňuje vám vytvořit si vlastní virtuální stroj, který vyčleňuje určité hardwarové zdroje, například RAM, procesor a úložiště. Je také dost praktický a nízkoúrovňový.
Kubernetes Engine — to je krok dál oproti Compute Engine, který vám umožňuje používat Kubernetes a kontejnery pro správu vaší aplikace, což umožňuje její škálování, pokud je to potřeba.
App Engine — to je krok dál oproti Kubernetes Engine, který vám umožňuje soustředit se pouze na váš kód, zatímco Google zajišťuje všechny požadavky základní platformy.
Cloud-Functions — to je vrchol výpočetní pyramidy, který umožňuje napsat jednoduchou funkci, která při spuštění využívá celou základní infrastrukturu pro výpočty a vrací výsledek.
Děkujeme za pozornost!
Twitter:
Zdroj: habr.com
