GCP: Analyse af det beregningsmæssige stack i Google Cloud Platform

Oversættelsen er specielt udarbejdet til studerende på kurset «Cloud Services».

Er du interesseret i at udvikle dig inden for dette område? Se optagelsen af det professionelle masterclass. «AWS EC2 service», som blev afholdt af Egor Zuev — TeamLead i InBit og forfatter til det uddannelsesprogram i OTUS.

GCP: Analyse af det beregningsmæssige stack i Google Cloud Platform

Google Cloud Platform (GCP) tilbyder mange tjenester, herunder det beregningsmæssige stack, 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 seje navne, men kan være lidt svære at forstå i forhold til deres funktioner og hvad der gør dem unikke i forhold til hinanden. Denne artikel er for dem, der lige er begyndt at lære om cloud-koncepter, specielt cloud-tjenester og GCP.

GCP: Analyse af det beregningsmæssige stack i Google Cloud Platform

1. Beregningsmæssigt stack

Det beregningsmæssige stack kan ses som et flerniveau-abstraktion over hvad et computersystem kan tilbyde. Denne stack bevæger sig op (moves up) fra 'bare metal' (bare metal), som refererer til de faktiske hardwarekomponenter i computeren, op til de funktioner (functions), som repræsenterer den mindste enhed af beregning. En vigtig bemærkning vedrørende stacken er, at tjenester aggregeres, når man bevæger sig op ad stacken; f.eks. bør sektionen 'applikationer' (apps), vist i figur 1 nedenfor, indeholde alle de basale komponenter af containere (containers), virtuelle maskiner (virtual machines) og hardware. På samme måde skal komponenten med virtuelle maskiner indeholde hardware indenfor for at fungere.

GCP: Analyse af det beregningsmæssige stack i Google Cloud Platform

Figur 1: Beregningsmæssigt stack | Billede hentet fra Google Cloud

Denne model, vist i figur 1, danner grundlaget for at beskrive tilbuddene fra cloud-udbydere. Nogle udbydere kan derfor kun tilbyde f.eks. containere og tjenester af lavere kvalitet i stacken, mens andre kan tilbyde alt, hvad der vises i figur 1.

— Hvis du er bekendt med cloud-tjenester, gå til afsnit 3, for at lære om ækvivalenterne til GCP
— Hvis du kun har brug for et overblik over cloud-tjenester, gå til afsnit 2.4

2. Cloud-tjenester

Verden af cloud computing er meget mangfoldig. Cloud-udbydere tilbyder mange tjenester, der er tilpasset forskellige kundebehov. Du har måske hørt om termer som IaaS, PaaS, SaaS, FaaS, KaaS osv., med alle bogstaverne i alfabetet, efterfulgt af "aaS". På trods af den mærkelige navngivningskonvention udgør de et sæt af tjenester fra cloud-udbydere. Jeg bemærker, at der er 3 grundlæggende "as a Service" tilbud, som cloud-udbydere næsten altid leverer.

Disse er IaaS, PaaS og SaaS, som henholdsvis står for Infrastruktur som en tjeneste (Infrastructure as a Service), Platform som en tjeneste (Platform as a Service) og Software som en tjeneste (Software as a Service). Det er vigtigt at visualisere cloud-tjenester som niveauer af leverede tjenester. Dette betyder, at når du bevæger dig op eller ned ad niveauerne, krydser du, som kunde, forskellige servicevarianter, der enten tilføjes eller fjernes fra det primære tilbud. Den bedste måde at se det på er som en pyramide, som vist i figur 2.
GCP: Analyse af det beregningsmæssige stack i Google Cloud Platform

Figur 2: Pyramide "aaS" | Billedet er hentet fra Ruby Garage

2.1 Infrastruktur som en tjeneste (IaaS)

Dette er det laveste niveau, som en cloud-udbyder kan tilbyde, og det inkluderer en cloud computing-udbyder, der leverer "bar" infrastruktur, herunder middleware, netværkskabler, processorer, grafikprocessorer, RAM, ekstern lagring, servere og billeder af grundlæggende operativsystemer såsom Debian Linux, CentOS, Windows osv.

Hvis du bestiller et IaaS-tilbud fra en cloud-udbyder, er dette, hvad du kan forvente at modtage. Det er op til dig som kunde at samle disse dele til din virksomhed. Graden af, hvad du skal arbejde med, kan variere fra udbyder til udbyder, men generelt får du bare hardware og OS, og resten ligger på dig. Eksempler på IaaS inkluderer AWS Elastic Compute, Microsoft Azure og GCE.

Nogle mennesker kan være utilfredse med, 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. Her bevæger vi os op ad pyramiden til PaaS.

2.2 Platform as a Service (PaaS)

PaaS omfatter kun en cloud serviceudbyder, der tilbyder en bestemt platform, hvor brugerne kan udvikle applikationer. Det er en abstraktion over IaaS, hvilket betyder, at cloududbyderen tager sig af alle detaljerne omkring CPU-typer, hukommelse, RAM, opbevaring, netværk osv. Som vist i figur 2 har du som kunde kun begrænset kontrol over den faktiske platform, da cloududbyderen håndterer alle detaljer om infrastrukturen for dig. Du anmoder om den valgte platform og bygger dit projekt på den. Eksempler på PaaS er Heroku.

For nogle kan dette være et for højt niveau, da de ikke nødvendigvis ønsker at bygge et projekt på den specificerede platform, men snarere har brug for et sæt tjenester direkte fra cloud serviceudbyderen. Her kommer SaaS ind i billedet.

2.3 Software as a Service (SaaS)

SaaS repræsenterer de mest almindelige tjenester, der tilbydes af cloud serviceudbydere. De er designet til slutbrugere og er primært tilgængelige via websteder, som Gmail, Google Docs, Dropbox osv. Hvad angår Google Cloud, er der flere tilbud uden for deres regneklynge, som er SaaS. Disse inkluderer Data Studio, Big Query osv.

2.4 Sammenfatning af cloudtjenester

Komponenter
IaaS
PaaS
SaaS

Hvad du får
Du får infrastrukturen og betaler derefter. Frihed til at bruge eller installere enhver software, operativsystem eller deres sammensætning.
Her får du det, du anmoder om. Software, hardware, operativsystem, webmiljø. Du får en klar til brug platform og betaler derefter.
Her skal du ikke bekymre dig om noget. Du får en forudinstalleret pakke, der er tilpasset dine krav, og det eneste du skal gøre er at betale derefter.

Værdi
Basisniveauet for beregninger
Toppen af IaaS
Dette er i bund og grund en fuld servicepakke

Tekniske komplikationer
Tekniske færdigheder er nødvendige
Du får en grundlæggende konfiguration, men domæneviden er stadig nødvendig.
Du behøver ikke at bekymre dig om tekniske detaljer. SaaS-udbyderen leverer alt.

Hvad det arbejder med
Virtuelle maskiner, opbevaring, servere, netværk, belastningsbalancere osv.
Kørselmiljøer (som Java runtime), databaser (som MySQL, Oracle), webservere (som Tomcat mv.)
Applikationer som e-mailtjenester (Gmail, Yahoo mail osv.), sociale mediesider (Facebook osv.)

Popularitetsgraf
Populært blandt højt kvalificerede udviklere, forskere, der har brug for tilpasning i forhold til deres krav eller forskningsområde
Mest populært blandt udviklere, da de kan fokusere på at udvikle deres applikationer eller scripts. De skal ikke bekymre sig om trafikbelastning eller serveradministration osv.
Mest populært blandt almindelige forbrugere eller virksomheder, der bruger software som e-mail, fildeling, sociale medier, da de ikke skal bekymre sig om tekniske detaljer

Figur 3: Oversigt over de vigtigste cloud-tilbud | Billedet er leveret af Amir hos Blog Specia

3. Google Cloud Platform computing pakket

Efter at have set på typiske tilbud fra cloud-udbydere i afsnit 2, kan vi sammenligne dem med Googles tilbud.

3.1 Google Compute Engine (GCE) — IaaS

GCP: Analyse af det beregningsmæssige stack i Google Cloud Platform

Figur 4: Google Compute Engine (GCE) ikon

GCE er et IaaS-tilbud fra Google. Med GCE kan du frit oprette virtuelle maskiner, fordele CPU- og hukommelsesressourcer, vælge lagertypen, f.eks. SSD eller HDD, samt størrelsen på hukommelsen. Det er næsten som at bygge din egen computer/arbejdsstation og tage dig af alle detaljerne i dens drift.

I GCE kan du vælge fra mikroinstanser med 0,3-kerneprocessorer og 1 GB RAM til 96-core monstre med mere end 300 GB RAM. Du kan også oprette virtuelle maskiner i brugerdefinerede størrelser til dine arbejdsbelastninger. For dem, der er interesserede, er disse virtuelle maskiner, som du kan bygge.

Maskintyper | Compute Engine dokumentation | Google Cloud

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

GCP: Analyse af det beregningsmæssige stack i Google Cloud Platform

Figur 5: Google Kubernetes Engine (GKE) ikon

GKE er en unik beregningsløsning fra GCP, som er en abstraktion over Compute Engine. Mere generelt kan GKE betragtes som en kategori af "Container som en service" (CaaS), nogle gange kaldet "Kubernetes som en service" (KaaS), der gør det muligt for kunderne nemt at køre deres Docker-containere i et fuldt administreret Kubernetes-miljø. For dem, der ikke er bekendt med containere, hjælper containere med modulært at sammensætte tjenester/applikationer, så forskellige containere kan indeholde forskellige tjenester; for eksempel kan en container rumme grænsefladen til din webapplikation, mens en anden kan indeholde dens backend. Kubernetes håndterer automatiseringen, koordineringen, styringen og implementeringen af dine containere. Mere information her.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) — (PaaS)

GCP: Analyse af det beregningsmæssige stack i Google Cloud Platform

Figur 6: Ikon for Google App Engine (GAE)

Som nævnt i afsnit 2.2 er PaaS over IaaS, og i tilfælde af GCP kan det også betragtes som et tilbud over GKE. GAE er en specialiseret Google PaaS, og som de selv bedst beskriver sig - "før din kode, og vi tager os af alt det andet".

Dette sikrer, at kunder, der bruger GAE, ikke skal beskæftige sig med det underliggende hardware/mellemsoftware, men allerede kan have en forudkonfigureret platform klar til brug; alt hvad de skal gøre er at levere den kode, der er nødvendig for at køre den.

GAE håndterer automatisk skalering for at imødekomme belastningen og efterspørgslen fra brugerne, hvilket betyder, at hvis din blomsterbutik pludselig når et højdepunkt, fordi Valentinsdag nærmer sig, vil GAE håndtere skaleringen af den grundlæggende infrastruktur for at imødekomme efterspørgslen og sikre, at dit websted ikke går ned på grund af den stigende efterspørgsel. Det betyder, at du kun betaler for de ressourcer, dit program har brug for på det tidspunkt.

GAE bruger Kubernetes eller sin indbyggede 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 interesseret i den grundlæggende infrastruktur og kun ønsker, at deres applikation skal være tilgængelig på den bedste måde.

Efter min mening er GAE det bedste sted at starte, hvis du er en udvikler med en fantastisk idé, men ikke vil beskæftige dig med den rutinemæssige opgave at opsætte servere, balancere belastningen og alt andet arbejdskrævende devops/SRE arbejde. Over tid kunne du prøve GKE og GCE, men det er kun min mening.

Fraskrivelse: AppEngine bruges til webapplikationer, ikke mobilapplikationer.

Til orientering: App Engine – Skab skalerbare web- og mobilbackends i ethvert sprog | Google Cloud

3.4 Google Cloud Functions – (FaaS)

GCP: Analyse af det beregningsmæssige stack i Google Cloud Platform

Figur 7: Google Cloud Functions (GCF) ikon

Jeg håber, du har bemærket en tendens, når du har analyseret de tidligere forslag. Jo højere du kommer op ad stigen af GCP-løsninger, desto mindre behøver du at bekymre dig om de grundlæggende teknologier. Denne pyramide afsluttes med den mindste mulige enhed af beregning, en funktion, som vist i afsnit 1.

GCF er et relativt nyt GCP-tilbud, som stadig er i beta-test (på tidspunktet for skrivningen af denne artikel). Cloud-funktioner giver mulighed for, at bestemte funktioner skrevet af udviklere kan køres ved en bestemt begivenhed.

De styres af begivenheder og ligger til grund for det moderne ord "serverløs", hvilket betyder, at de ikke kender servere. Cloud-funktioner er meget enkle og har mange forskellige anvendelser, som kræver begivenhedstænkning. For eksempel kan hver gang en ny bruger registrerer sig, en cloud-funktion køres for at advare udviklerne.

I 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-funktioner – begivenhedsstyrede serverberegninger | Google Cloud

Konklusion

I denne artikel har vi talt om forskellige cloud-tilbud, såsom IaaS, PaaS osv., og hvordan Google beregningsstakken implementerer disse forskellige niveauer. Vi har set, at abstraheringsniveauerne, når man bevæger sig fra en serviceniveau til en anden, for eksempel fra IaaS til PaaS, kræver mindre viden om den underliggende teknologi.

For erhvervslivet giver dette kritisk vigtig fleksibilitet, der ikke kun opfylder dens operationelle mål, men også tilgodeser andre nøgleområder som sikkerhed og omkostninger. Opsummerende:

Compute Engine — giver dig mulighed for at oprette din egen virtuelle maskine ved at tildele specifikke hardware ressourcer såsom RAM, processor, hukommelse. Det er også praktisk og lavniveau.

Kubernetes Engine — er et niveau højere end Compute Engine, som lader dig bruge Kubernetes og containere til at styre din applikation, hvilket muliggør skalering efter behov.

App Engine — er et niveau højere end Kubernetes Engine, som lader dig fokusere kun på din kode, mens Google tager sig af alle grundlæggende platformkrav.

Cloud-Functions — er toppen af beregningspyramiden, der giver dig mulighed for at skrive en simpel funktion, der ved udførelse bruger alt grundlæggende infrastruktur til beregning og returnerer resultatet.

Tak for din opmærksomhed!

Twitter: @martinomburajr

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster