Traducerea articolului a fost pregătită special pentru studenții cursului .
Interesat să dezvoltați în această direcție? Vizionați înregistrarea atelierului profesional , care a fost condus de Egor Zuev — TeamLead la compania InBit și autor al programului educațional la OTUS.

Google Cloud Platform (GCP) oferă o multitudine de servicii, în special un stack de calcul, care include Google Compute Engine (GCE), Google Kubernetes Engine (fost — Container Engine) (GKE), Google App Engine (GAE) și Google Cloud Functions (GCF). Toate aceste servicii au denumiri interesante, dar poate fi uneori neclar în ceea ce privește funcțiile lor și ce le face unice unele față de altele. Acest articol este destinat celor care se familiarizează cu conceptele de cloud, în special cu serviciile cloud și GCP.

1. Stack de calcul
Stackul de calcul poate fi văzut ca o abstracție multi-nivel asupra a ceea ce poate oferi un sistem informatic. Acest stack urcă (se îndreaptă în sus) de la „hardware brut” (bare metal), care se referă la componentele fizice ale computerului, până la funcții (function), care reprezintă cea mai mică unitate de calcul. Este important de subliniat în legătură cu stack-ul că serviciile se agregă pe măsură ce se urcă în stack, de exemplu, secțiunea „aplicații” (apps), ilustrată în figura 1 de mai jos, ar trebui să conțină toate componentele de bază ale containerelor (containere), mașinilor virtuale (mașini virtuale) și hardware-ului. La fel, componenta mașinilor virtuale ar trebui să conțină hardware-ul în interior pentru a funcționa.

Figura 1: Stack de calcul | Imagine obținută din
Acest model, prezentat în figura 1, este baza pentru descrierea ofertei de la furnizorii de cloud. Astfel, unii furnizori pot oferi doar, de exemplu, containere și servicii inferioare în stack, iar altele — tot ce este prezentat în figura 1.
— Dacă sunteți familiarizat cu serviciile cloud, treceți la secțiunea 3, pentru a vedea echivalentul GCP
— Dacă aveți nevoie doar de un rezumat al serviciilor cloud, treceți la secțiunea 2.4
2. Servicii cloud
Lumea calculului în cloud este foarte diversificată. Furnizorii de cloud oferă o mulțime de servicii, adaptate la diversele cerințe ale clienților. Poate că ați auzit de termeni precum IaaS, PaaS, SaaS, FaaS, KaaS etc. cu toate literele alfabetului urmate de „aaS”. În ciuda acestui denumiri neobișnuite, ele formează un set de servicii oferite de furnizorii de cloud. Pot spune că există 3 oferte principale „ca serviciu” (as a Service) pe care furnizorii de cloud le oferă aproape întotdeauna.
Acestea sunt IaaS, PaaS și SaaS, care reprezintă, respectiv, infrastructura ca serviciu (Infrastructure as a Service), platforma ca serviciu (Platform as a Service) și software-ul ca serviciu (Software as a Service). Este important să vizualizăm serviciile cloud ca niveluri de servicii furnizate. Aceasta înseamnă că, atunci când urcați sau coborâți de la un nivel la altul, ca client, traversați diferite opțiuni de servicii care fie se adaugă, fie se elimină din oferta principală. Cel mai bine este să o considerați ca o piramidă, așa cum este prezentat în figura 2.

Figura 2: Piramida „aaS” | Imagine obținută din
2.1 Infrastructura ca serviciu (IaaS)
Acesta este cel mai de jos nivel pe care un furnizor de cloud îl poate oferi, și include un furnizor de calcul în cloud care furnizează infrastructură „goală”, inclusiv software intermediar, cabluri de rețea, procesoare, GPU-uri, RAM, stocare externă, servere și imagini de sisteme de operare de bază, cum ar fi Debian Linux, CentOS, Windows etc.
Dacă comandați de la un furnizor de cloud o ofertă IaaS, iată la ce ar trebui să vă așteptați. Rămâneți responsabil pentru asamblarea acestor componente pentru desfășurarea afacerii dumneavoastră. Gradul de asistență pe care va trebui să lucrați poate varia de la un furnizor la altul, dar, în general, obțineți doar hardware și OS, restul depinde de dumneavoastră. Exemple de IaaS includ AWS Elastic Compute, Microsoft Azure și GCE.
Unii oameni s-ar putea să nu-i placă faptul că trebuie să instaleze imagini de OS și să gestioneze rețelele, echilibrul de sarcini sau să se preocupe de ce tip de procesor este cel mai potrivit pentru sarcina lor de lucru. Aici ne îndreptăm spre partea de sus a piramidei către PaaS.
2.2 Platforma ca serviciu (PaaS)
PaaS implică doar un furnizor de servicii cloud care oferă o anumită platformă pe care utilizatorii pot crea aplicații. Aceasta este o abstrație deasupra IaaS, ceea ce înseamnă că furnizorul de cloud preia toate detaliile tipurilor de CPU, memorie, RAM, stocare, rețele etc. Așa cum se arată în figura 2, tu, ca și client, ai un control limitat asupra platformei reale, deoarece furnizorul de cloud se ocupă de toate detaliile infrastructurii în locul tău. Soliciți platforma aleasă și îți construiești proiectul pe ea. Exemple de PaaS includ Heroku.
Pentru unii, acesta poate fi un nivel prea ridicat, deoarece nu doresc neapărat să își construiască proiectul pe platforma specificată, ci mai degrabă au nevoie de un set de servicii direct de la furnizorul de servicii cloud. Aici intervine SaaS.
2.3 Software ca serviciu (SaaS)
SaaS reprezintă cele mai comune servicii oferite de furnizorii de servicii cloud. Acestea sunt destinate utilizatorilor finali și sunt disponibile în principal prin intermediul site-urilor web, cum ar fi Gmail, Google Docs, Dropbox etc. În ceea ce privește Google Cloud, există câteva oferte în afara stivei lor de calcul care sunt SaaS. Acestea includ Data Studio, Big Query etc.
2.4 Rezumat despre serviciile cloud
Componente
IaaS
PaaS
SaaS
Ce primești
Primești infrastructura și plătești în consecință. Libertatea de a utiliza sau instala orice software, sistem de operare sau combinația lor.
Aici primești exact ceea ce soliciți. Software, hardware, sistem de operare, mediu web. Primești o platformă gata de utilizare și plătești în consecință.
Aici nu trebuie să te îngrijorezi de nimic. Ți se oferă un pachet pre-configurat conform cerințelor tale, iar tu trebuie doar să plătești în consecință.
Valoare
Nivelul de bază al calculului
Vârful IaaS
Este practic un pachet complet de servicii
Complexități tehnice
Cunoștințe tehnice necesare
Îți este oferită o configurație de bază, dar sunt necesare în continuare cunoștințe de specialitate.
Nu trebuie să te preocupi de detalii tehnice. Furnizorul SaaS oferă totul.
Cu ce lucrează
Mașini virtuale, stocare, servere, rețea, echilibratoare de încărcare etc.
Mediile de execuție (cum ar fi runtime-ul Java), baze de date (cum ar fi mySQL, Oracle), servere web (cum ar fi tomcat etc.)
Aplicații asemănătoare cu serviciile de poștă electronică (Gmail, Yahoo Mail etc.), site-uri de socializare (Facebook etc.)
Graficul popularității
Popular în rândul dezvoltatorilor de înaltă calificare, cercetătorilor care necesită personalizare conform cerințelor lor sau domeniului de cercetare
Cel mai popular în rândul dezvoltatorilor, deoarece aceștia se pot concentra asupra dezvoltării aplicațiilor sau scripturilor lor. Nu trebuie să își facă griji cu privire la încărcarea traficului sau gestionarea serverului etc.
Cel mai popular în rândul consumatorilor obișnuiți sau al companiilor care utilizează software, cum ar fi e-mail, partajare de fișiere, rețele sociale, deoarece nu trebuie să se preocupe de detalii tehnice
Figura 3: Rezumatul principalelor oferte de cloud | Imagine furnizată
3. Pachet de calcul Google Cloud Platform
După ce am analizat ofertele tipice ale furnizorilor de cloud în secțiunea 2, le putem compara cu ofertele Google Cloud.
3.1 Google Compute Engine (GCE) - IaaS

Figura 4: Iconița Google Compute Engine (GCE)
GCE este o ofertă IaaS de la Google. Cu GCE, puteți crea liber mașini virtuale, distribui resursele de procesor și memorie, alege tipul de stocare, cum ar fi SSD sau HDD, și, de asemenea, cantitatea de memorie. Este aproape ca și cum ați construi propriul computer/stație de lucru și ați gestiona toate detaliile funcționării acestuia.
În GCE, puteți alege de la instanțe micro cu procesoare de 0,3 nuclee și 1 GB RAM la monștri de 96 de nuclee cu peste 300 GB RAM. De asemenea, puteți crea mașini virtuale de dimensiuni personalizate pentru sarcinile dumneavoastră de lucru. Pentru cei interesați - acestea sunt mașinile virtuale pe care le puteți construi.
3.2. Google Kubernetes Engine (GKE) - (CaaS / KaaS)

Figura 5: Iconița Google Kubernetes Engine (GKE)
GKE — o soluție computațională unică de la GCP, care reprezintă o abstrahție deasupra Compute Engine. Într-un sens mai general, GKE poate fi inclus în categoria „Container ca serviciu” (CaaS), uneori numită „Kubernetes ca serviciu” (KaaS), care permite clienților să-și ruleze cu ușurință containerele Docker într-un mediu Kubernetes complet gestionat. Pentru cei care nu sunt familiarizați cu containerele, acestea ajută la formarea modulară a serviciilor/aplicațiilor, astfel încât diferite containere pot conține servicii diferite; de exemplu, un container poate găzdui interfața aplicației dumneavoastră web, iar altul poate conține partea sa de server. Kubernetes se ocupă de automatizare, coordonare, management și desfășurare a containerelor dumneavoastră. Mai multe informații aici.
3.3 Google App Engine (GAE) — (PaaS)

Imaginea 6: Iconiță Google App Engine (GAE)
Așa cum s-a menționat în secțiunea 2.2, PaaS este deasupra IaaS, iar în cazul GCP, acesta poate fi considerat și o ofertă deasupra GKE. GAE este un PaaS specializat de la Google, iar așa cum se descriu ei cel mai bine — „aduceți codul dumneavoastră, iar noi ne ocupăm de tot restul”.
Aceasta garantează că clienții care utilizează GAE nu trebuie să se ocupe de hardware-ul/software-ul de bază și pot avea déjà o platformă preconfigurată, gata de utilizare; tot ce trebuie să facă este să furnizeze codul necesar pentru a-l rula.
GAE se ocupă automat de scalare pentru a satisface încărcarea și cererea din partea utilizatorilor, ceea ce înseamnă că, dacă site-ul dumneavoastră, care vinde flori, atinge brusc un vârf, deoarece se apropie ziua de Sf. Valentin, GAE va gestiona scalarea infrastructurii de bază pentru a satisface cererea și pentru a garanta că site-ul dumneavoastră nu se va prăbuși din cauza cererii crescute. Aceasta înseamnă că plătiți exact pentru resursele de care aplicația dumneavoastră are nevoie în acel moment.
GAE folosește Kubernetes sau versiunea sa integrată, pentru a gestiona toate acestea, astfel încât să nu trebuiască să vă faceți griji. GAE este cel mai potrivit pentru companii care nu sunt interesate de infrastructura de bază și se concentrează doar pe asigurarea disponibilității optime a aplicației lor.
În opinia mea, GAE este cel mai bun loc pentru a începe dacă ești un dezvoltator cu o idee grozavă, dar nu vrei să te ocupi de rutina configurării serverelor, echilibrarea sarcinilor și toată celelalte lucrări dificile de devops/SRE. În timp, ai putea încerca GKE și GCE, dar aceasta este doar opinia mea.
Declinarea responsabilității: AppEngine este folosit pentru aplicații web, nu pentru aplicații mobile.
Pentru orientare:
3.4 Google Cloud Functions - (FaaS)

Figura 7: Iconița Google Cloud Functions (GCF)
Sper că ați observat tendința analizând propozițiile anterioare. Cu cât urci mai sus pe scara soluțiilor de calcul GCP, cu atât mai puțin trebuie să te îngrijorezi de tehnologiile de bază. Această piramidă se încheie cu cea mai mică unitate de calcul posibilă, funcția, așa cum este arătat în secțiunea 1.
GCF este o ofertă relativ nouă GCP, care se află încă în faza de testare beta (la momentul redactării acestui articol). Funcțiile cloud permit anumitor funcții scrise de dezvoltatori să fie declanșate de un anumit eveniment.
Acestea sunt gestionate prin evenimente și stau la baza cuvântului la modă „fără server”, adică nu știu despre servere. Funcțiile cloud sunt foarte simple și au multe aplicații diferite care necesită o gândire bazată pe evenimente. De exemplu, de fiecare dată când un nou utilizator se înregistrează, poate fi declanșată o funcție cloud pentru a îi anunța pe dezvoltatori.
În fabrică, când un anumit senzor atinge o valoare specifică, poate declanșa o funcție cloud care efectuează unele procesări de informații sau notifică un anumit personal de întreținere etc.
Concluzie
În acest articol, am discutat despre diferitele oferte cloud, cum ar fi IaaS, PaaS etc., și cum stiva de calcul Google implementează aceste diferite niveluri. Am văzut că nivelurile de abstracție atunci când se trece dintr-o categorie de servicii în alta, cum ar fi IaaS în PaaS, necesită mai puține cunoștințe despre tehnologiile de bază.
Pentru afaceri, aceasta oferă flexibilitate esențială, care nu numai că răspunde obiectivelor operaționale, dar satisface și alte domenii cheie, cum ar fi securitatea și costul. În concluzie:
Compute Engine — vă permite să creați propria mașină virtuală, alocând anumite resurse hardware, precum RAM, procesor, memorie. Este, de asemenea, destul de practic și la nivel de bază.
Google Kubernetes Engine — este un pas înainte comparativ cu Compute Engine, care vă permite să utilizați Kubernetes și containere pentru a gestiona aplicația dumneavoastră, permițând scalarea acestuia atunci când este necesar.
App Engine — este un pas înainte comparativ cu Kubernetes Engine, permițându-vă să vă concentrați doar pe codul dumneavoastră, în timp ce Google se ocupă de toate cerințele platformei de bază.
Cloud Functions — este vârful piramidei de calcul, permițându-vă să scrieți o funcție simplă care, la execuție, utilizează întreaga infrastructură de bază pentru calcul și returnează rezultatul.
Vă mulțumesc pentru atenție!
Twitter:
Sursa: habr.com
