GCP: Analyse des Rechenstacks von Google Cloud Platform

Die Übersetzung des Artikels wurde speziell für die Studierenden des Kurses erstellt «Cloud-Dienste».

Interessiert es Sie, sich in diesem Bereich weiterzuentwickeln? Sehen Sie sich die Aufzeichnung des professionellen Workshops an «AWS EC2-Dienst», der von Egor Zuev — TeamLead bei InBit und Autor des Bildungsprogramms bei OTUS — durchgeführt wurde.

GCP: Analyse des Rechenstacks von Google Cloud Platform

Google Cloud Platform (GCP) bietet eine Vielzahl von Diensten an, insbesondere den Rechenstack, der Google Compute Engine (GCE), Google Kubernetes Engine (früher Container Engine) (GKE), Google App Engine (GAE) und Google Cloud Functions (GCF) umfasst. All diese Dienste haben coole Namen, aber ihre Funktionen und was sie einzigartig macht, ist möglicherweise nicht ganz offensichtlich. Dieser Artikel richtet sich an diejenigen, die gerade erst mit Cloud-Konzepten und insbesondere mit Cloud-Diensten und GCP vertraut werden.

GCP: Analyse des Rechenstacks von Google Cloud Platform

1. Rechenstack

Der Rechenstack kann als mehrschichtige Abstraktion angesehen werden, die das beschreibt, was ein Computersystem bereitstellen kann. Dieser Stack erhebt sich (moves up) von „Bare Metal“ (bare metal), das sich auf die tatsächlichen Hardwarekomponenten eines Computers bezieht, bis hin zu Funktionen (functions), die die kleinste Recheneinheit darstellen. Wichtig zu beachten ist, dass die Dienste beim Aufstieg im Stack aggregiert werden, zum Beispiel sollte der Abschnitt „Anwendungen“ (apps), der in Abbildung 1 unten gezeigt wird, alle grundlegenden Komponenten von Containern (containers), virtuellen Maschinen (virtual machines) und Hardware enthalten. Ebenso sollte die Komponente der virtuellen Maschinen die Hardware im Inneren enthalten, um zu funktionieren.

GCP: Analyse des Rechenstacks von Google Cloud Platform

Abbildung 1: Rechenstack | Bild entnommen von Google Cloud

Dieses Modell, das in Abbildung 1 dargestellt ist, bildet die Grundlage für die Beschreibung der Angebote von Cloud-Anbietern. Daher können einige Anbieter nur beispielsweise Container und Dienstleistungen mit geringer Qualität im Stack bereitstellen, während andere alles anbieten, was in Abbildung 1 angezeigt wird.

— Wenn Sie mit Cloud-Diensten vertraut sind, gehen Sie zu Abschnitt 3, um mehr über das Äquivalent von GCP zu erfahren
— Wenn Sie nur eine Zusammenfassung der Cloud-Dienste benötigen, gehen Sie zu Abschnitt 2.4

2. Cloud-Dienste

Die Welt des Cloud-Computing ist sehr vielfältig. Cloud-Anbieter bieten eine Vielzahl von Dienstleistungen an, die auf die unterschiedlichen Anforderungen der Kunden zugeschnitten sind. Möglicherweise haben Sie von Begriffen wie IaaS, PaaS, SaaS, FaaS, KaaS usw. gehört, die mit „aaS“ enden. Trotz der merkwürdigen Benennung bilden sie einen Satz von Dienstleistungen der Cloud-Anbieter. Ich stelle fest, dass es 3 Hauptangebote gibt, die „als Dienstleistung“ (as a Service) betrachtet werden und die Cloud-Anbieter fast immer bereitstellen.

Das sind IaaS, PaaS und SaaS, die für Infrastruktur als Dienstleistung (Infrastructure as a Service), Plattform als Dienstleistung (Platform as a Service) und Software als Dienstleistung (Software as a Service) stehen. Es ist wichtig, Cloud-Dienste als Ebenen der bereitgestellten Dienste zu visualisieren. Das bedeutet, dass Sie, wenn Sie auf- oder absteigen, als Kunde verschiedene Serviceoptionen überqueren, die entweder hinzugefügt oder aus dem Hauptangebot entfernt werden. Am besten betrachtet man dies als Pyramide, wie in Abbildung 2 dargestellt.
GCP: Analyse des Rechenstacks von Google Cloud Platform

Abbildung 2: Pyramide „aaS“ | Bild entnommen von Ruby Garage

2.1 Infrastruktur als Dienstleistung (IaaS)

Dies ist die niedrigste Ebene, die ein Cloud-Anbieter anbieten kann, und sie umfasst einen Cloud-Computing-Anbieter, der eine „nackte“ Infrastruktur bereitstellt, einschließlich Middleware, Netzwerkleitungen, Prozessoren, Grafikkarten, RAM, externem Speicher, Servern und Abbildungen grundlegender Betriebssysteme wie Debian Linux, CentOS, Windows usw.

Wenn Sie ein IaaS-Angebot bei einem Cloud-Anbieter bestellen, ist das, was Sie erwarten sollten. Es liegt an Ihnen als Kunde, diese Teile zusammenzustellen, um Ihr Geschäft zu betreiben. Der Umfang dessen, womit Sie arbeiten müssen, kann von Anbieter zu Anbieter variieren, aber in der Regel erhalten Sie einfach die Hardware und das Betriebssystem, während der Rest bei Ihnen bleibt. Beispiele für IaaS sind AWS Elastic Compute, Microsoft Azure und GCE.

Einige Menschen mögen es nicht, dass sie die Betriebssystemabbilder installieren und sich um das Netzwerk, das Lastenausgleich oder die Frage kümmern müssen, welcher Prozessor für ihre Workloads am besten geeignet ist. Hier steigen wir in der Pyramide zu PaaS auf.

2.2 Plattform als Dienstleistung (PaaS)

PaaS umfasst nur den Anbieter von Cloud-Diensten, der eine bestimmte Plattform anbietet, auf der Benutzer Anwendungen erstellen können. Dies ist eine Abstraktion über IaaS, was bedeutet, dass der Cloud-Anbieter alle Details zu Arten von CPUs, Speicher, RAM, Speicher, Netzwerken usw. übernimmt. Wie in Abbildung 2 gezeigt, haben Sie als Kunde nur begrenzte Kontrolle über die tatsächliche Plattform, da der Cloud-Anbieter sich um alle Infrastrukturdetails kümmert. Sie wählen die gewünschte Plattform aus und entwickeln darauf Ihr Projekt. Beispiele für PaaS sind Heroku.

Für einige mag dies ein zu hoher Grad sein, da sie nicht unbedingt ein Projekt auf der angegebenen Plattform aufbauen wollen, sondern eher eine Reihe von Diensten direkt vom Cloud-Anbieter benötigen. Hier kommt SaaS ins Spiel.

2.3 Software als Dienstleistung (SaaS)

SaaS sind die am häufigsten angebotenen Dienste von Cloud-Anbietern. Sie sind für Endbenutzer gedacht und in erster Linie über Websites verfügbar, z. B. Gmail, Google Docs, Dropbox usw. Im Hinblick auf Google Cloud gibt es mehrere Angebote außerhalb ihres Compute-Stacks, die SaaS sind. Dazu gehören Data Studio, Big Query usw.

2.4 Zusammenfassung der Cloud-Dienste

Komponenten
IaaS
PaaS
SaaS

Was Sie erhalten
Sie erhalten die Infrastruktur und zahlen entsprechend. Die Freiheit, jede Software, jedes Betriebssystem oder deren Kombination zu verwenden oder zu installieren.
Hier bekommen Sie, was Sie anfordern. Software, Hardware, Betriebssystem, Webumgebung. Sie erhalten eine einsatzbereite Plattform und zahlen entsprechend.
Hier müssen Sie sich um nichts kümmern. Ihnen wird ein vorkonfiguriertes Paket bereitgestellt, das Ihren Anforderungen entspricht, und Sie müssen nur entsprechend bezahlen.

Wert
Basisberechnungsebene
Spitze von IaaS
Dies ist im Wesentlichen ein vollständiges Dienstleistungspaket

Technische Komplexität
Technisches Wissen ist erforderlich
Ihnen wird eine Basis-Konfiguration zur Verfügung gestellt, aber Fachwissen ist noch notwendig.
Sie müssen sich nicht mit technischen Details beschäftigen. Der SaaS-Anbieter bietet alles.

Womit gearbeitet wird
Virtuelle Maschinen, Speicher, Server, Netzwerk, Lastverteiler usw.
Laufzeitumgebungen (wie Java Runtime), Datenbanken (wie MySQL, Oracle), Webserver (wie Tomcat usw.)
Anwendungen wie E-Mail-Dienste (Gmail, Yahoo Mail usw.), soziale Interaktions-Webseiten (Facebook usw.)

Beliebtheit Grafik
Beliebt bei hochqualifizierten Entwicklern, Forschern, die eine individuelle Anpassung an ihre Anforderungen oder Forschungsgebiete benötigen.
Am beliebtesten bei Entwicklern, da sie sich auf die Entwicklung ihrer Anwendungen oder Skripte konzentrieren können. Sie müssen sich nicht um den Datenverkehr oder das Server-Management usw. kümmern.
Am beliebtesten bei normalen Verbrauchern oder Unternehmen, die Software wie E-Mail, Dateiübertragungsdienste, soziale Netzwerke nutzen, da sie sich nicht um technische Details kümmern müssen.

Abbildung 3: Überblick über die wichtigsten Cloud-Angebote | Bild bereitgestellt Amir bei Blog Specia

3. Google Cloud Platform Rechenpaket

Nachdem wir die typischen Angebote der Cloud-Anbieter im Abschnitt 2 betrachtet haben, können wir diese mit den Angeboten von Google Cloud vergleichen.

3.1 Google Compute Engine (GCE) — IaaS

GCP: Analyse des Rechenstacks von Google Cloud Platform

Abbildung 4: Icon Google Compute Engine (GCE)

GCE ist ein IaaS-Angebot von Google. Mit GCE können Sie virtuelle Maschinen frei erstellen, CPU- und Arbeitsspeicherressourcen verteilen, den Speichertyp wählen, z. B. SSD oder HDD, sowie den Arbeitsspeicherumfang. Es ist fast so, als würden Sie Ihren eigenen Computer / Arbeitsstation erstellen und sich um alle Aspekte seines Betriebs kümmern.

In GCE können Sie von Mikroinstanzen mit 0,3-Kernprozessoren und 1 GB RAM bis zu 96-Kern-Monstern mit mehr als 300 GB RAM wählen. Sie können auch virtuelle Maschinen in benutzerdefinierten Größen für Ihre Workloads erstellen. Für Interessierte — das sind virtuelle Maschinen, die Sie zusammenstellen können.

Maschinentypen | Compute Engine Dokumentation | Google Cloud

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

GCP: Analyse des Rechenstacks von Google Cloud Platform

Abbildung 5: Icon Google Kubernetes Engine (GKE)

GKE ist ein einzigartiges Computing-Angebot von GCP, das eine Abstraktion über Compute Engine darstellt. Im weiteren Sinne kann GKE der Kategorie „Container als Dienst“ (CaaS) zugeordnet werden, die manchmal als „Kubernetes als Dienst“ (KaaS) bezeichnet wird, und es ermöglicht Kunden, ihre Docker-Container in einer vollständig verwalteten Kubernetes-Umgebung einfach auszuführen. Für diejenigen, die mit Containern nicht vertraut sind, helfen Container dabei, Services/Anwendungen modular zu gestalten, sodass verschiedene Container verschiedene Services enthalten können. Ein Container könnte beispielsweise die Benutzeroberfläche Ihrer Webanwendung hosten, während ein anderer den Backend-Teil enthält. Kubernetes automatisiert, koordiniert, verwaltet und implementiert Ihre Container. Mehr Informationen finden Sie hier.

Google Kubernetes Engine | Google Cloud

3.3 Google App Engine (GAE) – (PaaS)

GCP: Analyse des Rechenstacks von Google Cloud Platform

Abbildung 6: Google App Engine (GAE) Icon

Wie im Abschnitt 2.2 erwähnt, befindet sich PaaS über IaaS, und im Falle von GCP kann es ebenfalls als Angebot über GKE betrachtet werden. GAE ist ein spezialisiertes Google PaaS und wie sie selbst am besten beschreiben - „bringen Sie Ihren Code mit, und wir kümmern uns um den Rest“.

Dies garantiert, dass Kunden, die GAE nutzen, sich nicht mit der zugrunde liegenden Hardware/Software befassen müssen und bereits eine vorkonfigurierte Plattform zur Verfügung haben, die einsatzbereit ist; alles, was sie tun müssen, ist, den Code bereitzustellen, der für dessen Ausführung erforderlich ist.

GAE verarbeitet automatisch das Scaling, um die Last und die Nachfrage der Nutzer zu erfüllen, was bedeutet, dass wenn Ihre Blumenverkaufswebsite plötzlich einen Anstieg erlebt, weil der Valentinstag naht, GAE das Scaling der zugrunde liegenden Infrastruktur handhabt, um die Nachfrage zu decken und sicherzustellen, dass Ihre Website aufgrund des gestiegenen Interesses nicht ausfällt. Das bedeutet, dass Sie nur für die Ressourcen zahlen, die Ihre Anwendung in diesem Moment benötigt.

GAE verwendet Kubernetes oder seine integrierte Version, um all dies zu bewältigen, sodass Sie sich nicht darum kümmern müssen. GAE eignet sich am besten für Unternehmen, die sich nicht um die zugrunde liegende Infrastruktur kümmern möchten und nur sicherstellen wollen, dass ihre Anwendung optimal verfügbar ist.

Meiner Meinung nach ist GAE der beste Ausgangspunkt, wenn Sie ein Entwickler mit einer großartigen Idee sind, aber sich nicht mit der lästigen Arbeit der Serverkonfiguration, Lastverteilung und aller anderen zeitaufwändigen DevOps/SRE-Aufgaben beschäftigen möchten. Im Laufe der Zeit könnten Sie GKE und GCE ausprobieren, aber das ist nur meine Meinung.

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

Zur Orientierung: App Engine – Erstellen Sie skalierbare Web- und mobile Backends in jeder Sprache | Google Cloud

3.4 Google Cloud Functions – (FaaS)

GCP: Analyse des Rechenstacks von Google Cloud Platform

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

Ich hoffe, Sie haben einen Trend bemerkt, während Sie die vorhergehenden Vorschläge analysiert haben. Je höher Sie auf der Leiter der GCP-Computing-Lösungen steigen, desto weniger müssen Sie sich um die zugrunde liegende Technologie kümmern. Diese Pyramide endet mit der kleinsten möglichen Recheneinheit, einer Funktion, wie im Abschnitt 1 gezeigt.

GCF ist ein relativ neues GCP-Angebot, das sich noch in der Beta-Phase befindet (zum Zeitpunkt des Verfassens dieses Artikels). Cloud Functions ermöglichen das Ausführen bestimmter vom Entwickler geschriebener Funktionen bei einem bestimmten Ereignis.

Sie sind ereignisgesteuert und bilden die Grundlage für das Schlagwort „serverlos“, das bedeutet, dass es keine Server kennen. Cloud Functions sind sehr einfach und haben viele verschiedene Anwendungen, die ein ereignisorientiertes Denken erfordern. Zum Beispiel kann bei jedem neuen Benutzer, der sich registriert, eine Cloud-Funktion ausgelöst werden, um die Entwickler zu benachrichtigen.

In einer Fabrik kann ein bestimmter Sensor, der einen bestimmten Wert erreicht, eine Cloud-Funktion auslösen, die einige Informationen verarbeitet oder gewisses Personal benachrichtigt usw.

Cloud Functions – ereignisgesteuerte serverlose Berechnungen | Google Cloud

Fazit

In diesem Artikel haben wir über verschiedene Cloud-Angebote gesprochen, wie z.B. IaaS, PaaS usw., und wie der Google-Stack diese verschiedenen Ebenen realisiert. Wir haben gesehen, dass die Abstraktionsstufen beim Übergang von einer Dienstkategorie zur anderen, z.B. von IaaS zu PaaS, weniger Wissen über die zugrunde liegende Technologie erfordern.

Für Unternehmen bietet dies eine entscheidende Flexibilität, die nicht nur ihren operativen Zielen entspricht, sondern auch anderen wichtigen Bereichen wie Sicherheit und Kosten gerecht wird. Zusammenfassend:

Compute Engine — ermöglicht es Ihnen, Ihre eigene virtuelle Maschine zu erstellen, indem Sie bestimmte Hardware-Ressourcen zuweisen, z. B. RAM, Prozessor, Speicher. Es ist ebenso praktisch und niederebene.

Kubernetes Engine — ist ein Schritt über dem Compute Engine, der es Ihnen ermöglicht, Kubernetes und Container zur Verwaltung Ihrer Anwendung zu verwenden und sie bei Bedarf zu skalieren.

App Engine — ist ein Schritt über der Kubernetes Engine, die es Ihnen ermöglicht, sich ausschließlich auf Ihren Code zu konzentrieren, während Google alle Anforderungen der zugrunde liegenden Plattform bereitstellt.

Cloud-Functions — ist die Spitze der Rechenpyramide, die es Ihnen ermöglicht, eine einfache Funktion zu schreiben, die beim Ausführen die gesamte grundlegende Infrastruktur für die Berechnung und Rückgabe des Ergebnisses nutzt.

Vielen Dank für Ihre Aufmerksamkeit!

Twitter: @martinomburajr

Quelle: habr.com

60GB SSD 8Gb DDR4