GCP: Analyse av Google Cloud Platform sin databehandlingsstack

Oversettelsen av artikkelen er forberedt spesielt for studentene i kurset «Skybaserte tjenester».

Er du interessert i å utvikle deg i denne retningen? Se opptaket av det profesjonelle mesterkurset «AWS EC2 tjeneste», ledet av Egor Zuev — TeamLead i selskapet InBit og forfatter av utdanningsprogrammet ved OTUS.

GCP: Analyse av Google Cloud Platform sin databehandlingsstack

Google Cloud Platform (GCP) tilbyr mange tjenester, spesielt databehandlingsstakken 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 kan være litt uklare med hensyn til deres funksjoner og hva som gjør dem unike i forhold til hverandre. Denne artikkelen er ment for de som først blir kjent med skybaserte konsepter, spesielt med skybaserte tjenester og GCP.

GCP: Analyse av Google Cloud Platform sin databehandlingsstack

1. Databehandlingsstakken

Databehandlingsstakken kan betraktes som et flernivått abstraksjon over hva et datasystem kan tilby. Denne stakken beveger seg (moves up) fra «bare metall» (bare metal), som refererer til de faktiske maskinvarekomponentene i en datamaskin, opp til funksjonene (functions), som representerer den minste enheten av beregning. Det er viktig å merke seg med hensyn til stakken at tjenestene aggregeres når man beveger seg oppover, for eksempel skal seksjonen «applikasjoner» (apps), vist på figur 1 nedenfor, inneholde alle de grunnleggende komponentene av containere (containers), virtuelle maskiner (virtual machines) og hardware. På samme måte skal komponenten av virtuelle maskiner inneholde hardware for å fungere.

GCP: Analyse av Google Cloud Platform sin databehandlingsstack

Figur 1: Databehandlingsstakken | Bilde hentet fra Google Cloud

Denne modellen, vist på figur 1, er grunnlaget for å beskrive tilbud fra skyleverandører. Noen leverandører kan dermed tilby bare, for eksempel, containere og tjenester av lavere kvalitet i stakken, mens andre tilbyr alt som vist på figur 1.

— Hvis du er kjent med skybaserte tjenester, gå til seksjon 3, for å lære om GCPs ekvivalent
— Hvis du bare trenger et sammendrag av skybaserte tjenester, gå til seksjon 2.4

2. Skybaserte tjenester

Verden av skybaserte beregninger er svært variert. Skyleverandører tilbyr en rekke tjenester som er tilpasset forskjellige kundebehov. Du har kanskje hørt om begreper som IaaS, PaaS, SaaS, FaaS, KaaS osv., med alle bokstavene i alfabetet etterfulgt av «aaS». Til tross for det merkelige navnekonvensjonen, danner de en rekke tjenester fra skyleverandørene. Jeg konstaterer at det er 3 hovedtyper av «som en tjeneste» (as a Service) som skyleverandørene nesten alltid tilbyr.

Disse er IaaS, PaaS og SaaS, som henholdsvis står for infrastruktur som en tjeneste (Infrastructure as a Service), plattform som en tjeneste (Platform as a Service) og programvare som en tjeneste (Software as a Service). Det er viktig å visualisere skybaserte tjenester som nivåer av ytelser. Dette innebærer at når du hopper opp eller ned fra nivå til nivå, krysser du som kunde forskjellige servicealternativer som enten legges til eller fjernes fra det grunnleggende tilbudet. Det er best å betrakte dette som en pyramide, som vist i figur 2.
GCP: Analyse av Google Cloud Platform sin databehandlingsstack

Figur 2: Pyramide «aaS» | Bildet hentet fra Ruby Garage

2.1 Infrastruktur som en tjeneste (IaaS)

Dette er det laveste nivået som kan tilbys av en skyleverandør, og det inkluderer en skyleverandør som leverer «bar» infrastruktur, inkludert programvareplattformer, nettverkskabler, prosessorer, grafikkprosessorer, RAM, ekstern lagring, servere og bilder av grunnleggende operativsystemer, som Debian Linux, CentOS, Windows osv.

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

Noen mennesker kan være misfornøyd med at de må installere OS-bilder og håndtere nettverks- og lastbalansering, eller bekymre seg for hvilken type prosessor som er best for arbeidsbelastningen deres. Her beveger vi oss oppover i pyramiden mot PaaS.

2.2 Plattform som ei teneste (PaaS)

PaaS omfattar berre ein leverandør av skytjenester som tilbyr ei bestemt plattform der brukarar kan lage applikasjonar. Dette er ei abstraksjon over IaaS, som betyr at skytilbydaren tar seg av alle detaljar som typar CPU, minne, RAM, lagring, nettverk osv. Som vist i figur 2, har du som kunde liten kontroll over den faktiske plattformen, ettersom skyleverandøren handterer alle detaljer ved infrastrukturen for deg. Du ber om den valgte plattformen og byggjer prosjektet ditt på den. Nokre døme på PaaS er Heroku.

For nokon kan dette vere eit for høgt nivå, sidan dei ikkje nødvendigvis ønskjer å bygge prosjektet på den gitte plattformen, men heller treng ei rekkje tenester direkte frå skytilbydaren. Her kjem SaaS inn i biletet.

2.3 Programvare som ei teneste (SaaS)

SaaS representerer dei mest utbreidde tenestene som blir tilbydd av leverandørar av skytjenester. Dei er retta mot sluttbrukarar og blir hovudsakleg tilgjengelege gjennom nettstader, som Gmail, Google Docs, Dropbox osv. Når det gjeld Google Cloud, er det fleire tilbod utanfor deres berekningsstabel som er SaaS. Desse inkluderer Data Studio, Big Query osv.

2.4 Oppsummering av skytjenester

Komponentar
IaaS
PaaS
SaaS

Kva får du
Du får infrastrukturen og betalar deretter. Friheten til å bruke eller installere kva som helst programvare, operativsystem eller deira kombinasjon.
Her får du det du ber om. Programvare, maskinvare, operativsystem, webmiljø. Du får ei klarert plattform og betalar deretter.
Her treng du ikkje å bekymre deg for noko. Du får ei ferdig installert pakke innstilt etter krava dine, og du må berre betale deretter.

Verdi
Grunnleggjande berekningar
Toppen av IaaS
Dette er i hovudsak eit komplett tenestepakke

Tekniske kompleksitetar
Tekniske kunnskapar er påkravd
Du får ei grunnleggjande konfigurasjon, men har framleis behov for spesialkunnskap.
Du treng ikkje tenke på tekniske detaljar. SaaS-leverandøren leverer alt.

Kva det fungerer med
Virtuelle maskiner, lagring, serverar, nettverk, lastbalansar osv.
Kjøremiljøer (som java runtime), databaser (som mySQL, Oracle), webservere (som tomcat osv.)
Applikasjoner som e-posttjenester (Gmail, Yahoo mail osv.), sosiale medier (Facebook osv.)

Popularitet
Populært blant høykvalifiserte utviklere, forskere som trenger skreddersydde løsninger basert på sine behov eller forskningsområder
Mest populært blant utviklere, siden de kan fokusere på utviklingen av sine applikasjoner eller skript. De trenger ikke å bekymre seg for trafikkbelastning eller serveradministrasjon osv.
Mest populært blant vanlige forbrukere eller selskaper som bruker programvare som e-post, fildelingsverktøy, sosiale nettverk, da de ikke trenger å bekymre seg om tekniske detaljer

Figur 3: Sammendrag av hovedskytilbudene | Bildet er gitt Amir på Blog Specia

3. Google Cloud Platform beregningspakke

Etter å ha vurdert typiske tilbud fra skytilbydere i avsnitt 2, kan vi sammenligne dem med Google Clouds tilbud.

3.1 Google Compute Engine (GCE) — IaaS

GCP: Analyse av Google Cloud Platform sin databehandlingsstack

Figur 4: Ikon for Google Compute Engine (GCE)

GCE er et IaaS-tilbud fra Google. Med GCE kan du enkelt opprette virtuelle maskiner, fordele prosessor- og minnekilder, velge lagringstype, som SSD eller HDD, samt minnestørrelse. Det er nesten som å bygge din egen datamaskin/arbeidsstasjon og ta seg av alle detaljene om hvordan den fungerer.

I GCE kan du velge fra mikroinstanser med 0,3-kjerneprosessorer og 1 GB RAM til 96-kjerne ‘monstre’ med mer enn 300 GB RAM. Du kan også lage virtuelle maskiner med tilpassede størrelser for dine arbeidsbelastninger. For de som er interessert — dette er virtuelle maskiner du kan sette sammen.

Maskintyper | Compute Engine-dokumentasjon | Google Cloud

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

GCP: Analyse av Google Cloud Platform sin databehandlingsstack

Figur 5: Ikon for Google Kubernetes Engine (GKE)

GKE er et unikt databehandlingsprodukt fra GCP, som representerer en abstraksjon over Compute Engine. Mer generelt kan GKE kategoriseres som «Container as a Service» (CaaS), noen ganger omtalt som «Kubernetes as a Service» (KaaS), som lar kunder enkelt kjøre sine Docker-containere i et fullstendig administrert Kubernetes-miljø. For de som ikke er kjent med containere, hjelper containere med å modulært danne tjenester/applikasjoner, slik at forskjellige containere kan inneholde forskjellige tjenester; for eksempel kan en container ha grensesnittet til webapplikasjonen din, mens en annen kan inneholde backend-delen. Kubernetes automatiserer, koordinerer, administrerer og distribuerer containerne dine. Mer informasjon her.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) — (PaaS)

GCP: Analyse av Google Cloud Platform sin databehandlingsstack

Figur 6: Ikon for Google App Engine (GAE)

Som nevnt i seksjon 2.2, PaaS ligger over IaaS, og i tilfellet med GCP kan det også betraktes som et tilbud over GKE. GAE er en spesialisert Google PaaS, og som de selv beskriver seg best — «Bær koden din, så tar vi oss av resten».

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

GAE håndterer automatisk skalering for å imøtekomme belastningen og etterspørselen fra brukerne, noe som betyr at hvis nettstedet ditt som selger blomster plutselig når et toppunkt fordi Valentinsdag nærmer seg, vil GAE håndtere skaleringen av den underliggende infrastrukturen for å imøtekomme etterspørselen og sikre at nettstedet ditt ikke går ned på grunn av økt etterspørsel. Dette betyr at du betaler kun for de ressursene som kreves av applikasjonen din akkurat nå.

GAE bruker Kubernetes eller sin innebygde versjon for å håndtere alt dette, slik at du slipper å bekymre deg for det. GAE passer best for selskaper som ikke er interessert i den grunnleggende infrastrukturen og bare bryr seg om at applikasjonen deres er tilgjengelig på best mulige måter.

Etter min mening er GAE det beste stedet å starte hvis du er utvikler med en flott idé, men ikke ønsker å bruke tid på rutinearbeid med serveroppsett, belastningsbalansering og alt annet som krever hardt arbeid i devops/SRE. Etter hvert kan du prøve GKE og GCE, men det er bare min mening.

Ansvarsfraskrivelse: AppEngine brukes for webapplikasjoner, ikke mobilapplikasjoner.

For introduksjon: App Engine – Lag skalerbare web- og mobilbackender på hvilket som helst språk | Google Cloud

3.4 Google Cloud Functions – (FaaS)

GCP: Analyse av Google Cloud Platform sin databehandlingsstack

Figur 7: Ikon for Google Cloud Functions (GCF)

Jeg håper du har merket deg trenden etter å ha analysert de forrige utsagnene. Jo høyere oppover du går på stigen av GCP-beregningsløsninger, jo mindre trenger du å bekymre deg for de grunnleggende teknologiene. Denne pyramiden avsluttes med den minste mulige beregningsenheten, funksjonen, som vist i kapittel 1.

GCF er et relativt nytt GCP-tilbud som fortsatt er i betatest (ved tidsskriftets utgivelse). Skyfunksjoner lar spesifikke funksjoner skrevet av utvikleren kjøre på grunnlag av en hendelse.

De er hendelsesstyrte og utgjør grunnlaget for det trendy ordet «serverløst», 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 utviklerne.

På fabrikken, når en bestemt sensor når en viss verdi, kan den utløse en skyfunksjon som utfører noe informasjonshåndtering, eller varsler noe serviceteam osv.

Skyfunksjoner – hendelsesstyrte serverberegninger | Google Cloud

Konklusjon

I denne artikkelen har vi snakket om ulike skytilbud, som IaaS, PaaS osv., og hvordan Googles beregning stack realiserer disse ulike nivåene. Vi har sett at abstraksjonsnivåene når vi går fra en tjenestekategori til en annen, for eksempel fra IaaS til PaaS, krever mindre kunnskap om det underliggende.

For virksomheten gir dette kritisk fleksibilitet som ikke bare oppfyller dens operative mål, men også tilfredsstiller andre nøkkelområder som sikkerhet og kostnad. For å oppsummere:

Compute Engine – lar tilbyr du å opprette din egen virtuelle maskin ved å tildele visse maskinvare ressurser som RAM, prosessor og minne. Det er også ganske praktisk og lavnivå.

Kubernetes Engine – er et steg opp fra Compute Engine, som lar deg bruke Kubernetes og containere for å administrere applikasjonen din, og skalerer den etter behov.

App Engine – er et steg opp fra Kubernetes Engine, som lar deg fokusere kun på koden din, mens Google håndterer alle kravene til den underliggende plattformen.

Cloud-Functions – er toppen av den beregningsmessige pyramiden, som lar deg skrive en enkel funksjon som ved kjøring bruker all den underliggende infrastrukturen for beregning og returnerer resultatet.

Takk for oppmerksomheten!

Twitter: @martinomburajr

Kilde: habr.com

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster