GCP: parseren van de Google Cloud Platform Compute Stack

De vertaling van het artikel is speciaal gemaakt voor de studenten van de cursus "Cloud diensten".

Heb je interesse om je in deze richting te ontwikkelen? Bekijk de opname van een professionele masterclass "AWS EC2-service", uitgevoerd door Egor Zuev - TeamLead bij InBit en auteur van het educatieve programma bij OTUS.

GCP: parseren van de Google Cloud Platform Compute Stack

Google Cloud Platform (GCP) biedt veel diensten, en in het bijzonder de computingstack die Google Compute Engine (GCE), Google Kubernetes Engine (voorheen Container Engine) (GKE), Google App Engine (GAE) en Google Cloud Functions (GCF) bevat. . Al deze services hebben coole namen, maar zijn misschien niet helemaal duidelijk over hun functies en wat ze uniek voor elkaar maakt. Dit artikel is bedoeld voor degenen die nieuw zijn in cloudconcepten, met name cloudservices en GCP.

GCP: parseren van de Google Cloud Platform Compute Stack

1. Compute-stack

Een computerstapel kan worden gezien als een gelaagde abstractie van wat een computersysteem kan bieden. Deze stapel stijgt (beweegt omhoog) van "kaal ijzer" (bare metal), verwijzend naar de daadwerkelijke hardwarecomponenten van de computer, tot aan de functies (functies), die de kleinste rekeneenheid vertegenwoordigen. Wat belangrijk is om op te merken over de stapel is dat services worden samengevoegd naarmate u hogerop in de stapel komt, zoals de sectie 'applicaties' (apps), weergegeven in Figuur 1 hieronder, moet alle basiscontainercomponenten bevatten (containers), virtuele machines (virtuele machines) en ijzer. Op dezelfde manier moet het onderdeel virtuele machines hardware bevatten om te kunnen werken.

GCP: parseren van de Google Cloud Platform Compute Stack

Figuur 1: Compute-stack | Afbeelding afkomstig van Google Cloud

Dit model, weergegeven in figuur 1, vormt de basis voor het beschrijven van het aanbod van cloudproviders. Sommige aanbieders kunnen bijvoorbeeld alleen containers en diensten van lagere kwaliteit langs de stapel aanbieden, terwijl andere alles kunnen bieden wat in figuur 1 wordt weergegeven.

— Als u bekend bent met clouddiensten, ga dan naar sectie 3om het GCP-equivalent te zien
— Wil je alleen een overzicht van clouddiensten, ga dan naar sectie 2.4

2. Clouddiensten

De wereld van cloud computing is zeer divers. Cloudproviders bieden een verscheidenheid aan diensten die zijn afgestemd op verschillende klantvereisten. Je hebt misschien wel eens gehoord van termen als IaaS, PaaS, SaaS, FaaS, KaaS, etc. met alle letters van het alfabet gevolgd door "aaS". Ondanks de vreemde naamgevingsconventie vormen ze een reeks cloudproviderdiensten. Ik stel dat er drie belangrijke ‘as a service’-aanbiedingen zijn die cloudproviders bijna altijd aanbieden.

Dit zijn IaaS, PaaS en SaaS, die respectievelijk staan ​​voor Infrastructure as a Service, Platform as a Service en Software as a Service. Het is belangrijk om clouddiensten te visualiseren als lagen van aangeboden diensten. Dit betekent dat u als klant, terwijl u van niveau naar niveau stijgt of daalt, wordt doorkruist door verschillende serviceopties die worden toegevoegd aan of verwijderd van het kernaanbod. Je kunt het het beste zien als een piramide, zoals weergegeven in figuur 2.
GCP: parseren van de Google Cloud Platform Compute Stack

Figuur 2: aaS-piramide | Afbeelding afkomstig van Ruby-garage

2.1 Infrastructuur als een service (IaaS)

Dit is het laagste niveau dat een cloudprovider kan bieden en waarbij de cloudprovider de bare metal-infrastructuur levert, inclusief middleware, netwerkbekabeling, CPU's, GPU's, RAM, externe opslag, servers en onderliggende besturingssysteemimages, bijvoorbeeld Debian Linux, CentOS, Windows , enz.

Als u een offerte bestelt bij een cloud-IaaS-provider, is dit wat u mag verwachten. Het is aan u, de klant, om deze onderdelen samen te stellen om uw bedrijf te runnen. De omvang van waarmee u te maken krijgt, kan van leverancier tot leverancier verschillen, maar over het algemeen krijgt u alleen 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 leuk dat ze OS-images moeten installeren en zich moeten bezighouden met netwerken, taakverdeling of zich zorgen moeten maken over welk type processor ideaal is voor hun werklast. Dit is waar we de piramide opgaan richting PaaS.

2.2 Platform-as-a-Service (PaaS)

Bij PaaS gaat het alleen om een ​​clouddienstverlener die een specifiek platform aanbiedt waarop gebruikers applicaties kunnen bouwen. Dit is een abstractie van IaaS, wat betekent dat de cloudprovider zorg draagt ​​voor alle details van CPU-types, geheugen, RAM, opslag, netwerken, etc. Zoals weergegeven in Figuur 2 heeft u als klant weinig controle over het daadwerkelijke platform, omdat in de cloud regelt de provider alle infrastructuurdetails voor u. Je vraagt ​​het gekozen platform aan en bouwt daarop het project. Voorbeelden van PaaS zijn Heroku.

Dit kan voor sommigen een te hoog niveau zijn, omdat ze het project niet noodzakelijkerwijs op een specifiek platform willen bouwen, maar eerder een reeks services rechtstreeks van de cloudprovider nodig hebben. Dit is waar SaaS in het spel komt.

2.3 Software-as-a-Service (SaaS)

SaaS vertegenwoordigt de meest voorkomende diensten die worden aangeboden door cloudserviceproviders. Ze zijn gericht op eindgebruikers en zijn voornamelijk toegankelijk via websites zoals Gmail, Google Docs, Dropbox, enz. Wat Google Cloud betreft, zijn er buiten hun computerstapel verschillende aanbiedingen die SaaS zijn. Deze omvatten Data Studio, Big Query, enz.

2.4 Samenvatting van cloudservices

bestanddelen van
IaaS
PaaS
SaaS

Wat krijg je?
U krijgt de infrastructuur en betaalt dienovereenkomstig. Vrijheid om software, besturingssysteem of samenstelling daarvan te gebruiken of te installeren.
Hier krijg je waar je om vraagt. Software, hardware, besturingssysteem, webomgeving. U krijgt een kant-en-klaar platform en betaalt dienovereenkomstig.
Hier hoeft u zich nergens zorgen over te maken. U krijgt een vooraf geïnstalleerd pakket dat is aangepast aan uw wensen en het enige dat u hoeft te doen, is dienovereenkomstig betalen.

Waarde
Basis computergebruik
Beste IaaS
In principe is dit een compleet dienstenpakket

Technische problemen
Technische kennis vereist
U krijgt de basisconfiguratie, maar u heeft nog steeds domeinkennis nodig.
U hoeft zich niet bezig te houden met technische details. De SaaS-provider biedt alles.

Waarmee werkt het?
Virtuele machines, opslag, servers, netwerk, load balancers, etc.
Runtime-omgevingen (zoals Java Runtime), databases (zoals MySQL, Oracle), webservers (zoals Tomcat, enz.)
Toepassingen zoals e-maildiensten (Gmail, Yahoo mail, enz.), sites voor sociale interactie (Facebook, enz.)

Populariteitsgrafiek
Populair onder zeer bekwame ontwikkelaars en onderzoekers die maatwerk nodig hebben op basis van hun vereisten of onderzoeksgebied
Het populairst onder ontwikkelaars omdat ze zich kunnen concentreren op het ontwikkelen van hun applicaties of scripts. Ze hoeven zich geen zorgen te maken over verkeersbelasting of serverbeheer, enz.
Het populairst onder gewone consumenten of bedrijven die software gebruiken zoals e-mail, het delen van bestanden en sociale netwerken, omdat ze zich geen zorgen hoeven te maken over technische details

Figuur 3: Samenvatting van het belangrijkste cloudaanbod | Afbeelding verstrekt Amir bij Blog Specia

3. Google Cloud Platform-computersuite

Nadat we in hoofdstuk 2 naar het typische aanbod van cloudproviders hebben gekeken, kunnen we dit vergelijken met het aanbod van Google Cloud.

3.1 Google Compute Engine (GCE) - IaaS

GCP: parseren van de Google Cloud Platform Compute Stack

Figuur 4: Google Compute Engine (GCE)-pictogram

GCE is een IaaS-aanbod van Google. Met GCE kunt u vrijelijk virtuele machines maken, CPU- en geheugenbronnen toewijzen, het opslagtype kiezen, zoals SSD of HDD, en de hoeveelheid geheugen. Het is bijna alsof u uw eigen computer/werkstation hebt gebouwd en alle details van de werking ervan hebt geregeld.

In GCE kun je kiezen uit micro-instanties met 0,3-coreprocessors en 1 GB RAM tot 96-core-monsters met meer dan 300 GB RAM. U kunt ook virtuele machines op maat maken voor uw workloads. Voor de geïnteresseerden: dit zijn virtuele machines die je kunt bouwen.

Machinetypen | Compute Engine-documentatie | Google Cloud

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

GCP: parseren van de Google Cloud Platform Compute Stack

Figuur 5: Google Kubernetes Engine (GKE)-pictogram

GKE is een uniek computeraanbod van GCP dat een abstractie is bovenop de Compute Engine. Meer in het algemeen kan GKE worden gecategoriseerd als Container as a Service (CaaS), ook wel Kubernetes as a Service (KaaS) genoemd, waarmee klanten hun Docker-containers eenvoudig kunnen uitvoeren in een volledig beheerde Kubernetes-omgeving. Voor degenen die niet bekend zijn met containers: containers helpen bij het modulariseren van services/applicaties, zodat verschillende containers verschillende services kunnen bevatten. Eén container kan bijvoorbeeld de voorkant van uw webapplicatie hosten en een andere kan de achterkant ervan bevatten. Kubernetes automatiseert, orkestreert, beheert en implementeert uw containers. Meer informatie hier.

Google Kubernetes-engine | Google Cloud

3.3 Google App Engine (GAE) - (PaaS)

GCP: parseren van de Google Cloud Platform Compute Stack

Figuur 6: Google App Engine (GAE)-pictogram

Zoals vermeld in paragraaf 2.2 staat PaaS boven IaaS en in het geval van GCP kan het ook worden beschouwd als een aanbod boven GKE. GAE is de aangepaste PaaS van Google, en de manier waarop ze zichzelf het beste omschrijven is: "Breng uw code mee en wij zorgen voor de rest."

Dit zorgt ervoor dat klanten die GAE gebruiken niet te maken hebben met onderliggende hardware/middleware en al over een vooraf geconfigureerd platform kunnen beschikken; het enige wat ze hoeven te doen is de code opgeven die nodig is om het uit te voeren.

GAE zorgt automatisch voor het schalen om aan de vraag en de vraag van gebruikers te voldoen. Dit betekent dat als uw bloemenverkoopwebsite plotseling piekt omdat Valentijnsdag nadert, GAE de onderliggende infrastructuur zal schalen om aan de vraag te voldoen en ervoor te zorgen dat uw website niet crasht als gevolg van de toegenomen vraag. . Dit betekent dat u betaalt voor precies de middelen die uw applicatie op dat moment nodig heeft.

GAE gebruikt Kubernetes of de native versie om dit allemaal af te handelen, 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 er alleen voor willen zorgen dat hun applicatie 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 geen zin hebt in het gedoe van het opzetten van servers, load-balancing en al het andere tijdrovende 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, niet voor mobiele applicaties.

Ter informatie: App Engine - Bouw schaalbare web- en mobiele backends in elke taal | Google Cloud

3.4 Google Cloud-functies - (FaaS)

GCP: parseren van de Google Cloud Platform Compute Stack

Figuur 7: Pictogram Google Cloud Functions (GCF).

Hopelijk heb je een trend opgemerkt door naar het vorige aanbod te kijken. Hoe hoger u klimt op de ladder van GCP-computeroplossingen, hoe minder u zich zorgen hoeft te maken over de onderliggende technologie. Deze piramide eindigt met de kleinst mogelijke rekeneenheid, een functie, zoals weergegeven in paragraaf 1.

GCF is een relatief nieuw GCP-aanbod dat zich nog in de bètafase bevindt (op het moment dat dit wordt geschreven). Met cloudfuncties kunnen bepaalde door de ontwikkelaar geschreven functies worden geactiveerd door een gebeurtenis.

Ze zijn gebeurtenisgestuurd en vormen de kern van het modewoord ‘serverloos’, wat betekent dat ze geen servers kennen. Cloudfuncties zijn heel eenvoudig en hebben veel verschillende toepassingen waarvoor gebeurtenisdenken vereist is. Elke keer dat een nieuwe gebruiker zich registreert, kan er bijvoorbeeld een cloudfunctie worden geactiveerd om ontwikkelaars te waarschuwen.

Wanneer een bepaalde sensor in een fabriek een bepaalde waarde bereikt, kan deze een cloudfunctie activeren die informatie verwerkt, of onderhoudspersoneel op de hoogte stelt, enz.

Cloudfuncties - Gebeurtenisgestuurde servercomputing | Google Cloud

Conclusie

In dit artikel hebben we gesproken over de verschillende cloudaanbiedingen zoals IaaS, PaaS, enz. en hoe de computerstack van Google deze verschillende lagen implementeert. We hebben gezien dat abstractielagen bij het overstappen van de ene servicecategorie naar de andere, zoals IaaS in Paas, minder kennis vereisen van de onderliggende.

Voor een bedrijf biedt dit cruciale flexibiliteit die niet alleen voldoet aan de operationele doelstellingen, maar ook aan andere belangrijke gebieden, zoals beveiliging en kosten. Samenvatten:

Compute Engine - hiermee kunt u uw eigen virtuele machine creëren door bepaalde hardwarebronnen toe te wijzen, bijvoorbeeld RAM, processor, geheugen. Het is bovendien behoorlijk praktisch en laagdrempelig.

Kubernetes-engine is een stap hoger dan Compute Engine en stelt u in staat Kubernetes en containers te gebruiken om uw applicatie te beheren, zodat u deze indien nodig kunt opschalen.

App-engine is een stapje hoger dan Kubernetes Engine, waardoor u zich alleen op uw code kunt concentreren, terwijl Google voor alle onderliggende platformvereisten zorgt.

Cloud-functies is de top van de computerpiramide, waarmee u een eenvoudige functie kunt schrijven die, wanneer deze wordt uitgevoerd, de gehele onderliggende infrastructuur gebruikt om het resultaat te berekenen en terug te geven.

Dank je wel!

Twitter: @martinomburajr

Bron: www.habr.com

Voeg een reactie