Die Übersetzung des Artikels wurde speziell für die Studierenden des Kurses erstellt. .
Möchten Sie sich in diesem Bereich weiterentwickeln? Sehen Sie sich die Aufzeichnung des professionellen Workshops an. , geleitet von Yegor Zuev – Teamleiter bei InBit und Autor der Bildungsprogramme bei OTUS.

Die Google Cloud Platform (GCP) bietet eine Vielzahl von Diensten, insbesondere einen Rechenstapel, der Google Compute Engine (GCE), Google Kubernetes Engine (früher – Container Engine) (GKE), Google App Engine (GAE) und Google Cloud Functions (GCF) umfasst. Alle diese Dienste haben coole Namen, ihre Funktionen und was sie im Vergleich zueinander einzigartig macht, sind jedoch nicht immer ganz offensichtlich. Dieser Artikel richtet sich an diejenigen, die sich mit den Konzepten der Cloud, insbesondere mit Cloud-Diensten und GCP, vertraut machen.

1. Rechenstapel
Der Rechenstapel kann als mehrstufige Abstraktion dessen verstanden werden, was ein Computersystem bereitstellen kann. Dieser Stapel reicht vonbewegt sich nach oben„Bare Metal“ (Bare Metal), das sich auf die tatsächlichen Hardwarekomponenten eines Computers bezieht, bis hin zu Funktionen (Funktionen), die die kleinste Recheneinheit darstellen. Wichtig zu beachten ist, dass Dienste beim Übergang durch den Stack aggregiert werden, zum Beispiel sollte der Abschnitt „Anwendungen“ (Apps), wie in Abbildung 1 unten gezeigt, alle grundlegenden Komponenten von Containern (Containern), virtuellen Maschinen (virtuellen Maschinen) und Hardware enthalten. Auf die gleiche Weise sollte die Komponente der virtuellen Maschinen auch die Hardware 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. Einige Anbieter könnten beispielsweise nur Container und Dienste in niedrigerer Qualität im Stack anbieten, während andere alles bieten, was in Abbildung 1 dargestellt ist.
— Wenn Sie mit Cloud-Diensten vertraut sind, gehen Sie zu Abschnitt 3, um das Äquivalent zu GCP zu erkunden.
— Wenn Sie nur eine Zusammenfassung der Cloud-Dienste benötigen, gehen Sie zu Abschnitt 2.4
2. Cloud-Dienste
Die Welt der Cloud-Computing ist äußerst 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 alle mit „aaS“ enden. Trotz dieser ungewöhnlichen Bezeichnung bilden sie eine Reihe von Services der Cloud-Anbieter. Ich möchte darauf hinweisen, dass es drei Hauptangebote 'als Dienstleistung' (as a Service) gibt, die Cloud-Anbieter fast immer anbieten.
Das sind IaaS, PaaS und SaaS, was respektive Infrastruktur als Dienstleistung (Infrastructure as a Service), Plattform als Dienstleistung (Platform as a Service) und Software als Dienstleistung (Software as a Service) bedeutet. Es ist wichtig, sich Cloud-Dienste als Ebenen der bereitgestellten Dienstleistungen vorzustellen. Das bedeutet, dass Sie als Kunde beim Auf- oder Abstieg von einer Ebene zur nächsten verschiedene Serviceoptionen überqueren, die entweder hinzugefügt oder aus dem Hauptangebot entfernt werden. Am besten stellt man sich das als Pyramide vor, wie in Abbildung 2 gezeigt.

Abbildung 2: 'aaS'-Pyramide | Bild entnommen von
2.1 Infrastruktur als Dienstleistung (IaaS)
Dies ist die grundlegendste Ebene, die ein Cloud-Anbieter anbieten kann. Sie umfasst den Cloud-Computing-Anbieter, der die „nackte“ Infrastruktur bereitstellt, einschließlich Middleware, Netzwerkkabel, Prozessoren, Grafikkarten, Arbeitsspeicher, externen Speicher, Server und Basissystembilder wie Debian Linux, CentOS, Windows usw.
Wenn Sie ein IaaS-Angebot bei einem Cloud-Anbieter bestellen, ist das das, was Sie erwarten können. Es bleibt Ihnen als Kunde überlassen, diese Komponenten zusammenzustellen, um Ihr Geschäft zu betreiben. Der Umfang dessen, womit Sie arbeiten müssen, kann von Anbieter zu Anbieter variieren, aber im Allgemeinen erhalten Sie lediglich die Hardware und das Betriebssystem; um alles andere müssen Sie sich kümmern. Beispiele für IaaS sind AWS Elastic Compute, Microsoft Azure und GCE.
Einigen Personen könnte missfallen, dass sie Betriebssystem-Images installieren und sich um Netzwerk, Lastenausgleich oder die Auswahl des idealen Prozessortyps für ihre Arbeitslast kümmern müssen. An dieser Stelle bewegen wir uns in der Pyramide weiter hinauf zu PaaS.
2.2 Plattform als Dienstleistung (PaaS)
PaaS umfasst lediglich einen Cloud-Dienstanbieter, 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 CPU-Typen, Speicher, RAM, Speicherkapazität, Netzwerken usw. verwaltet. Wie in Abbildung 2 gezeigt, haben Sie als Kunde nur begrenzte Kontrolle über die tatsächliche Plattform, da der Cloud-Anbieter alle Infrastrukturdetails für Sie übernimmt. Sie fordern die gewählte Plattform an und entwickeln Ihr Projekt darauf. Beispiele für PaaS sind Heroku.
Für manche könnte dies ein zu hoher Grad sein, da sie nicht unbedingt ein Projekt auf der angegebenen Plattform erstellen möchten, sondern vielmehr eine Reihe von Dienstleistungen direkt vom Cloud-Dienstanbieter benötigen. Hier kommt SaaS ins Spiel.
2.3 Software als Dienstleistung (SaaS)
SaaS sind die gängigsten Dienste, die von Cloud-Anbietern bereitgestellt werden. Sie richten sich an Endbenutzer und sind hauptsächlich über Websites zugänglich, wie zum Beispiel Gmail, Google Docs, Dropbox usw. Im Hinblick auf Google Cloud gibt es einige Angebote, die außerhalb ihres Compute-Stacks als SaaS gelten. Dazu gehören Data Studio, BigQuery usw.
2.4 Zusammenfassung der Cloud-Dienste
Komponenten
IaaS
PaaS
SaaS
Was Sie erhalten
Sie erhalten die Infrastruktur und zahlen entsprechend. Freiheit, jede Software, jedes Betriebssystem oder deren Kombination zu verwenden oder zu installieren.
Hier erhalten Sie genau das, was Sie angefordert haben. Software, Hardware, Betriebssystem, Webumgebung. Sie bekommen eine sofort einsatzbereite Plattform und zahlen entsprechend.
Hier müssen Sie sich um nichts kümmern. Ihnen wird ein vorinstalliertes Paket bereitgestellt, das Ihren Anforderungen entspricht, und Sie müssen nur entsprechend zahlen.
Bedeutung
Basiscomputing
Spitze von IaaS
Es handelt sich im Grunde um ein vollständiges Dienstleistungsangebot
Technische Komplexitäten
Technisches Wissen ist erforderlich
Sie erhalten eine grundlegende Konfiguration, benötigen jedoch weiterhin fachspezifisches Wissen.
Keine Sorge um technische Details. Der SaaS-Anbieter kümmert sich um alles.
Womit arbeiten wir
Virtuelle Maschinen, Speicher, Server, Netzwerke, Lastenausgleicher usw.
Laufzeitumgebungen (wie Java Runtime), Datenbanken (wie MySQL, Oracle), Webserver (wie Tomcat usw.)
Anwendungen wie E-Mail-Dienste (Gmail, Yahoo Mail usw.), soziale Interaktionsplattformen (Facebook usw.)
Beliebtheitsgrafik
Beliebt bei hochqualifizierten Entwicklern und Forschern, die eine Anpassung nach ihren Anforderungen oder Forschungsbereichen benötigen.
Am populärsten bei Entwicklern, da sie sich auf die Entwicklung ihrer Anwendungen oder Skripte konzentrieren können, ohne sich um den Traffic oder das Servermanagement kümmern zu müssen.
Am häufigsten genutzt von durchschnittlichen Verbrauchern oder Unternehmen, die Software wie E-Mail, File-Sharing und soziale Netzwerke verwenden, da sie sich nicht um technische Details kümmern müssen.
Abbildung 3: Übersicht der wichtigsten Cloud-Angebote | Bild bereitgestellt von
3. Google Cloud Platform Compute-Paket
Nachdem wir die typischen Angebote von Cloud-Anbietern in 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 der Google Compute Engine (GCE)
GCE ist das IaaS-Angebot von Google. Mit GCE können Sie frei virtuelle Maschinen erstellen, CPU- und Speicherressourcen zuweisen, Speicherarten wie SSD oder HDD auswählen und den Arbeitsspeicher anpassen. Es ist fast so, als würden Sie Ihren eigenen Computer/Arbeitsplatz erstellen und sich um alle Details kümmern.
In GCE können Sie von Mikroinstanzen mit 0,3-Kern-Prozessoren und 1 GB RAM bis hin zu leistungsstarken 96-Kern-Servern mit mehr als 300 GB RAM wählen. Außerdem können Sie virtuelle Maschinen in maßgeschneiderten Größen für Ihre Workloads erstellen. Für Interessierte sind dies die virtuellen Maschinen, die Sie zusammenstellen können.
3.2. Google Kubernetes Engine (GKE) – (CaaS / Kaas)

Abbildung 5: Icon der 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, manchmal auch „Kubernetes als Dienst“ (KaaS) genannt, das es den Kunden ermöglicht, ihre Docker-Container einfach in einer vollständig verwalteten Kubernetes-Umgebung auszuführen. Für diejenigen, die mit Containern nicht vertraut sind, helfen Container dabei, Dienste/Anwendungen modular zu gestalten, sodass unterschiedliche Container verschiedene Dienste enthalten können. Beispielsweise kann ein Container das Frontend Ihrer Webanwendung und ein anderer das Backend enthalten. Kubernetes automatisiert, koordiniert, verwaltet und implementiert Ihre Container. Weitere Informationen hier.
3.3 Google App Engine (GAE) — (PaaS)

Abbildung 6: Symbol für Google App Engine (GAE)
Wie im Abschnitt 2.2 erwähnt, steht PaaS über IaaS, und im Fall von GCP kann es auch als Angebot über GKE betrachtet werden. GAE ist eine spezialisierte Google PaaS, und wie sie selbst am besten beschreiben — „Bringen Sie Ihren Code mit und wir kümmern uns um den Rest“.
Dies stellt sicher, dass Kunden, die GAE verwenden, sich nicht mit der zugrunde liegenden Hardware oder Middleware auseinandersetzen müssen und bereits eine vorkonfigurierte Plattform bereit haben, die einsatzbereit ist; alles, was sie tun müssen, ist, den erforderlichen Code bereitzustellen, um ihn zum Laufen zu bringen.
GAE kümmert sich automatisch um das Skalieren, um die Last und die Nachfrage der Nutzer zu erfüllen. Das bedeutet, dass wenn Ihre Website, die Blumen verkauft, plötzlich einen Anstieg erlebt, weil der Valentinstag bevorsteht, GAE das Skalieren der zugrunde liegenden Infrastruktur übernimmt, um die Nachfrage zu decken und sicherzustellen, dass Ihre Website aufgrund des erhöhten Bedarfs nicht ausfällt. Das bedeutet, dass Sie nur für die Ressourcen bezahlen, die Ihre Anwendung in diesem Moment benötigt.
GAE verwendet Kubernetes oder eine integrierte Version davon, um all dies zu bewältigen, damit Sie sich keine Gedanken darüber machen müssen. GAE eignet sich am besten für Unternehmen, die nicht an der zugrunde liegenden Infrastruktur interessiert sind und sich nur darum kümmern, dass ihre Anwendung optimal verfügbar ist.
Meiner Meinung nach ist GAE der beste Ausgangspunkt für Entwickler mit einer großartigen Idee, die sich jedoch nicht mit der mühsamen Serverkonfiguration, Lastverteilung und anderen aufwendigen 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 Einführung:
3.4 Google Cloud Functions – (FaaS)

Abbildung 7: Symbol für Google Cloud Functions (GCF)
Ich hoffe, Sie haben den Trend bemerkt, während Sie die vorherigen Aussagen analysiert haben. Je höher Sie auf der Treppe der GCP-Computing-Lösungen steigen, desto weniger müssen Sie sich um die zugrunde liegenden Technologien kümmern. Diese Pyramide endet mit der kleinsten verfügbaren Recheneinheit, einer Funktion, wie in Abschnitt 1 dargestellt.
GCF ist ein relativ neues Angebot von GCP, das sich noch in der Beta-Phase befindet (zum Zeitpunkt der Erstellung dieses Artikels). Cloud-Funktionen ermöglichen es bestimmten Funktionen, die von Entwicklern geschrieben wurden, basierend auf einem bestimmten Ereignis ausgeführt zu werden.
Sie werden ereignisbasiert verwaltet und bilden die Grundlage des modischen Begriffs „serverlos“, was bedeutet, dass sie keine Server kennen. Cloud-Funktionen sind sehr einfach und haben viele verschiedene Anwendungen, die ein ereignisbasiertes Denken erfordern. Zum Beispiel kann jedes Mal, wenn sich ein neuer Benutzer registriert, eine Cloud-Funktion ausgelöst werden, um die Entwickler zu benachrichtigen.
In der Fabrik kann, wenn ein bestimmter Sensor einen bestimmten Wert erreicht, eine Cloud-Funktion ausgelöst werden, die einige Informationen verarbeitet oder bestimmtes Personal benachrichtigt, usw.
Fazit
In diesem Artikel haben wir über verschiedene Cloud-Angebote gesprochen, wie z.B. IaaS, PaaS usw., und wie der Google-Computing-Stack diese verschiedenen Ebenen umsetzt. Wir haben gesehen, dass die Abstraktionsstufen beim Wechsel von einer Dienstekategorie zur anderen, z.B. von IaaS zu PaaS, weniger Wissen über die zugrunde liegende Infrastruktur erfordern.
Für Unternehmen bietet dies entscheidende Flexibilität, die nicht nur den operativen Zielen entspricht, sondern auch andere wichtige Bereiche wie Sicherheit und Kosten berücksichtigt. Zusammengefasst:
Compute Engine — ermöglicht es Ihnen, Ihre eigene virtuelle Maschine zu erstellen, indem bestimmte Hardware-Ressourcen wie RAM, Prozessor und Speicher zugewiesen werden. Es ist ebenso praktisch und tiefgreifend.
Kubernetes Engine — ist eine Stufe über Compute Engine, die es Ihnen ermöglicht, Kubernetes und Container zur Verwaltung Ihrer Anwendung zu nutzen und diese bei Bedarf zu skalieren.
App Engine — ist eine Stufe über Kubernetes Engine und ermöglicht es Ihnen, sich ausschließlich auf Ihren Code zu konzentrieren, während Google alle Anforderungen der zugrunde liegenden Plattform erfüllt.
Cloud-Functions — stellt den Höhepunkt der Berechnungspyramide dar und ermöglicht Ihnen das Schreiben einer einfachen Funktion, die beim Auslösen die gesamte zugrunde liegende Infrastruktur für Berechnungen nutzt und das Ergebnis zurückgibt.
Vielen Dank für Ihre Aufmerksamkeit!
Twitter:
Quelle: habr.com
