GCP: Parsning av Google Cloud Platform Compute Stack

Översättningen av artikeln förbereddes speciellt för kursens studenter "molntjänster".

Är du intresserad av att utvecklas i denna riktning? Se inspelningen av en professionell mästarklass "AWS EC2-tjänst", som genomfördes av Egor Zuev - TeamLead på InBit och författaren till utbildningsprogrammet på OTUS.

GCP: Parsning av Google Cloud Platform Compute Stack

Google Cloud Platform (GCP) erbjuder många tjänster, och i synnerhet datorstacken 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 coola namn, men kanske inte är helt självklara om deras funktioner och vad som gör dem unika för varandra. Den här artikeln är avsedd för dig som är ny med molnkoncept, särskilt molntjänster och GCP.

GCP: Parsning av Google Cloud Platform Compute Stack

1. Beräkna stack

En datorstack kan ses som en skiktad abstraktion över vad ett datorsystem kan tillhandahålla. Denna stack stiger (flyttar upp) från "bart järn" (endast metall), med hänvisning till datorns faktiska hårdvarukomponenter, ner till funktionerna (funktioner), som representerar den minsta beräkningsenheten. Vad som är viktigt att notera om stacken är att tjänster aggregeras när du flyttar upp i stacken, till exempel avsnittet "applikationer" (appar), som visas i figur 1 nedan, bör innehålla alla de grundläggande behållarkomponenterna (behållare), virtuella maskiner (virtuella maskiner) och järn. På samma sätt måste den virtuella maskinkomponenten innehålla hårdvara inuti för att fungera.

GCP: Parsning av Google Cloud Platform Compute Stack

Figur 1: Beräkna stack | Bild hämtad från Google Cloud

Denna modell, som visas i figur 1, är grunden för att beskriva erbjudanden från molnleverantörer. Vissa leverantörer kan alltså bara tillhandahålla till exempel containrar och tjänster med lägre kvalitet längs stacken, medan andra kan tillhandahålla allt som visas i figur 1.

— Om du är bekant med molntjänster, gå till avsnitt 3för att se GCP-motsvarigheten
— Om du bara vill ha en sammanfattning av molntjänster, gå till avsnitt 2.4

2. Molntjänster

Världen av cloud computing är mycket varierande. Molnleverantörer erbjuder en mängd olika tjänster skräddarsydda för olika kundkrav. Du kanske har hört talas om termer som IaaS, PaaS, SaaS, FaaS, KaaS, etc. med alla bokstäver i alfabetet följt av "aaS". Trots den märkliga namnkonventionen bildar de en uppsättning molnleverantörstjänster. Jag konstaterar att det finns tre huvudsakliga "som en tjänst"-erbjudanden som molnleverantörer nästan alltid tillhandahåller.

Dessa är IaaS, PaaS och SaaS, som står för Infrastructure as a Service, Platform as a Service och Software as a Service. Det är viktigt att visualisera molntjänster som lager av tjänster som tillhandahålls. Det betyder att när du går upp eller ner från nivå till nivå så genomkorsas du som kund av olika servicealternativ som antingen läggs till eller subtraheras från kärnerbjudandet. Det är bäst att tänka på det som en pyramid, som visas i figur 2.
GCP: Parsning av Google Cloud Platform Compute Stack

Figur 2: aaS Pyramid | Bild hämtad från Ruby Garage

2.1 Infrastructure as a Service (IaaS)

Detta är den lägsta nivån som en molnleverantör kan erbjuda och innebär att molnleverantören levererar infrastrukturen av ren metall, inklusive mellanprogram, nätverkskablar, processorer, GPU:er, RAM, extern lagring, servrar och underliggande operativsystembilder, t.ex. Debian Linux, CentOS, Windows , etc.

Om du beställer en offert från en moln IaaS-leverantör är detta vad du kan förvänta dig att få. Det är upp till dig, kunden, att montera dessa delar för att driva ditt företag. Omfattningen 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årdvaran och operativsystemet och resten är upp till dig. Exempel på IaaS är AWS Elastic Compute, Microsoft Azure och GCE.

Vissa människor kanske inte gillar det faktum att de måste installera OS-avbildningar och hantera nätverk, belastningsbalansering eller oroa sig för vilken typ av processor som är idealisk för deras arbetsbelastning. Det är här vi rör oss uppför pyramiden mot PaaS.

2.2 Plattform som en tjänst (PaaS)

PaaS involverar endast en molntjänstleverantör som erbjuder en specifik plattform på vilken användare kan bygga applikationer. Detta är en abstraktion över IaaS, vilket innebär att molnleverantören tar hand om alla detaljer om CPU-typer, minne, RAM, lagring, nätverk etc. Som framgår av figur 2 har du som kund liten kontroll över själva plattformen p.g.a. molnet hanterar leverantören all infrastrukturdetaljer åt dig. Du begär den valda plattformen och bygger projektet på den. Exempel på PaaS är Heroku.

Detta kan vara en för hög nivå för vissa, eftersom de inte nödvändigtvis vill bygga projektet på en specificerad plattform, utan snarare behöver en uppsättning tjänster direkt från molnleverantören. Det är här SaaS kommer in i bilden.

2.3 Programvara som en tjänst (SaaS)

SaaS representerar de vanligaste tjänsterna som tillhandahålls av molntjänstleverantörer. De riktar sig till slutanvändare och är tillgängliga främst via webbplatser som Gmail, Google Docs, Dropbox, etc. När det gäller Google Cloud finns det flera erbjudanden utanför deras datorstack som är SaaS. Dessa inkluderar Data Studio, Big Query, etc.

2.4 Sammanfattning av molntjänster

beståndsdelar i
IaaS
PaaS
SaaS

Vad får du
Du får infrastrukturen och betalar därefter. Frihet att använda eller installera programvara, operativsystem eller sammansättning därav.
Här får du vad du ber om. Mjukvara, hårdvara, OS, webbmiljö. Du får en färdig att använda plattform och betalar därefter.
Här behöver du inte oroa dig för någonting. Du får ett förinstallerat paket anpassat efter dina krav och allt du behöver göra är att betala därefter.

Värde
Grundläggande datoranvändning
Topp IaaS
Detta är i huvudsak ett komplett paket av tjänster

Tekniska problem
Teknisk kunskap krävs
Du får den grundläggande konfigurationen, men du behöver fortfarande domänkunskap.
Du behöver inte bry dig om tekniska detaljer. SaaS-leverantören tillhandahåller allt.

Vad fungerar det med?
Virtuella maskiner, lagring, servrar, nätverk, lastbalanserare, etc.
Runtimemiljöer (som java runtime), databaser (som mySQL, Oracle), webbservrar (som tomcat, etc.)
Applikationer som e-posttjänster (Gmail, Yahoo mail, etc.), webbplatser för social interaktion (Facebook, etc.)

Popularitetsgraf
Populär bland högutbildade utvecklare, forskare som kräver anpassning enligt deras krav eller forskningsområde
Mest populära bland utvecklare eftersom de kan fokusera på att utveckla sina applikationer eller skript. De behöver inte oroa sig för trafikbelastning eller serverhantering etc.
Mest populär bland vanliga konsumenter eller företag som använder programvara som e-post, fildelning, sociala nätverk, eftersom de inte behöver oroa sig för tekniska detaljer

Figur 3: Sammanfattning av stora molnerbjudanden | Bild tillhandahålls Amir på Blog Specia

3. Google Cloud Platform Computing Suite

Efter att ha tittat på typiska molnleverantörserbjudanden i avsnitt 2 kan vi jämföra dem med Google Clouds erbjudanden.

3.1 Google Compute Engine (GCE) – IaaS

GCP: Parsning av Google Cloud Platform Compute Stack

Figur 4: Google Compute Engine (GCE)-ikon

GCE är ett IaaS-erbjudande från Google. Med GCE kan du fritt skapa virtuella maskiner, allokera CPU- och minnesresurser, välja lagringstyp som SSD eller HDD och mängden minne. Det är nästan som om du byggt din egen dator/arbetsstation och hanterat alla detaljer om hur det fungerar.

I GCE kan du välja mellan mikroinstanser med 0,3-kärniga processorer och 1 GB RAM till 96-kärniga monster med över 300 GB RAM. Du kan också skapa virtuella maskiner i anpassad storlek för dina arbetsbelastningar. För den som är intresserad är det virtuella maskiner som du kan bygga.

Maskintyper | Compute Engine Documentation | Google Cloud

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

GCP: Parsning av Google Cloud Platform Compute Stack

Figur 5: Google Kubernetes Engine (GKE)-ikon

GKE är ett unikt datorerbjudande från GCP som är en abstraktion ovanpå Compute Engine. Mer generellt kan GKE kategoriseras som Container as a Service (CaaS), ibland kallad Kubernetes as a Service (KaaS), vilket gör att kunder enkelt kan köra sina Docker-containrar i en fullt hanterad Kubernetes-miljö. För de som inte är bekanta med containrar hjälper containrar till att modularisera tjänster/applikationer, så olika containrar kan innehålla olika tjänster, till exempel kan en container vara värd för fronten av din webbapplikation och en annan kan innehålla baksidan av den. Kubernetes automatiserar, orkestrerar, hanterar och distribuerar dina behållare. Mer information här.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) - (PaaS)

GCP: Parsning av Google Cloud Platform Compute Stack

Figur 6: Google App Engine (GAE)-ikon

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

Detta säkerställer att kunder som använder GAE inte behöver ta itu med underliggande hårdvara/mellanprogramvara, och att de redan kan ha en förkonfigurerad plattform redo att användas; allt de behöver göra är att tillhandahålla koden som behövs för att köra den.

GAE hanterar automatiskt skalning för att möta belastningen och användarnas efterfrågan, vilket innebär att om din webbsida som säljer blommor plötsligt toppar sig 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 kraschar på grund av ökad efterfrågan. Det innebär att du betalar för exakt de resurser som din ansökan kräver för tillfället.

GAE använder Kubernetes eller dess ursprungliga version för att hantera allt detta så att du inte behöver oroa dig för det. GAE lämpar sig bäst för företag som inte är intresserade av den underliggande infrastrukturen och bara bryr sig om att se till att deras applikation är tillgänglig på bästa möjliga sätt.

Enligt min åsikt är GAE det bästa stället att börja om du är en utvecklare med en bra idé, men inte vill ta itu med mödan med att sätta upp servrar, lastbalansering och allt annat tidskrävande devops/SRE-arbete . Med tiden skulle du kunna prova GKE och GCE, men det är bara min åsikt.

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

Efter information: App Engine - Bygg skalbara webb- och mobila backends på valfritt språk | Google Cloud

3.4 Google Cloud Functions - (FaaS)

GCP: Parsning av Google Cloud Platform Compute Stack

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

Förhoppningsvis har du märkt en trend genom att titta på de tidigare erbjudandena. Ju högre du klättrar på GCP:s datorlösningsstegen, desto mindre behöver du oroa dig för den underliggande tekniken. Denna pyramid slutar med minsta möjliga beräkningsenhet, en funktion, som visas i avsnitt 1.

GCF är ett relativt nytt GCP-erbjudande som fortfarande är i betaversion (när detta skrivs). Molnfunktioner tillåter att vissa funktioner skrivna av utvecklaren utlöses av en händelse.

De är händelsedrivna och är kärnan i modeordet "serverlösa", vilket betyder att de inte känner till servrar. Molnfunktioner är väldigt enkla och har många olika användningsområden som kräver händelsetänkande. Till exempel, varje gång en ny användare registrerar sig kan en molnfunktion triggas för att varna utvecklare.

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

Molnfunktioner - Händelsedriven serverberäkning | Google Cloud

Slutsats

I den här artikeln pratade vi om de olika molnerbjudandena som IaaS, PaaS, etc. och hur Googles datorstack implementerar dessa olika lager. Vi har sett att abstraktionsskikt när man flyttar från en tjänstekategori till en annan, såsom IaaS i Paas, kräver mindre kunskap om det underliggande.

För ett företag ger detta kritisk flexibilitet som inte bara uppfyller dess operativa mål, utan även möter andra nyckelområden som säkerhet och kostnad. För att sammanfatta:

Beräkna Engine - låter dig skapa din egen virtuella maskin genom att allokera vissa hårdvaruresurser, till exempel RAM, processor, minne. Det är också ganska praktiskt och på låg nivå.

Kubernetes motor är ett steg upp från Compute Engine och låter dig använda Kubernetes och behållare för att hantera din applikation, så att du kan skala upp den efter behov.

Appmotor är ett steg upp från Kubernetes Engine, så att du bara kan fokusera på din kod medan Google tar hand om alla underliggande plattformskrav.

Molnfunktioner är toppen av datorpyramiden, vilket gör att du kan skriva en enkel funktion som, när den körs, använder hela den underliggande infrastrukturen för att beräkna och returnera resultatet.

Tack för din uppmärksamhet!

Twitter: @martinomburajr

Källa: will.com

Lägg en kommentar