GCP: Analyse van de compute stack van Google Cloud Platform.

De vertaling van het artikel is speciaal voorbereid voor studenten van de cursus «Cloud Services».

Bent u geïnteresseerd in deze richting? Bekijk de opname van de professionele masterclass «AWS EC2 Service», geleid door Egor Zuev — TeamLead bij InBit en auteur van het onderwijsprogramma bij OTUS.

GCP: Analyse van de compute stack van Google Cloud Platform.

Google Cloud Platform (GCP) biedt een breed scala aan diensten, waaronder een compute-stack die bestaat uit Google Compute Engine (GCE), Google Kubernetes Engine (voorheen Container Engine) (GKE), Google App Engine (GAE) en Google Cloud Functions (GCF). Al deze diensten hebben coole namen, maar hun functies en wat hen uniek maakt ten opzichte van elkaar kunnen niet altijd helemaal duidelijk zijn. Dit artikel is bedoeld voor degenen die nieuw zijn met cloudconcepten, in het bijzonder cloudservices en GCP.

GCP: Analyse van de compute stack van Google Cloud Platform.

1. Compute-stack

De compute-stack kan worden gezien als een gelaagde abstractie van wat een computersysteem kan bieden. Deze stack gaat omhoog (moves up) van "bare metal" (bare metal), dat verwijst naar de feitelijke hardwarecomponenten van de computer, tot de functies (functions), die de kleinste eenheid van berekening vertegenwoordigen. Het belangrijkste punt om op te merken met betrekking tot de stack is dat de diensten worden geaggregeerd terwijl je omhoog gaat in de stack; bijvoorbeeld, de sectie "applicaties" (apps), die hieronder in figuur 1 wordt weergegeven, moet alle basiscomponenten van containers (containers), virtuele machines (virtual machines) en hardware bevatten. Evenzo moet de component van virtuele machines de hardware bevatten die nodig is om te functioneren.

GCP: Analyse van de compute stack van Google Cloud Platform.

Figuur 1: Compute-stack | Afbeelding verkregen van , Google Cloud

Dit model, weergegeven in figuur 1, vormt de basis voor het beschrijven van aanbiedingen van cloudproviders. Sommige providers kunnen bijvoorbeeld alleen containers en diensten van lagere kwaliteit in de stack aanbieden, terwijl anderen alles aanbieden dat in figuur 1 wordt weergegeven.

— Als je bekend bent met cloudservices, ga dan naar sectie 3, om het equivalent van GCP te bekijken
— Als je alleen een samenvatting van cloudservices wilt, ga dan naar sectie 2.4

2. Cloud services

De wereld van cloud computing is zeer divers. Cloudproviders bieden een scala aan diensten die zijn afgestemd op verschillende klantbehoeften. Misschien heeft u termen gehoord zoals IaaS, PaaS, SaaS, FaaS, KaaS enzovoort, met al die letters van het alfabet, gevolgd door 'aaS'. Ondanks de vreemde naamgevingsconventie vormen ze een reeks diensten van cloudproviders. Ik constateer dat er 3 belangrijkste 'as a Service' aanbiedingen zijn die cloudproviders bijna altijd aanbieden.

Dit zijn IaaS, PaaS en SaaS, wat respectievelijk infrastructuur als dienst (Infrastructure as a Service), platform als dienst (Platform as a Service) en software als dienst (Software as a Service) betekent. Het is belangrijk om clouddiensten te visualiseren als lagen van geleverde diensten. Dit betekent dat wanneer u omhoog of omlaag beweegt tussen de lagen, u als klant verschillende serviceniveaus tegenkomt die ofwel worden toegevoegd of verwijderd uit het hoofdaanbod. Het beste is om dit te beschouwen als een piramide, zoals weergegeven in figuur 2.
GCP: Analyse van de compute stack van Google Cloud Platform.

Figuur 2: Piramide ‘aaS’ | Afbeelding verkregen van Ruby Garage

2.1 Infrastructuur als Dienst (IaaS)

Dit is het laagste niveau dat een cloudserviceprovider kan aanbieden en het omvat een cloudprovider die 'naakte' infrastructuur levert, inclusief middleware, netwerkkabels, processoren, grafische processors, RAM, externe opslag, servers en afbeeldingen van basisbesturingssystemen zoals Debian Linux, CentOS, Windows, enz.

Als u een IaaS-aanbod bij een cloudserviceprovider bestelt, dan is dit wat u kunt verwachten te ontvangen. Het is aan u, als klant, om deze onderdelen samen te stellen voor het runnen van uw bedrijf. De mate waarin u met deze onderdelen moet werken, kan van provider tot provider variëren, maar doorgaans ontvangt u gewoon de hardware en het besturingssysteem, en de rest is aan u. Voorbeelden van IaaS zijn AWS Elastic Compute, Microsoft Azure en GCE.

Sommige mensen vinden het misschien niet prettig dat ze besturingssysteembeelden moeten installeren en met netwerken, load balancing of het kiezen van het juiste type processor voor hun workload moeten omgaan. Dit is het moment waarop we omhoog bewegen in de piramide naar PaaS.

2.2 Platform as a Service (PaaS)

PaaS omvat alleen de clouddienstverlener die een bepaald platform aanbiedt waarop gebruikers applicaties kunnen ontwikkelen. Dit is een abstractie bovenop IaaS, wat betekent dat de cloudprovider alle details van de soorten CPU's, geheugen, RAM, opslag, netwerken enzovoort voor zijn rekening neemt. Zoals weergegeven in afbeelding 2, heeft u als klant beperkte controle over het daadwerkelijke platform, aangezien de cloudprovider zich bezighoudt met alle details van de infrastructuur voor u. U vraagt het gekozen platform aan en bouwt uw project daarop. Voorbeelden van PaaS zijn Heroku.

Voor sommigen kan dit een te hoog niveau zijn, aangezien ze niet per se een project willen bouwen op het aangegeven platform, maar eerder behoefte hebben aan een set diensten rechtstreeks van de clouddienstverlener. Hier komt SaaS in beeld.

2.3 Software as a Service (SaaS)

SaaS vertegenwoordigt de meest voorkomende diensten die door clouddienstverleners worden aangeboden. Ze zijn bedoeld voor eindgebruikers en zijn voornamelijk via websites toegankelijk, zoals Gmail, Google Docs, Dropbox enzovoort. Wat betreft Google Cloud zijn er verschillende aanbiedingen buiten hun compute-stack die SaaS zijn. Deze omvatten Data Studio, Big Query enzovoort.

2.4 Samenvatting van cloudservices

Componenten
IaaS
PaaS
SaaS

Wat u krijgt
U krijgt infrastructuur en betaalt dienovereenkomstig. Vrijheid om elke software, OS of hun compositie te gebruiken of te installeren.
Hier krijgt u wat u aanvraagt. Software, hardware, OS, webomgeving. U krijgt een kant-en-klare platform en betaalt dienovereenkomstig.
Hier hoeft u zich nergens zorgen over te maken. U krijgt een vooraf ingestelde configuratie die aan uw eisen is aangepast, en u hoeft alleen maar dienovereenkomstig te betalen.

Waarde
Basisniveau van computing
Top van IaaS
Dit is in wezen een complete dienstenbundel

Technische complexiteit
Technische kennis is vereist
U krijgt een basisconfiguratie, maar er is nog steeds vakkennis nodig.
Er hoeft zich niemand druk te maken over technische details. De SaaS-provider biedt alles.

Waarmee het werkt
Virtuele machines, opslag, servers, netwerk, load balancers enzovoort.
Runtime-omgevingen (zoals java runtime), databases (zoals mySQL, Oracle), webservers (zoals tomcat enzovoort)
Applicaties zoals e-mailservices (Gmail, Yahoo mail, enz.) en sociale netwerksites (Facebook, enz.)

Populariteitsgrafiek
Populair onder hooggekwalificeerde ontwikkelaars en onderzoekers die maatwerk vereisen volgens hun behoeften of onderzoeksgebied
Het meest populair onder ontwikkelaars, omdat zij zich kunnen concentreren op de ontwikkeling van hun applicaties of scripts. Ze hoeven zich geen zorgen te maken over het verkeer of het beheren van de server, enz.
Het meest populair onder gewone consumenten of bedrijven die software gebruiken zoals e-mail, bestandsoverdracht, sociale netwerken, omdat zij zich geen zorgen hoeven te maken over technische details

Figuur 3: Overzicht van de belangrijkste cloudaanbiedingen | Afbeelding verstrekt Amir bij Blog Specia

3. Google Cloud Platform Compute Package

Door de typische aanbiedingen van cloudproviders in sectie 2 te overwegen, kunnen we deze koppelen aan de aanbiedingen van Google Cloud.

3.1 Google Compute Engine (GCE) — IaaS

GCP: Analyse van de compute stack van Google Cloud Platform.

Figuur 4: Pictogram van Google Compute Engine (GCE)

GCE is een IaaS-aanbod van Google. Met GCE kun je vrijelijk virtuele machines creëren, CPU- en geheugencapaciteit verdelen, het type opslag kiezen, zoals SSD of HDD, en de hoeveelheid geheugen. Het is bijna alsof je je eigen computer/werkstation hebt gebouwd en alle details van de werking ervan beheert.

In GCE kun je kiezen tussen micro-instanties met 0,3-kernprocessoren en 1 GB RAM tot monsters met 96 kernen en meer dan 300 GB RAM. Je kunt ook virtuele machines op maat maken voor je workloads. Voor degenen die geïnteresseerd zijn: dit zijn virtuele machines die je kunt samenstellen.

Soorten machines | Compute Engine-documentatie | Google Cloud

3.2. Google Kubernetes Engine (GKE) — (CaaS / KaaS)

GCP: Analyse van de compute stack van Google Cloud Platform.

Figuur 5: Pictogram van Google Kubernetes Engine (GKE)

GKE is een unieke computing oplossing van GCP, die een abstractie boven Compute Engine biedt. In bredere zin kan GKE worden ingedeeld in de categorie 'Container als Dienst' (CaaS), soms aangeduid als 'Kubernetes als Dienst' (KaaS), wat klanten in staat stelt hun Docker-containers eenvoudig te draaien in een volledig beheerde Kubernetes-omgeving. Voor degenen die niet bekend zijn met containers, helpen containers bij het modulair vormen van diensten/toepassingen, zodat verschillende containers verschillende diensten kunnen bevatten; bijvoorbeeld, één container kan de interface van uw webtoepassing bevatten, terwijl een andere de backend bevat. Kubernetes automatiseert, coördineert, beheert en implementeert uw containers. Meer informatie hier.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) — (PaaS)

GCP: Analyse van de compute stack van Google Cloud Platform.

Afbeelding 6: Google App Engine (GAE) icoon

Zoals vermeld in sectie 2.2, ligt PaaS boven IaaS, en in het geval van GCP kan het ook worden beschouwd als een aanbod boven GKE. GAE is een gespecialiseerde Google PaaS, en zoals zij zelf het beste beschrijven: 'Breng uw code, en wij zorgen voor de rest.'

Dit garandeert dat klanten die GAE gebruiken niet hoeven om te gaan met de onderliggende hardware/software, en al een vooraf geconfigureerd platform hebben dat klaar is voor gebruik; alles wat ze hoeven te doen, is de noodzakelijke code om het te draaien aanleveren.

GAE beheert automatisch de schaling om te voldoen aan de belasting en vraag van gebruikers, wat betekent dat als uw bloemenverkoopwebsite plotseling een piek bereikt vanwege de naderende Valentijnsdag, GAE de schaling van de onderliggende infrastructuur beheert om aan de vraag te voldoen en ervoor zorgt dat uw website niet crasht vanwege de verhoogde vraag. Dit betekent dat u alleen betaalt voor de resources die op dat moment door uw toepassing nodig zijn.

GAE maakt gebruik van Kubernetes of zijn ingebouwde versie om dit alles te beheren, zodat u zich daar geen zorgen over hoeft te maken. GAE is het meest geschikt voor bedrijven die niet geïnteresseerd zijn in de onderliggende infrastructuur en alleen willen zorgen dat hun toepassing op de best mogelijke manier toegankelijk is.

Naar mijn mening is GAE de beste plek om te beginnen, als je een ontwikkelaar bent met een geweldig idee, maar niet wilt omgaan met de routinematige taken van serverconfiguratie, load balancing en al het andere arbeidsintensievelijke devops/SRE-werk. Na verloop van tijd zou je GKE en GCE kunnen proberen, maar dat is slechts mijn mening.

Disclaimer: AppEngine wordt gebruikt voor webapplicaties en niet voor mobiele applicaties.

Voor kennismaking: App Engine - Maak schaalbare web- en mobiele backends in elke taal | Google Cloud

3.4 Google Cloud Functions - (FaaS)

GCP: Analyse van de compute stack van Google Cloud Platform.

Figuur 7: Pictogram van Google Cloud Functions (GCF)

Ik hoop dat je de trend opvalt na het analyseren van de eerdere voorstellen. Hoe hoger je komt in de hiërarchie van GCP-oplossingen, hoe minder je je hoeft te bekommeren om de onderliggende technologieën. Deze piramide eindigt met de kleinste mogelijke rekeneenheid, de functie, zoals uitgelegd in sectie 1.

GCF is een relatief nieuw aanbod in GCP dat nog steeds in de bètafase verkeert (ten tijde van het schrijven van dit artikel). Cloudfuncties stellen bepaalde functies, geschreven door een ontwikkelaar, in staat om te worden uitgevoerd op basis van een gebeurtenis.

Ze worden door gebeurtenissen beheerd en zijn de basis van het trendy woord 'serverless', wat betekent dat ze geen servers kennen. Cloudfuncties zijn zeer eenvoudig en hebben veel verschillende toepassingen die evenementen denken vereisen. Bijvoorbeeld, elke keer dat een nieuwe gebruiker zich registreert, kan er een cloudfunctie worden uitgevoerd om ontwikkelaars te waarschuwen.

In een fabriek, wanneer een bepaalde sensor een bepaalde waarde bereikt, kan deze een cloudfunctie activeren die enige informatieverwerking uitvoert, of een bepaald bedienend personeel waarschuwt, enzovoort.

Cloudfuncties - gebeurtenisgestuurde serverless computing | Google Cloud

Conclusie

In dit artikel hebben we gesproken over verschillende cloudaanbiedingen, zoals IaaS, PaaS, enzovoort, en hoe de Google-rekenstack deze verschillende niveaus implementeert. We hebben gezien dat de niveaus van abstractie bij de overgang van de ene dienst naar de andere, bijvoorbeeld van IaaS naar PaaS, minder kennis van de onderliggende technologie vereisen.

Voor bedrijven biedt dit cruciale flexibiliteit, die niet alleen voldoet aan hun operationele doelstellingen, maar ook andere belangrijke gebieden zoals beveiliging en kosten ondersteunt. Samenvattend:

Compute Engine — stelt je in staat om je eigen virtuele machine te creëren door specifieke hardwarebronnen toe te wijzen, zoals RAM, CPU, en opslag. Het is ook vrij praktisch en low-level.

Kubernetes Engine — is een stap verder dan Compute Engine, waarmee je Kubernetes en containers kunt gebruiken om je applicatie te beheren, en het desgewenst te schalen.

App Engine — is een stap verder dan Kubernetes Engine, waardoor je je alleen op je code kunt concentreren, terwijl Google voor alle basisplatformvereisten zorgt.

Cloud-Functions — is de top van de computatieladder, waarmee je een eenvoudige functie kunt schrijven die bij uitvoering gebruik maakt van de volledige basisinfrastructuur voor berekeningen en het resultaat retourneert.

Bedankt voor uw aandacht!

Twitter: @martinomburajr

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster