GCP: Aufschlüsselung des Google Cloud Platform Computing Stack

Die Übersetzung des Artikels wurde speziell für die Studierenden des Kurses erstellt "Cloud-Services".

Haben Sie Interesse, sich in diese Richtung weiterzuentwickeln? Sehen Sie sich die Aufzeichnung eines professionellen Meisterkurses an „AWS EC2-Dienst“, das von Egor Zuev – TeamLead bei InBit und Autor des Bildungsprogramms bei OTUS – durchgeführt wurde.

GCP: Aufschlüsselung des Google Cloud Platform Computing Stack

Google Cloud Platform (GCP) bietet viele Dienste und insbesondere den Computing-Stack, der Google Compute Engine (GCE), Google Kubernetes Engine (ehemals Container Engine) (GKE), Google App Engine (GAE) und Google Cloud Functions (GCF) enthält. . Alle diese Dienste haben coole Namen, aber ihre Funktionen und die Besonderheiten, die sie voneinander unterscheiden, sind möglicherweise nicht ganz klar. Dieser Artikel richtet sich an diejenigen, die mit Cloud-Konzepten, insbesondere Cloud-Diensten und GCP, noch keine Erfahrung haben.

GCP: Aufschlüsselung des Google Cloud Platform Computing Stack

1. Rechenstapel

Ein Computing-Stack kann als eine mehrschichtige Abstraktion darüber betrachtet werden, was ein Computersystem leisten kann. Dieser Stapel steigt auf (geht hoch) aus „blankem Eisen“ (Rohmetall), bezogen auf die eigentlichen Hardwarekomponenten des Computers, bis hin zu den Funktionen (Funktionen), die die kleinste Berechnungseinheit darstellen. Beim Stapel ist es wichtig zu beachten, dass Dienste aggregiert werden, wenn Sie im Stapel nach oben wechseln, z. B. im Abschnitt „Anwendungen“ (Apps), wie in Abbildung 1 unten dargestellt, sollte alle grundlegenden Containerkomponenten enthalten (Behälter), virtuelle Maschinen (virtuelle Maschinen) und Eisen. Ebenso muss die Komponente der virtuellen Maschinen Hardware enthalten, damit sie funktioniert.

GCP: Aufschlüsselung des Google Cloud Platform Computing Stack

Abbildung 1: Compute-Stack | Bildquelle: Cumolocity

Dieses in Abbildung 1 dargestellte Modell ist die Grundlage für die Beschreibung von Angeboten von Cloud-Anbietern. So können manche Anbieter entlang des Stacks beispielsweise nur qualitativ minderwertige Container und Services bereitstellen, während andere alles bereitstellen können, was in Abbildung 1 dargestellt ist.

— Wenn Sie mit Cloud-Diensten vertraut sind, gehen Sie zu Sektion 3um das GCP-Äquivalent zu sehen
— Wenn Sie nur eine Zusammenfassung der Cloud-Dienste wünschen, gehen Sie zu Sektion 2.4

2. Cloud-Dienste

Die Welt des Cloud Computing ist sehr vielfältig. Cloud-Anbieter bieten eine Vielzahl von Diensten an, die auf unterschiedliche Kundenanforderungen zugeschnitten sind. Möglicherweise haben Sie schon einmal von Begriffen wie IaaS, PaaS, SaaS, FaaS, KaaS usw. gehört. mit allen Buchstaben des Alphabets gefolgt von „aaS“. Trotz der seltsamen Namenskonvention bilden sie eine Reihe von Cloud-Anbieterdiensten. Ich erkläre, dass es drei Hauptangebote „as a Service“ gibt, die Cloud-Anbieter fast immer anbieten.

Dabei handelt es sich um IaaS, PaaS und SaaS, die jeweils für Infrastructure as a Service, Platform as a Service und Software as a Service stehen. Es ist wichtig, Cloud-Dienste als Schichten bereitgestellter Dienste zu visualisieren. Das bedeutet, dass Sie als Kunde beim Aufstieg oder Abstieg von einer Ebene zur anderen verschiedene Serviceoptionen nutzen, die entweder zum Kernangebot hinzugefügt oder davon abgezogen werden. Stellen Sie sich das Ganze am besten wie eine Pyramide vor, wie in Abbildung 2 dargestellt.
GCP: Aufschlüsselung des Google Cloud Platform Computing Stack

Abbildung 2: aaS-Pyramide | Bildquelle: Ruby Garage

2.1 Infrastruktur als Service (IaaS)

Dies ist die niedrigste Stufe, die ein Cloud-Anbieter anbieten kann und beinhaltet, dass der Cloud-Anbieter die Bare-Metal-Infrastruktur bereitstellt, einschließlich Middleware, Netzwerkkabel, CPUs, GPUs, RAM, externen Speicher, Server und zugrunde liegende Betriebssystem-Images, z. B. Debian Linux, CentOS, Windows , usw.

Wenn Sie ein Angebot bei einem Cloud-IaaS-Anbieter bestellen, können Sie damit rechnen, Folgendes zu erhalten. Es liegt an Ihnen als Kunde, diese Teile für den Betrieb Ihres Unternehmens zusammenzustellen. Der Umfang dessen, womit Sie arbeiten müssen, kann von Anbieter zu Anbieter variieren, aber im Allgemeinen erhalten Sie nur die Hardware und das Betriebssystem und der Rest liegt bei Ihnen. Beispiele für IaaS sind AWS Elastic Compute, Microsoft Azure und GCE.

Manchen Leuten gefällt es möglicherweise nicht, dass sie Betriebssystem-Images installieren und sich um Netzwerke, Lastausgleich oder die Frage kümmern müssen, welcher Prozessortyp für ihre Arbeitslast ideal ist. Hier bewegen wir uns die Pyramide hinauf in Richtung PaaS.

2.2 Plattform als Service (PaaS)

Bei PaaS handelt es sich lediglich um einen Cloud-Dienstanbieter, der eine bestimmte Plattform anbietet, auf der Benutzer Anwendungen erstellen können. Dies ist eine Abstraktion gegenüber IaaS, was bedeutet, dass der Cloud-Anbieter sich um alle Details zu CPU-Typen, Arbeitsspeicher, RAM, Speicher, Netzwerken usw. kümmert. Wie in Abbildung 2 dargestellt, haben Sie als Kunde kaum Kontrolle über die eigentliche Plattform, weil In der Cloud übernimmt der Anbieter alle Infrastrukturdetails für Sie. Sie fordern die gewählte Plattform an und bauen das Projekt darauf auf. Beispiele für PaaS sind Heroku.

Für manche ist das möglicherweise ein zu hohes Niveau, da sie das Projekt nicht unbedingt auf einer bestimmten Plattform aufbauen möchten, sondern eine Reihe von Diensten direkt vom Cloud-Anbieter benötigen. Hier kommt SaaS ins Spiel.

2.3 Software as a Service (SaaS)

SaaS stellt die am häufigsten von Cloud-Dienstanbietern bereitgestellten Dienste dar. Sie richten sich an Endbenutzer und sind hauptsächlich über Websites wie Gmail, Google Docs, Dropbox usw. zugänglich. Was Google Cloud betrifft, gibt es außerhalb seines Computing-Stacks mehrere Angebote, bei denen es sich um SaaS handelt. Dazu gehören Data Studio, Big Query usw.

2.4 Zusammenfassung der Cloud-Dienste

Komponenten
IaaS
PaaS
SaaS

Was bekommst du?
Sie erhalten die Infrastruktur und zahlen entsprechend. Freiheit zur Nutzung oder Installation jeglicher Software, Betriebssysteme oder Kompositionen davon.
Hier bekommen Sie, was Sie verlangen. Software, Hardware, Betriebssystem, Webumgebung. Sie erhalten eine betriebsbereite Plattform und zahlen entsprechend.
Hier brauchen Sie sich um nichts zu kümmern. Sie erhalten ein vorinstalliertes, auf Ihre Anforderungen zugeschnittenes Paket und müssen nur noch entsprechend bezahlen.

Wert
Grundlegendes Rechnen
Top-IaaS
Dabei handelt es sich im Wesentlichen um ein komplettes Leistungspaket

Technische Schwierigkeiten
Technische Kenntnisse erforderlich
Sie erhalten die Grundkonfiguration, benötigen aber noch Domänenkenntnisse.
Sie müssen sich nicht um technische Details kümmern. Der SaaS-Anbieter stellt alles bereit.

Womit funktioniert es?
Virtuelle Maschinen, Speicher, Server, Netzwerk, Load Balancer usw.
Laufzeitumgebungen (wie Java Runtime), Datenbanken (wie MySQL, Oracle), Webserver (wie Tomcat usw.)
Anwendungen wie E-Mail-Dienste (Gmail, Yahoo Mail usw.), soziale Interaktionsseiten (Facebook usw.)

Beliebtheitsdiagramm
Beliebt bei hochqualifizierten Entwicklern und Forschern, die eine Anpassung an ihre Anforderungen oder ihr Forschungsgebiet benötigen
Am beliebtesten bei Entwicklern, da sie sich auf die Entwicklung ihrer Anwendungen oder Skripte konzentrieren können. Sie müssen sich keine Gedanken über die Verkehrslast, die Serververwaltung usw. machen.
Am beliebtesten bei normalen Verbrauchern oder Unternehmen, die Software wie E-Mail, Dateifreigabe oder soziale Netzwerke verwenden, da sie sich nicht um technische Details kümmern müssen

Abbildung 3: Zusammenfassung der wichtigsten Cloud-Angebote | Bild bereitgestellt Amir bei Blog Specia

3. Google Cloud Platform Computing Suite

Nachdem wir uns in Abschnitt 2 die Angebote typischer Cloud-Anbieter angesehen haben, können wir sie mit den Angeboten von Google Cloud vergleichen.

3.1 Google Compute Engine (GCE) – IaaS

GCP: Aufschlüsselung des Google Cloud Platform Computing Stack

Abbildung 4: Google Compute Engine (GCE)-Symbol

GCE ist ein IaaS-Angebot von Google. Mit GCE können Sie virtuelle Maschinen frei erstellen, CPU- und Speicherressourcen zuweisen, den Speichertyp wie SSD oder HDD und die Speichermenge auswählen. Es ist fast so, als hätten Sie Ihren eigenen Computer/Ihre eigene Workstation gebaut und sich um alle Details seiner Funktionsweise gekümmert.

In GCE können Sie zwischen Mikroinstanzen mit 0,3-Kern-Prozessoren und 1 GB RAM bis hin zu 96-Kern-Monstern mit über 300 GB RAM wählen. Sie können auch virtuelle Maschinen in benutzerdefinierter Größe für Ihre Arbeitslasten erstellen. Für Interessierte: Dies sind virtuelle Maschinen, die Sie erstellen können.

Maschinentypen | Compute Engine-Dokumentation | Google Cloud

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

GCP: Aufschlüsselung des Google Cloud Platform Computing Stack

Abbildung 5: Symbol für Google Kubernetes Engine (GKE).

GKE ist ein einzigartiges Computing-Angebot von GCP, das eine Abstraktion auf der Compute Engine darstellt. Allgemeiner kann GKE als Container as a Service (CaaS) kategorisiert werden, manchmal auch als Kubernetes as a Service (KaaS) bezeichnet, was es Kunden ermöglicht, ihre Docker-Container problemlos in einer vollständig verwalteten Kubernetes-Umgebung auszuführen. Für diejenigen, die mit Containern nicht vertraut sind: Container helfen bei der Modularisierung von Diensten/Anwendungen, sodass verschiedene Container unterschiedliche Dienste enthalten können. Beispielsweise kann ein Container das Front-End Ihrer Webanwendung hosten und ein anderer das Back-End davon. Kubernetes automatisiert, orchestriert, verwaltet und stellt Ihre Container bereit. Weitere Informationen hier.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) – (PaaS)

GCP: Aufschlüsselung des Google Cloud Platform Computing Stack

Abbildung 6: Google App Engine (GAE)-Symbol

Wie in Abschnitt 2.2 erwähnt, steht PaaS über IaaS und kann im Fall von GCP auch als ein Angebot über GKE betrachtet werden. GAE ist das benutzerdefinierte PaaS von Google und die Art und Weise, wie sie sich selbst am besten beschreiben: „Bringen Sie Ihren Code mit und wir kümmern uns um den Rest.“

Dadurch wird sichergestellt, dass Kunden, die GAE nutzen, sich nicht mit der zugrunde liegenden Hardware/Middleware auseinandersetzen müssen und bereits über eine vorkonfigurierte Plattform verfügen können; Sie müssen lediglich den zum Ausführen erforderlichen Code bereitstellen.

GAE kümmert sich automatisch um die Skalierung, um der Auslastung und Benutzernachfrage gerecht zu werden. Das heißt, wenn Ihre Blumenverkaufs-Website plötzlich Spitzenwerte erreicht, weil der Valentinstag naht, übernimmt GAE die Skalierung der zugrunde liegenden Infrastruktur, um der Nachfrage gerecht zu werden, und stellt sicher, dass Ihre Website nicht aufgrund der erhöhten Nachfrage abstürzt. Das bedeutet, dass Sie genau die Ressourcen bezahlen, die Ihre Anwendung gerade benötigt.

GAE verwendet Kubernetes oder seine native Version, um all dies zu bewältigen, sodass Sie sich darüber keine Sorgen machen müssen. GAE eignet sich am besten für Unternehmen, die kein Interesse an der zugrunde liegenden Infrastruktur haben und denen es lediglich darum geht, sicherzustellen, dass ihre Anwendung bestmöglich zugänglich ist.

Meiner Meinung nach ist GAE der beste Ausgangspunkt, wenn Sie als Entwickler eine tolle Idee haben, sich aber nicht mit der mühsamen Einrichtung von Servern, dem Lastausgleich und all den anderen zeitaufwändigen Entwicklungs-/SRE-Arbeiten herumschlagen möchten . Mit der Zeit könnte man GKE und GCE ausprobieren, aber das ist nur meine Meinung.

Haftungsausschluss: AppEngine wird für Webanwendungen verwendet, nicht für mobile Anwendungen.

Zur Überprüfung: App Engine – Erstellen Sie skalierbare Web- und Mobil-Backends in jeder Sprache | Google Cloud

3.4 Google Cloud-Funktionen – (FaaS)

GCP: Aufschlüsselung des Google Cloud Platform Computing Stack

Abbildung 7: Symbol für Google Cloud Functions (GCF).

Hoffentlich ist Ihnen beim Blick auf die bisherigen Angebote ein Trend aufgefallen. Je höher Sie die Leiter der GCP-Computing-Lösung erklimmen, desto weniger müssen Sie sich um die zugrunde liegende Technologie kümmern. Diese Pyramide endet mit der kleinstmöglichen Recheneinheit, einer Funktion, wie in Abschnitt 1 gezeigt.

GCF ist ein relativ neues GCP-Angebot, das sich (zum Zeitpunkt des Verfassens dieses Artikels) noch in der Betaphase befindet. Cloud-Funktionen ermöglichen es, bestimmte vom Entwickler geschriebene Funktionen durch ein Ereignis auszulösen.

Sie sind ereignisgesteuert und stehen im Mittelpunkt des Schlagworts „serverlos“, was bedeutet, dass sie keine Server kennen. Cloud-Funktionen sind sehr einfach und haben viele verschiedene Verwendungsmöglichkeiten, die ereignisorientiertes Denken erfordern. Beispielsweise kann jedes Mal, wenn sich ein neuer Benutzer registriert, eine Cloud-Funktion ausgelöst werden, um Entwickler zu alarmieren.

Wenn in einer Fabrik ein bestimmter Sensor einen bestimmten Wert erreicht, kann er eine Cloud-Funktion auslösen, die einige Informationen verarbeitet oder Wartungspersonal benachrichtigt usw.

Cloud Functions – Ereignisgesteuertes Server-Computing | Google Cloud

Abschluss

In diesem Artikel haben wir über die verschiedenen Cloud-Angebote wie IaaS, PaaS usw. gesprochen und darüber, wie der Computing-Stack von Google diese verschiedenen Schichten implementiert. Wir haben gesehen, dass Abstraktionsebenen beim Wechsel von einer Servicekategorie zu einer anderen, wie z. B. IaaS in Paas, weniger Kenntnisse über die zugrunde liegende Ebene erfordern.

Für ein Unternehmen bedeutet dies eine entscheidende Flexibilität, die nicht nur seine betrieblichen Ziele, sondern auch andere Schlüsselbereiche wie Sicherheit und Kosten erfüllt. Zusammenfassen:

Berechnen Motor - ermöglicht Ihnen die Erstellung Ihrer eigenen virtuellen Maschine durch Zuweisung bestimmter Hardwareressourcen, z. B. RAM, Prozessor, Speicher. Es ist auch ziemlich praktisch und niedrig.

Kubernetes-Engine ist eine Weiterentwicklung von Compute Engine und ermöglicht Ihnen die Verwendung von Kubernetes und Containern zur Verwaltung Ihrer Anwendung, sodass Sie sie nach Bedarf skalieren können.

App-Engine ist eine Weiterentwicklung von Kubernetes Engine und ermöglicht es Ihnen, sich nur auf Ihren Code zu konzentrieren, während Google sich um alle zugrunde liegenden Plattformanforderungen kümmert.

Cloud-Funktionen ist die Spitze der Rechenpyramide und ermöglicht Ihnen das Schreiben einer einfachen Funktion, die bei ihrer Ausführung die gesamte zugrunde liegende Infrastruktur nutzt, um das Ergebnis zu berechnen und zurückzugeben.

Danke!

Twitter: @martinomburajr

Source: habr.com

Kommentar hinzufügen