GCP: Parsing av Google Cloud Platform Compute Stack

Oversettelsen av artikkelen ble utarbeidet spesielt for studentene på kurset "Skytjenester".

Interessert i å utvikle seg i denne retningen? Se innspillingen av en profesjonell mesterklasse "AWS EC2-tjeneste", som ble utført av Egor Zuev - TeamLead ved InBit og forfatteren av utdanningsprogrammet ved OTUS.

GCP: Parsing av Google Cloud Platform Compute Stack

Google Cloud Platform (GCP) tilbyr mange tjenester, og spesielt databunken som inneholder Google Compute Engine (GCE), Google Kubernetes Engine (tidligere Container Engine) (GKE), Google App Engine (GAE) og Google Cloud Functions (GCF ) . Alle disse tjenestene har kule navn, men er kanskje ikke helt åpenbare om funksjonene deres og hva som gjør dem unike for hverandre. Denne artikkelen er ment for de som er nye innen skykonsepter, spesielt skytjenester og GCP.

GCP: Parsing av Google Cloud Platform Compute Stack

1. Beregn stabel

En datastabel kan betraktes som en lagdelt abstraksjon over hva et datasystem kan gi. Denne stabelen stiger (beveger seg opp) fra "bart jern" (rent metall), med henvisning til de faktiske maskinvarekomponentene til datamaskinen, ned til funksjonene (funksjoner), som representerer den minste beregningsenheten. Det som er viktig å merke seg om stabelen er at tjenester blir aggregert når du beveger deg oppover i stabelen, for eksempel "applikasjoner"-delen (apps), vist i figur 1 nedenfor, skal inneholde alle de grunnleggende beholderkomponentene (containere), virtuelle maskiner (virtuelle maskiner) og jern. På samme måte må den virtuelle maskinens komponent inneholde maskinvare inni for å fungere.

GCP: Parsing av Google Cloud Platform Compute Stack

Figur 1: Beregn stabel | Bilde hentet fra Google Cloud

Denne modellen, vist i figur 1, er grunnlaget for å beskrive tilbud fra skyleverandører. Dermed kan noen tilbydere bare levere for eksempel containere og tjenester med lavere kvalitet langs stabelen, mens andre kan levere alt som er vist i figur 1.

— Hvis du er kjent med skytjenester, gå til seksjon 3for å se GCP-ekvivalenten
— Hvis du kun vil ha et sammendrag av skytjenester, gå til seksjon 2.4

2. Skytjenester

Cloud computing-verdenen er veldig mangfoldig. Skyleverandører tilbyr en rekke tjenester skreddersydd til ulike kundekrav. Du har kanskje hørt om begreper som IaaS, PaaS, SaaS, FaaS, KaaS, etc. med alle bokstavene i alfabetet etterfulgt av "aaS". Til tross for den merkelige navnekonvensjonen, utgjør de et sett med skyleverandørtjenester. Jeg opplyser at det er 3 hovedtilbud "som en tjeneste" som skyleverandører nesten alltid tilbyr.

Dette 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 viktig å visualisere skytjenester som lag av tjenester som tilbys. Dette betyr at når du beveger deg opp eller ned fra nivå til nivå, krysses du som kunde av ulike tjenestealternativer som enten legges til eller trekkes fra kjernetilbudet. Det er best å tenke på det som en pyramide, som vist i figur 2.
GCP: Parsing av Google Cloud Platform Compute Stack

Figur 2: aaS-pyramide | Bilde hentet fra Ruby garasje

2.1 Infrastruktur som en tjeneste (IaaS)

Dette er det laveste nivået en skyleverandør kan tilby og involverer skyleverandøren som leverer infrastrukturen for bare metall, inkludert mellomvare, nettverkskabler, CPUer, GPUer, RAM, ekstern lagring, servere og underliggende operativsystembilder, f.eks. Debian Linux, CentOS, Windows , etc.

Hvis du bestiller et tilbud fra en sky IaaS-leverandør, er dette hva du bør forvente å motta. Det er opp til deg, kunden, å sette sammen disse delene for å drive virksomheten din. Omfanget av det du må jobbe med kan variere fra leverandør til leverandør, men generelt får du bare maskinvaren og operativsystemet, og resten er opp til deg. Eksempler på IaaS er AWS Elastic Compute, Microsoft Azure og GCE.

Noen mennesker liker kanskje ikke det faktum at de må installere OS-bilder og håndtere nettverk, belastningsbalansering eller bekymre seg for hvilken type prosessor som er ideell for arbeidsmengden deres. Det er her vi beveger oss oppover pyramiden mot PaaS.

2.2 Plattform som en tjeneste (PaaS)

PaaS involverer kun en skytjenesteleverandør som tilbyr en spesifikk plattform som brukere kan bygge applikasjoner på. Dette er en abstraksjon over IaaS, det vil si at skyleverandøren tar seg av alle detaljer om CPU-typer, minne, RAM, lagring, nettverk osv. Som vist i figur 2 har du som kunde liten kontroll over selve plattformen pga. skyen håndterer leverandøren alle infrastrukturdetaljene for deg. Du ber om den valgte plattformen og bygger prosjektet på den. Eksempler på PaaS er Heroku.

Dette kan være et for høyt nivå for noen, da de ikke nødvendigvis ønsker å bygge prosjektet på en spesifisert plattform, men heller trenger et sett med tjenester direkte fra skyleverandøren. Det er her SaaS kommer inn i bildet.

2.3 Programvare som en tjeneste (SaaS)

SaaS representerer de vanligste tjenestene som tilbys av skytjenesteleverandører. De er rettet mot sluttbrukere og er først og fremst tilgjengelige gjennom nettsteder som Gmail, Google Docs, Dropbox osv. Når det gjelder Google Cloud, er det flere tilbud utenfor deres datastabel som er SaaS. Disse inkluderer Data Studio, Big Query, etc.

2.4 Sammendrag av skytjenester

bestanddeler av
IaaS
PaaS
SaaS

Hva får du
Du får infrastrukturen og betaler deretter. Frihet til å bruke eller installere programvare, operativsystem eller sammensetning derav.
Her får du det du ber om. Programvare, maskinvare, OS, webmiljø. Du får en klar til bruk plattform og betaler deretter.
Her trenger du ikke bekymre deg for noe. Du får en forhåndsinstallert pakke tilpasset dine behov, og alt du trenger å gjøre er å betale deretter.

Verdi
Grunnleggende databehandling
Topp IaaS
Dette er i hovedsak en komplett pakke med tjenester

Tekniske problemer
Teknisk kunnskap kreves
Du får den grunnleggende konfigurasjonen, men du trenger fortsatt domenekunnskap.
Du trenger ikke å bry deg med tekniske detaljer. SaaS-leverandøren leverer alt.

Hva fungerer det med?
Virtuelle maskiner, lagring, servere, nettverk, lastbalansere, etc.
Runtime-miljøer (som java runtime), databaser (som mySQL, Oracle), webservere (som tomcat, etc.)
Applikasjoner som e-posttjenester (Gmail, Yahoo mail, etc.), sosiale interaksjonssider (Facebook, etc.)

Popularitetsgraf
Populær blant svært dyktige utviklere, forskere som krever tilpasning i henhold til deres krav eller forskningsområde
Mest populær blant utviklere ettersom de kan fokusere på å utvikle applikasjonene eller skriptene sine. De trenger ikke å bekymre seg for trafikkbelastning eller serveradministrasjon osv.
Mest populær blant vanlige forbrukere eller selskaper som bruker programvare som e-post, fildeling, sosiale nettverk, da de ikke trenger å bekymre seg for tekniske detaljer

Figur 3: Sammendrag av store skytilbud | Bilde levert Amir på Blog Specia

3. Google Cloud Platform Computing Suite

Etter å ha sett på typiske skyleverandørtilbud i del 2, kan vi sammenligne dem med tilbudene til Google Cloud.

3.1 Google Compute Engine (GCE) – IaaS

GCP: Parsing av Google Cloud Platform Compute Stack

Figur 4: Google Compute Engine (GCE)-ikon

GCE er et IaaS-tilbud fra Google. Med GCE kan du fritt lage virtuelle maskiner, allokere CPU- og minneressurser, velge lagringstype som SSD eller HDD, og ​​mengden minne. Det er nesten som om du har bygget din egen datamaskin/arbeidsstasjon og håndtert alle detaljene om hvordan det fungerer.

I GCE kan du velge mellom mikroinstanser med 0,3-kjerneprosessorer og 1 GB RAM til 96-kjernemonstre med over 300 GB RAM. Du kan også lage virtuelle maskiner i egendefinerte størrelser for arbeidsbelastningene dine. For de som er interessert, er dette virtuelle maskiner som du kan bygge.

Maskintyper | Compute Engine Documentation | Google Cloud

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

GCP: Parsing av Google Cloud Platform Compute Stack

Figur 5: Google Kubernetes Engine (GKE)-ikon

GKE er et unikt databehandlingstilbud fra GCP som er en abstraksjon på toppen av Compute Engine. Mer generelt kan GKE kategoriseres som Container as a Service (CaaS), noen ganger referert til som Kubernetes as a Service (KaaS), som lar kunder enkelt kjøre Docker-beholderne sine i et fullt administrert Kubernetes-miljø. For de som ikke er kjent med containere, hjelper containere med å modularisere tjenester/applikasjoner, slik at forskjellige containere kan inneholde forskjellige tjenester, for eksempel kan en container være vert for frontenden av nettapplikasjonen din og en annen kan inneholde bakenden av den. Kubernetes automatiserer, orkestrerer, administrerer og distribuerer containerne dine. Mer informasjon her.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) - (PaaS)

GCP: Parsing av Google Cloud Platform Compute Stack

Figur 6: Google App Engine (GAE)-ikon

Som nevnt i avsnitt 2.2, ligger PaaS over IaaS, og når det gjelder GCP, kan det også betraktes som et tilbud over GKE. GAE er Googles tilpassede PaaS, og måten de best beskriver seg selv på er «ta med koden din, så tar vi oss av resten».

Dette sikrer at kunder som bruker GAE ikke trenger å forholde seg til underliggende maskinvare/mellomvare, og kan allerede ha en forhåndskonfigurert plattform klar til bruk; alt de trenger å gjøre er å oppgi koden som trengs for å kjøre den.

GAE håndterer automatisk skalering for å møte belastning og etterspørsel fra brukere, noe som betyr at hvis nettstedet ditt for blomstersalg plutselig topper seg fordi Valentinsdagen nærmer seg, vil GAE håndtere skalering av den underliggende infrastrukturen for å møte etterspørselen og sikre at nettstedet ditt ikke krasjer på grunn av økt etterspørsel . Dette betyr at du betaler for akkurat de ressursene som søknaden din krever i det øyeblikket.

GAE bruker Kubernetes eller dens opprinnelige versjon for å håndtere alt dette, slik at du ikke trenger å bekymre deg for det. GAE er best egnet for selskaper som ikke er interessert i den underliggende infrastrukturen og bare bryr seg om å sørge for at applikasjonen deres er tilgjengelig på best mulig måte.

Etter min mening er GAE det beste stedet å starte hvis du er en utvikler med en god idé, men ikke ønsker å håndtere sliten med å sette opp servere, belastningsbalansering og alt det andre tidkrevende devops/SRE-arbeidet. . Over tid kan du prøve GKE og GCE, men det er bare min mening.

Ansvarsfraskrivelse: AppEngine brukes til webapplikasjoner, ikke mobilapplikasjoner.

Til informasjon: App Engine - Bygg skalerbare nett- og mobile backends på alle språk | Google Cloud

3.4 Google Cloud-funksjoner - (FaaS)

GCP: Parsing av Google Cloud Platform Compute Stack

Figur 7: Google Cloud Functions (GCF)-ikon

Forhåpentligvis har du lagt merke til en trend ved å se på de tidligere tilbudene. Jo høyere du klatrer opp GCP-databehandlingsstigen, desto mindre trenger du å bekymre deg for den underliggende teknologien. Denne pyramiden ender med den minste mulige beregningsenheten, en funksjon, som vist i seksjon 1.

GCF er et relativt nytt GCP-tilbud som fortsatt er i betaversjon (når dette skrives). Skyfunksjoner lar visse funksjoner skrevet av utvikleren utløses av en hendelse.

De er hendelsesdrevne og er kjernen i buzzwordet "serverløse", noe som betyr at de ikke kjenner servere. Skyfunksjoner er veldig enkle og har mange forskjellige bruksområder som krever hendelsestenkning. For eksempel, hver gang en ny bruker registrerer seg, kan en skyfunksjon utløses for å varsle utviklere.

På en fabrikk, når en bestemt sensor når en viss verdi, kan den utløse en skyfunksjon som utfører informasjonsbehandling, eller varsler noe vedlikeholdspersonell osv.

Skyfunksjoner - hendelsesdrevet serverdatabehandling | Google Cloud

Konklusjon

I denne artikkelen snakket vi om de forskjellige skytilbudene som IaaS, PaaS, etc. og hvordan Googles datastabel implementerer disse forskjellige lagene. Vi har sett at abstraksjonslag ved flytting fra en tjenestekategori til en annen, slik som IaaS i Paas, krever mindre kunnskap om det underliggende.

For en virksomhet gir dette kritisk fleksibilitet som ikke bare oppfyller de operasjonelle målene, men også møter andre nøkkelområder som sikkerhet og kostnader. Å oppsummere:

Beregn Engine - lar deg lage din egen virtuelle maskin ved å tildele visse maskinvareressurser, for eksempel RAM, prosessor, minne. Det er også ganske praktisk og lavt nivå.

Kubernetes motor er et steg opp fra Compute Engine og lar deg bruke Kubernetes og containere til å administrere applikasjonen din, slik at du kan skalere den opp etter behov.

App-motor er et steg opp fra Kubernetes Engine, som lar deg fokusere kun på koden din mens Google tar seg av alle de underliggende plattformkravene.

Skyfunksjoner er toppen av datapyramiden, slik at du kan skrive en enkel funksjon som, når den kjøres, bruker hele den underliggende infrastrukturen til å beregne og returnere resultatet.

Takk for din oppmerksomhet!

Twitter: @martinomburajr

Kilde: www.habr.com

Legg til en kommentar