GCP: Analys av Googles molnplattformens databehandlingsstack

Översättningen av artikeln är särskilt utarbetad för studenter i kursen «Molntjänster».

Är du intresserad av att utvecklas inom detta område? Se inspelningen av den professionella masterclassen «AWS EC2-tjänst», som leddes av Egor Zuyev — TeamLead på InBit och författare till utbildningsprogrammet på OTUS.

GCP: Analys av Googles molnplattformens databehandlingsstack

Google Cloud Platform (GCP) erbjuder många tjänster, och specifikt en beräkningsstack som innehåller Google Compute Engine (GCE), Google Kubernetes Engine (tidigare — Container Engine) (GKE), Google App Engine (GAE) och Google Cloud Functions (GCF). Alla dessa tjänster har spännande namn, men deras funktioner och vad som gör dem unika i förhållande till varandra kan vara mindre uppenbara. Denna artikel är avsedd för dem som just börjar vänja sig vid molnkoncepter, särskilt molntjänster och GCP.

GCP: Analys av Googles molnplattformens databehandlingsstack

1. Beräkningsstack

Beräkningsstacken kan ses som en flernivåabstraktion över vad ett datorsystem kan tillhandahålla. Denna stack går uppåt (moves up) från «bar metall» (bare metal), som hänvisar till de faktiska hårdvarukomponenterna i datorn, ända upp till funktioner (functions), som är den minsta beräkningsenheten. Det är viktigt att notera i förhållande till stacken att tjänster aggregeras när man flyttar uppåt i stacken; till exempel bör avsnittet «applikationer» (apps), som visas i bild 1 nedan, innehålla alla grundläggande komponenter av containrar (containrar), virtuella maskiner (virtual machines) och hårdvara. På samma sätt bör komponenten virtuella maskiner innehålla hårdvaran för att fungera.

GCP: Analys av Googles molnplattformens databehandlingsstack

Bild 1: Beräkningsstack | Bild hämtad från Google Cloud

Denna modell, som visas i bild 1, är grunden för att beskriva erbjudanden från molnleverantörer. Därmed kan vissa leverantörer bara tillhandahålla till exempel containrar och tjänster av lägre kvalitet i stacken, medan andra erbjuder allt som visas i bild 1.

— Om du är bekant med molntjänster, gå vidare till avsnitt 3, för en översikt över GCP
— Om du bara behöver en sammanfattning av molntjänster, gå till avsnitt 2.4

2. Molntjänster

Världen av molnberäkning är mycket varierad. Molnleverantörer erbjuder en mängd olika tjänster som är anpassade efter kundernas olika behov. Du kanske har hört talas om termer som IaaS, PaaS, SaaS, FaaS, KaaS och så vidare, med alla bokstäver i alfabetet följt av "aaS". Trots den konstiga namngivningskonventionen utgör de en uppsättning tjänster från molnleverantörer. Jag noterar att det finns 3 huvudsakliga erbjudanden "som en tjänst" (as a Service) som molnleverantörer nästan alltid tillhandahåller.

Det är IaaS, PaaS och SaaS, som står för infrastruktur som en tjänst (Infrastructure as a Service), plattform som en tjänst (Platform as a Service) och mjukvara som en tjänst (Software as a Service) respektive. Det är viktigt att visualisera molntjänster som nivåer av erbjudna tjänster. Det innebär att när du går upp eller ner från nivå till nivå, korsar du som kund olika servicealternativ som antingen läggs till eller tas bort från huvuderbjudandet. Det bästa sättet att betrakta detta på är som en pyramid, som visas i bild 2.
GCP: Analys av Googles molnplattformens databehandlingsstack

Bild 2: Pyramid "aaS" | Bilden är hämtad från Ruby Garage

2.1 Infrastruktur som en tjänst (IaaS)

Detta är den lägsta nivån som en molntjänstleverantör kan erbjuda, och det inkluderar en molnleverantör som tillhandahåller "rå" infrastruktur, inklusive mellanprogramvara, nätverkskablar, processorer, grafikkort, RAM, extern lagring, servrar och bilder av grundläggande operativsystem som Debian Linux, CentOS, Windows osv.

Om du beställer ett IaaS-erbjudande från en molnleverantör, är detta vad du kan förvänta dig att få. Som kund är det ditt ansvar att sätta ihop dessa delar för att driva din verksamhet. Den grad av vad du måste arbeta med kan variera från leverantör till leverantör, men i allmänhet får du bara hårdvara och operativsystem, resten är upp till dig. Exempel på IaaS inkluderar AWS Elastic Compute, Microsoft Azure och GCE.

Vissa människor kanske inte gillar att de måste installera operativsystemsbilder och hantera nätverk, lastbalansering eller tänka på vilken typ av processor som är bäst för deras arbetsbelastning. Det är här vi går uppåt i pyramiden till PaaS.

2.2 Plattform som en tjänst (PaaS)

PaaS inkluderar endast en molnleverantör som erbjuder en specifik plattform där användare kan skapa applikationer. Detta är en abstraktion över IaaS, vilket innebär att molnleverantören tar hand om alla detaljer kring CPU-typer, minne, RAM, lagring, nätverk, osv. Som illustrerat i bild 2 har du som kund begränsad kontroll över den faktiska plattformen, eftersom molnleverantören hanterar alla infrastrukturdetaljer åt dig. Du begär den valda plattformen och bygger ditt projekt på den. Exempel på PaaS inkluderar Heroku.

För vissa kan detta vara en för hög nivå, eftersom de inte nödvändigtvis vill bygga ett projekt på den angivna plattformen, utan snarare behöver en uppsättning tjänster direkt från molnleverantören. Här kommer SaaS in i bilden.

2.3 Mjukvara som en tjänst (SaaS)

SaaS representerar de mest populära tjänsterna som tillhandahålls av molnleverantörer. Dessa är avsedda för slutanvändare och finns främst via webbplatser, som Gmail, Google Docs, Dropbox osv. När det gäller Google Cloud finns det flera erbjudanden utanför deras databeräkningsstack som är SaaS. Dessa inkluderar Data Studio, Big Query osv.

2.4 Sammanfattning av molntjänster

Komponenter
IaaS
PaaS
SaaS

Vad du får
Du får infrastruktur och betalar därefter. Friheten att använda eller installera vilken programvara, operativsystem eller kombination av dem du vill.
Här får du vad du begär. Programvara, hårdvara, operativsystem, webbmiljö. Du får en färdig plattform och betalar därefter.
Här behöver du inte oroa dig för något. Du erbjuds ett förinstallerat paket som anpassats efter dina krav och du betalar bara därefter.

Värde
Grundläggande beräkningsnivå
Toppnivån av IaaS
Detta är i grunden ett komplett paket av tjänster

Tekniska svårigheter
Tekniska kunskaper krävs
Du får en grundläggande konfiguration, men det behövs fortfarande ämneskunskaper.
Ingen anledning att bry sig om tekniska detaljer. SaaS-leverantören tillhandahåller allt.

Vad det arbetar med
Virtuella maskiner, lagring, servrar, nätverk, lastbalanserare osv.
Körningsmiljöer (som java runtime), databaser (som mySQL, Oracle), webbservrar (som tomcat osv.)
Applikationer som e-posttjänster (Gmail, Yahoo mail osv.), sociala interaktionssajter (Facebook osv.)

Popularitetstrend
Populärt bland högkvalificerade utvecklare och forskare som behöver anpassning efter sina krav eller forskningsområden
Mest populärt bland utvecklare, eftersom de kan fokusera på att utveckla sina applikationer eller skript. De behöver inte oroa sig för trafikbelastning eller serverhantering osv.
Mest populärt bland vanliga konsumenter eller företag som använder programvara som e-post, filöverföring, sociala nätverk, eftersom de inte behöver oroa sig för tekniska detaljer

Bild 3: Sammanfattning av huvudmolnerbjudanden | Bilden tillhandahållen av Amir på Blog Specia

3. Google Cloud Platforms databehandlingspaket

Genom att granska typiska erbjudanden från molnleverantörer i avsnitt 2 kan vi jämföra dem med erbjudandena från Google Cloud.

3.1 Google Compute Engine (GCE) — IaaS

GCP: Analys av Googles molnplattformens databehandlingsstack

Bild 4: Ikon för Google Compute Engine (GCE)

GCE är ett IaaS-erbjudande från Google. Med GCE kan du fritt skapa virtuella maskiner, fördela CPU- och minnesresurser, välja lagringstyp som SSD eller HDD, samt mängden minne. Det är nästan som om du har byggt din egen dator/arbetsstation och tar hand om alla detaljer i dess drift.

I GCE kan du välja från mikroinstanser med 0,3-kärnprocessorer och 1 GB RAM till 96-kärniga monster med över 300 GB RAM. Du kan också skapa virtuella maskiner av specialstorlek för dina arbetsbelastningar. För de intresserade — det är virtuella maskiner som du kan bygga.

Maskintyper | Dokumentation för Compute Engine | Google Cloud

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

GCP: Analys av Googles molnplattformens databehandlingsstack

Bild 5: Ikon för Google Kubernetes Engine (GKE)

GKE är en unik databehandlingstjänst från GCP som fungerar som en abstraktion över Compute Engine. Mer generellt kan GKE klassificeras som en "Containertjänst" (CaaS), ibland kallad "Kubernetes som en tjänst" (KaaS), som gör det möjligt för kunder att enkelt köra sina Docker-containrar i en helt hanterad Kubernetes-miljö. För dem som inte är bekanta med containrar, hjälper dessa modulärt att forma tjänster/appar, så olika containrar kan innehålla olika tjänster, till exempel kan en container ha gränssnittet för din webbapplikation medan en annan kan innehålla dess serverdel. Kubernetes automatiserar, koordinerar, hanterar och distribuerar dina containrar. Mer information finns här.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) — (PaaS)

GCP: Analys av Googles molnplattformens databehandlingsstack

Figur 6: Ikon för Google App Engine (GAE)

Som nämnts i avsnitt 2.2 ligger PaaS över IaaS, och i fallet med GCP kan det också ses som ett erbjudande ovanför GKE. GAE är en specialiserad Google PaaS, och som de själva bäst beskriver sig - "ta med din kod, så tar vi hand om resten".

Detta garanterar att kunder som använder GAE inte behöver hantera den underliggande hårdvaran/mell programvaran och redan kan ha en förkonfigurerad plattform som är redo att användas; allt de behöver göra är att tillhandahålla koden som krävs för att köra den.

GAE hanterar automatiskt skalning för att möta trafik och efterfrågan från användare, vilket innebär att om din webbplats som säljer blommor plötsligt når toppar eftersom Alla hjärtans dag närmar sig, kommer GAE att hantera skalningen av den underliggande infrastrukturen för att möta efterfrågan och säkerställa att din webbplats inte går ner på grund av ökad belastning. Det innebär att du betalar för de resurser som krävs för din applikation vid det aktuella tillfället.

GAE använder Kubernetes eller dess inbyggda version för att hantera allt detta så att du inte behöver oroa dig för det. GAE passar bäst för företag som inte är intresserade av den underliggande infrastrukturen och bara vill att deras applikation ska vara tillgänglig på bästa möjliga sätt.

Enligt min mening är GAE den bästa platsen att börja på om du är en utvecklare med en fantastisk idé, men inte vill hantera det tråkiga arbetet med serverinställningar, belastningsbalansering och allt annat arbetsintensivt devops/SRE-arbete. Med tiden kan du prova GKE och GCE, men det är bara min åsikt.

Disclaimer: AppEngine används för webbapplikationer, inte mobilapplikationer.

För att bekanta dig: App Engine - Skapa skalbara webb- och mobilbackends på valfritt språk | Google Cloud

3.4 Google Cloud Functions - (FaaS)

GCP: Analys av Googles molnplattformens databehandlingsstack

Bild 7: Ikon för Google Cloud Functions (GCF)

Jag hoppas att du har märkt en trend när du analyserade de tidigare förslagen. Ju högre du kommer på GCP:s datalösningar, desto mindre behöver du oroa dig för de underliggande teknologierna. Denna pyramid avslutas med den minsta möjliga beräkningsenheten, en funktion, som visas i avsnitt 1.

GCF är ett relativt nytt erbjudande från GCP som fortfarande är i beta-testning (vid tidpunkten för denna artikel). Molnfunktioner tillåter att specifika funktioner skrivna av utvecklare körs vid en viss händelse.

De är händelsestyrda och ligger till grund för det snobby uttrycket 'serverlös', vilket betyder att de inte vet något om servrar. Molnfunktioner är mycket enkla och har många olika tillämpningar som kräver händelseorienterat tänkande. Till exempel kan en molnfunktion köras varje gång en ny användare registrerar sig för att varna utvecklarna.

I fabriken, när en viss sensor når ett visst värde, kan den utlösa en molnfunktion som utför viss informationsbearbetning eller meddelar viss underhållspersonal etc.

Molnfunktioner - händelsestyrda serverberäkningar | Google Cloud

Slutsats

I denna artikel har vi pratat om olika molnerbjudanden som IaaS, PaaS osv., och hur Googles beräkningsstack implementerar dessa olika nivåer. Vi har sett att abstraheringsnivåerna vid övergång från en tjänstekategori till en annan, till exempel från IaaS till PaaS, kräver mindre kunskap om de underliggande teknologierna.

För företag ger detta kritisk flexibilitet som inte bara uppfyller deras operativa mål utan också tillfredsställer andra nyckelområden som säkerhet och kostnad. Sammanfattningsvis:

Compute Engine — gör att du kan skapa din egen virtuella maskin genom att avsätta specifika hårdvaruresurser som RAM, processor och minne. Den är även tillräckligt praktisk och låg nivå.

Kubernetes Engine — är ett steg upp från Compute Engine, vilket gör att du kan använda Kubernetes och containrar för att hantera din applikation, vilket möjliggör skalning vid behov.

App Engine — är ett steg upp från Kubernetes Engine, vilket gör att du kan fokusera endast på din kod, medan Google tillhandahåller alla basplattformens krav.

Cloud-Functions — är toppen av den beräkningsmässiga pyramiden, vilket gör att du kan skriva en enkel funktion som, när den körs, använder hela den grundläggande infrastrukturen för att beräkna och returnera resultatet.

Tack för uppmärksamheten!

Twitter: @martinomburajr

Källa: habr.com

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster