GCP: Parsing af Google Cloud Platform Compute Stack

Oversættelsen af ​​artiklen er udarbejdet specifikt til kursets studerende "Skytjenester".

Er du interesseret i at udvikle dig i denne retning? Se optagelsen af ​​en professionel mesterklasse "AWS EC2 service", som blev udført af Egor Zuev - TeamLead hos InBit og forfatteren af ​​uddannelsesprogrammet på OTUS.

GCP: Parsing af Google Cloud Platform Compute Stack

Google Cloud Platform (GCP) tilbyder mange tjenester, og især computerstakken, der indeholder Google Compute Engine (GCE), Google Kubernetes Engine (tidligere Container Engine) (GKE), Google App Engine (GAE) og Google Cloud Functions (GCF) . Alle disse tjenester har fede navne, men de er måske ikke helt indlysende om deres funktioner og hvad der gør dem unikke for hinanden. Denne artikel er beregnet til dem, der er nye til cloud-koncepter, især cloud-tjenester og GCP.

GCP: Parsing af Google Cloud Platform Compute Stack

1. Beregn stak

En computerstack kan opfattes som en lagdelt abstraktion over, hvad et computersystem kan levere. Denne stak stiger (rykker op) fra "bart jern" (Råt metal), med henvisning til computerens faktiske hardwarekomponenter, ned til funktionerne (funktioner), som repræsenterer den mindste beregningsenhed. Det, der er vigtigt at bemærke om stakken er, at tjenester aggregeres, når du bevæger dig op i stakken, såsom "applikationer"-sektionen (apps), vist i figur 1 nedenfor, skal indeholde alle de grundlæggende beholderkomponenter (beholdere), virtuelle maskiner (virtuelle maskiner) og jern. På samme måde skal den virtuelle maskine-komponent indeholde hardware indeni for at fungere.

GCP: Parsing af Google Cloud Platform Compute Stack

Figur 1: Beregn stak | Billede hentet fra Google Cloud

Denne model, vist i figur 1, er grundlaget for beskrivelse af tilbud fra cloud-udbydere. Nogle udbydere kan således kun levere eksempelvis containere og services af lavere kvalitet langs stablen, mens andre kan levere alt, hvad der er vist i figur 1.

— Hvis du er bekendt med cloud-tjenester, skal du gå til afsnit 3for at se GCP-ækvivalenten
— Hvis du kun ønsker en oversigt over cloud-tjenester, skal du gå til afsnit 2.4

2. Cloud-tjenester

Cloud computing-verdenen er meget forskelligartet. Cloud-udbydere tilbyder en række tjenester, der er skræddersyet til forskellige kundekrav. Du har måske hørt om udtryk som IaaS, PaaS, SaaS, FaaS, KaaS osv. med alle bogstaverne i alfabetet efterfulgt af "aaS". På trods af den mærkelige navnekonvention udgør de et sæt af cloud-udbydertjenester. Jeg oplyser, at der er 3 primære "as a service"-tilbud, som cloud-udbydere næsten altid leverer.

Det er IaaS, PaaS og SaaS, som henholdsvis står for Infrastructure as a Service, Platform as a Service og Software as a Service. Det er vigtigt at visualisere cloud-tjenester som lag af tjenester, der leveres. Det betyder, at når du bevæger dig op eller ned fra niveau til niveau, gennemløbes du som kunde af forskellige servicemuligheder, der enten lægges til eller trækkes fra kernetilbuddet. Det er bedst at tænke på det som en pyramide, som vist i figur 2.
GCP: Parsing af Google Cloud Platform Compute Stack

Figur 2: aaS-pyramide | Billede hentet fra Ruby garage

2.1 Infrastructure as a Service (IaaS)

Dette er det laveste niveau, en cloud-udbyder kan tilbyde, og involverer cloud-udbyderen, der leverer den rene metal-infrastruktur, inklusive middleware, netværkskabler, CPU'er, GPU'er, RAM, ekstern lagring, servere og underliggende operativsystembilleder, f.eks. Debian Linux, CentOS, Windows , etc.

Hvis du bestiller et tilbud fra en cloud IaaS-udbyder, er det dette, du skal forvente at modtage. Det er op til dig, kunden, at samle disse stykker for at drive din virksomhed. Omfanget af det, du skal arbejde med, kan variere fra leverandør til leverandør, men generelt får du bare hardwaren og OS, og resten er op til dig. Eksempler på IaaS er AWS Elastic Compute, Microsoft Azure og GCE.

Nogle mennesker kan måske ikke lide det faktum, at de skal installere OS-billeder og håndtere netværk, belastningsbalancering eller bekymre sig om, hvilken type processor der er ideel til deres arbejdsbyrde. Det er her, vi bevæger os op ad pyramiden mod PaaS.

2.2 Platform som en tjeneste (PaaS)

PaaS involverer kun en cloud-tjenesteudbyder, der tilbyder en specifik platform, som brugerne kan bygge applikationer på. Dette er en abstraktion over IaaS, hvilket betyder, at cloud-udbyderen tager sig af alle detaljer om CPU-typer, hukommelse, RAM, storage, netværk osv. Som det fremgår af figur 2, har du som kunde kun lidt kontrol over selve platformen pga. skyen håndterer udbyderen alle infrastrukturdetaljerne for dig. Du anmoder om den valgte platform og bygger projektet på den. Eksempler på PaaS er Heroku.

Dette kan være for højt et niveau for nogle, da de ikke nødvendigvis ønsker at bygge projektet på en specificeret platform, men derimod har brug for et sæt tjenester direkte fra cloud-udbyderen. Det er her SaaS kommer ind i billedet.

2.3 Software som en tjeneste (SaaS)

SaaS repræsenterer de mest almindelige tjenester leveret af cloud-tjenesteudbydere. De henvender sig til slutbrugere og er primært tilgængelige via hjemmesider som Gmail, Google Docs, Dropbox osv. Hvad angår Google Cloud, er der flere tilbud uden for deres computerstack, som er SaaS. Disse omfatter Data Studio, Big Query osv.

2.4 Oversigt over skytjenester

bestanddele af
IaaS
PaaS
SaaS

Hvad får du
Du får infrastrukturen og betaler derefter. Frihed til at bruge eller installere enhver software, OS eller sammensætning deraf.
Her får du hvad du beder om. Software, hardware, OS, webmiljø. Du får en klar til brug platform og betaler derefter.
Her behøver du ikke bekymre dig om noget. Du får en forudinstalleret pakke tilpasset til dine krav, og alt du skal gøre er at betale i overensstemmelse hermed.

Value
Grundlæggende databehandling
Top IaaS
Dette er i det væsentlige en komplet pakke af tjenester

Tekniske vanskeligheder
Teknisk viden påkrævet
Du får den grundlæggende konfiguration, men du har stadig brug for domænekendskab.
Ingen grund til at bekymre sig om tekniske detaljer. SaaS-udbyderen leverer alt.

Hvad virker det med?
Virtuelle maskiner, storage, servere, netværk, load balancers mv.
Runtime-miljøer (som java runtime), databaser (som mySQL, Oracle), webservere (som tomcat osv.)
Applikationer som e-mail-tjenester (Gmail, Yahoo mail osv.), sociale interaktionssider (Facebook osv.)

Popularitetsgraf
Populær blandt højt kvalificerede udviklere, forskere, der kræver tilpasning i henhold til deres krav eller forskningsområde
Mest populær blandt udviklere, da de kan fokusere på at udvikle deres applikationer eller scripts. De behøver ikke at bekymre sig om trafikbelastning eller serverstyring osv.
Mest populær blandt almindelige forbrugere eller virksomheder, der bruger software som e-mail, fildeling, sociale netværk, da de ikke behøver at bekymre sig om tekniske detaljer

Figur 3: Oversigt over større cloud-tilbud | Medfølgende billede Amir hos Blog Specia

3. Google Cloud Platform Computing Suite

Efter at have set på typiske cloud-udbydertilbud i afsnit 2, kan vi sammenligne dem med Google Clouds tilbud.

3.1 Google Compute Engine (GCE) - IaaS

GCP: Parsing af Google Cloud Platform Compute Stack

Figur 4: Google Compute Engine (GCE) ikon

GCE er et IaaS-tilbud fra Google. Med GCE kan du frit oprette virtuelle maskiner, allokere CPU- og hukommelsesressourcer, vælge lagertype såsom SSD eller HDD og mængden af ​​hukommelse. Det er næsten, som om du har bygget din egen computer/arbejdsstation og håndteret alle detaljerne om, hvordan det fungerer.

I GCE kan du vælge mellem mikro-instanser med 0,3-core-processorer og 1 GB RAM til 96-core-monstre med over 300 GB RAM. Du kan også oprette brugerdefinerede virtuelle maskiner til dine arbejdsbelastninger. For de interesserede er det virtuelle maskiner, som du kan bygge.

Maskintyper | Compute Engine Dokumentation | Google Cloud

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

GCP: Parsing af Google Cloud Platform Compute Stack

Figur 5: Google Kubernetes Engine (GKE) ikon

GKE er et unikt computertilbud fra GCP, der er en abstraktion oven på Compute Engine. Mere generelt kan GKE kategoriseres som Container as a Service (CaaS), nogle gange omtalt som Kubernetes as a Service (KaaS), hvilket giver kunderne mulighed for nemt at køre deres Docker-containere i et fuldt administreret Kubernetes-miljø. For dem, der ikke er fortrolige med containere, hjælper containere med at modularisere tjenester/applikationer, så forskellige containere kan indeholde forskellige tjenester, for eksempel kan en container være vært for frontenden af ​​din webapplikation, og en anden kan indeholde bagenden af ​​den. Kubernetes automatiserer, orkestrerer, administrerer og implementerer dine containere. Mere information her.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) - (PaaS)

GCP: Parsing af Google Cloud Platform Compute Stack

Figur 6: Google App Engine (GAE)-ikon

Som nævnt i afsnit 2.2 ligger PaaS over IaaS, og i tilfælde af GCP kan det også betragtes som et tilbud over GKE. GAE er Googles brugerdefinerede PaaS, og måden de bedst beskriver sig selv på er "medbring din kode, og vi tager os af resten."

Dette sikrer, at kunder, der bruger GAE, ikke skal forholde sig til underliggende hardware/middleware og allerede kan have en forudkonfigureret platform klar til brug; alt, de skal gøre, er at give den nødvendige kode for at køre den.

GAE håndterer automatisk skalering for at imødekomme belastning og efterspørgsel fra brugere, hvilket betyder, at hvis din hjemmeside for blomstersalg pludselig topper, fordi Valentinsdag nærmer sig, vil GAE håndtere skalering af den underliggende infrastruktur for at imødekomme efterspørgslen og sikre, at din hjemmeside ikke går ned på grund af øget efterspørgsel . Det betyder, at du betaler for præcis de ressourcer, som din ansøgning kræver på det tidspunkt.

GAE bruger Kubernetes eller dens oprindelige version til at håndtere alt dette, så du ikke behøver at bekymre dig om det. GAE er bedst egnet til virksomheder, der ikke er interesserede i den underliggende infrastruktur og kun bekymrer sig om at sikre, at deres applikation er tilgængelig på den bedst mulige måde.

Efter min mening er GAE det bedste sted at starte, hvis du er en udvikler med en god ide, men ikke ønsker at beskæftige dig med det trætte med at opsætte servere, belastningsbalancering og alt det andet tidskrævende devops/SRE-arbejde . Med tiden kunne du prøve GKE og GCE, men det er bare min mening.

Ansvarsfraskrivelse: AppEngine bruges til webapplikationer, ikke mobilapplikationer.

Til orientering: App Engine - Byg skalerbare web- og mobile backends på ethvert sprog | Google Cloud

3.4 Google Cloud-funktioner - (FaaS)

GCP: Parsing af Google Cloud Platform Compute Stack

Figur 7: Ikon for Google Cloud Functions (GCF).

Forhåbentlig har du bemærket en tendens ved at se på de tidligere tilbud. Jo højere du klatrer op på GCP-computerløsningsstigen, jo mindre behøver du at bekymre dig om den underliggende teknologi. Denne pyramide ender med den mindst mulige beregningsenhed, en funktion, som vist i afsnit 1.

GCF er et relativt nyt GCP-tilbud, der stadig er i beta (i skrivende stund). Cloud-funktioner gør det muligt for visse funktioner, der er skrevet af udvikleren, at blive udløst af en hændelse.

De er begivenhedsdrevne og er kernen i buzzwordet "serverløse", hvilket betyder, at de ikke kender servere. Cloud-funktioner er meget enkle og har mange forskellige anvendelser, der kræver event-tænkning. For eksempel, hver gang en ny bruger registrerer sig, kan en cloud-funktion udløses for at advare udviklere.

På en fabrik, når en bestemt sensor når en bestemt værdi, kan den udløse en cloud-funktion, der udfører noget informationsbehandling eller underretter noget vedligeholdelsespersonale osv.

Cloud Functions - Event-Driven Server Computing | Google Cloud

Konklusion

I denne artikel talte vi om de forskellige cloud-tilbud som IaaS, PaaS osv. og hvordan Googles computerstack implementerer disse forskellige lag. Vi har set, at abstraktionslag, når man flytter fra en tjenestekategori til en anden, såsom IaaS i Paas, kræver mindre viden om det underliggende.

For en virksomhed giver dette kritisk fleksibilitet, der ikke kun opfylder dens operationelle mål, men også opfylder andre nøgleområder såsom sikkerhed og omkostninger. At opsummere:

Compute Engine - giver dig mulighed for at oprette din egen virtuelle maskine ved at allokere visse hardwareressourcer, for eksempel RAM, processor, hukommelse. Det er også ret praktisk og lavt niveau.

Kubernetes motor er et skridt op fra Compute Engine og giver dig mulighed for at bruge Kubernetes og containere til at administrere din applikation, så du kan skalere den op efter behov.

App-motor er et skridt op fra Kubernetes Engine, så du kun kan fokusere på din kode, mens Google tager sig af alle de underliggende platformskrav.

Cloud funktioner er toppen af ​​computerpyramiden, hvilket giver dig mulighed for at skrive en simpel funktion, der, når den køres, bruger hele den underliggende infrastruktur til at beregne og returnere resultatet.

Tak for din opmærksomhed!

Twitter: @martinomburajr

Kilde: www.habr.com

Tilføj en kommentar