Die Ăbersetzung des Artikels wurde speziell fĂŒr die Studierenden des Kurses erstellt .
Interessiert es Sie, sich in diesem Bereich weiterzuentwickeln? Sehen Sie sich die Aufzeichnung des professionellen Workshops an , der von Egor Zuev â TeamLead bei InBit und Autor des Bildungsprogramms bei OTUS â durchgefĂŒhrt wurde.

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.

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.

Abbildung 1: Rechenstack | Bild entnommen von
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.

Abbildung 2: Pyramide âaaSâ | Bild entnommen von
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
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

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.
3.2. Google Kubernetes Engine (GKE) â (CaaS / Kaas)

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.
3.3 Google App Engine (GAE) â (PaaS)

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:
3.4 Google Cloud Functions â (FaaS)

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.
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:
Quelle: habr.com
