GCP: Analysieren des Google Cloud Platform Computing Stack

Eine Übersetzung des Artikels wurde speziell für Studenten des Cloud Services- Kurses erstellt.


Ist es interessant, sich in diese Richtung zu entwickeln? Sehen Sie sich die Aufzeichnung des AWS EC2 Service- Workshops an, der von Egor Zuev - TeamLead bei InBit und dem Autor des Bildungsprogramms bei OTUS durchgeführt wurde.



Die Google Cloud Platform (GCP) bietet viele Dienste, insbesondere den Computing-Stack, der die Google Compute Engine (GCE), die Google Kubernetes Engine (ehemals Container Engine) (GKE), die Google App Engine (GAE) und die Google Cloud Functions (GCF) enthält ) Alle diese Dienste haben coole Namen, sind jedoch möglicherweise nicht ganz offensichtlich in Bezug auf ihre Funktionen und was sie im Verhältnis zueinander einzigartig macht. Dieser Artikel richtet sich an Personen, die sich gerade erst mit Cloud-Konzepten vertraut machen, insbesondere mit Cloud-Diensten und GCP.



1. Rechenstapel


Der Rechenstapel kann als mehrstufige Abstraktion über das betrachtet werden, was ein Computersystem bereitstellen kann. Dieser Stapel steigt (steigt auf ) vom blanken Metall , das sich auf die tatsächlichen Hardwarekomponenten des Computers bezieht, bis hinunter zu den Funktionen ( Funktionen ), die die kleinste Berechnungseinheit darstellen. In Bezug auf den Stack ist zu beachten, dass Services beim Verschieben des Stacks aggregiert werden. Beispielsweise sollte der in Abbildung 1 unten gezeigte Abschnitt „Apps“ alle grundlegenden Komponenten von Containern enthalten, virtuelle Maschinen ( virtuell). Maschinen ) und Eisen. Auf die gleiche Weise muss die Komponente der virtuellen Maschine die Hardware enthalten, damit sie funktioniert.



Abbildung 1: Rechenstapel | Bild aus Google Cloud abgerufen


Dieses in Abbildung 1 gezeigte Modell ist die Grundlage für die Beschreibung von Angeboten von Cloud-Anbietern. So können einige Anbieter beispielsweise nur Container und Dienste von geringerer Qualität auf dem Stapel bereitstellen, während andere alles tun können, was in Abbildung 1 dargestellt ist.


- Wenn Sie mit Cloud-Diensten vertraut sind, fahren Sie mit Abschnitt 3 fort, um sich mit dem Äquivalent von GCP vertraut zu machen
- Wenn Sie nur eine Zusammenfassung der Cloud-Dienste benötigen, fahren Sie mit Abschnitt 2.4 fort

2. Cloud-Dienste


Die Welt des Cloud Computing ist sehr vielfältig. Cloud-Anbieter bieten viele Dienste an, die auf unterschiedliche Kundenanforderungen zugeschnitten sind. Möglicherweise haben Sie 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-Provider-Diensten. Ich stelle fest, dass es fast immer drei Hauptvorschläge für „as a Service“ gibt, die Cloud-Anbieter anbieten.


Dies sind IaaS, PaaS und SaaS, die jeweils Infrastruktur als Service (Infrastruktur als Service), Plattform als Service (Plattform als Service) und Software als Service (Software als Service) bezeichnen. Es ist wichtig, Cloud-Services als Service-Levels zu visualisieren. Dies bedeutet, dass Sie als Kunde beim Auf- oder Absteigen von Ebene zu Ebene verschiedene Serviceoptionen überqueren, die entweder zum Hauptangebot hinzugefügt oder daraus entfernt werden. Betrachten Sie dies am besten als Pyramide, wie in Abbildung 2 dargestellt.


Abbildung 2: Pyramide aaS | Bild von Ruby Garage genommen


2.1 Infrastruktur als Service (IaaS)


Dies ist die niedrigste Ebene, die ein Cloud-Dienstanbieter anbieten kann, und sie umfasst einen Cloud-Dienstanbieter, der eine Bare-Metal-Infrastruktur bereitstellt, einschließlich Middleware, Netzwerkkabel, Prozessoren, GPUs, RAM, externer Speicher, Server und zugrunde liegende Betriebssystemabbilder B. Debian Linux, CentOS, Windows usw.


Wenn Sie ein Angebot von Ihrem IaaS-Cloud-Anbieter erhalten, sollten Sie dies erwarten. Es liegt an Ihnen als Kunden, diese Teile für Ihr Unternehmen zusammenzubauen. Das Ausmaß, mit dem Sie arbeiten müssen, kann von Anbieter zu Anbieter unterschiedlich sein. In der Regel erhalten Sie jedoch nur die Hardware und das Betriebssystem, und der Rest liegt bei Ihnen. Beispiele für IaaS sind AWS Elastic Compute, Microsoft Azure und GCE.


Einige Leute mögen möglicherweise nicht die Tatsache, dass sie Betriebssystem-Images installieren und sich mit dem Netzwerk befassen, den Lastenausgleich durchführen oder sich darum kümmern müssen, welcher Prozessortyp für ihre Arbeitslast ideal ist. Hier bewegen wir uns die Pyramide hinauf zu PaaS.


2.2 Plattform als Service (PaaS)


PaaS enthält nur einen Cloud-Dienstanbieter, der eine bestimmte Plattform bietet, auf der Benutzer Anwendungen erstellen können. Dies ist eine Abstraktion über IaaS. Dies bedeutet, dass der Cloud-Anbieter sich um alle Details der CPU-, Speicher-, RAM-, Speicher-, Netzwerk- usw. Typen kümmert. Wie in Abbildung 2 dargestellt, haben Sie als Client seit der Cloud nur wenig Kontrolle über die reale Plattform Der Anbieter erledigt alle Infrastrukturdetails für Sie. Sie fordern die ausgewählte Plattform an und bauen darauf ein Projekt auf. Beispiele für PaaS sind Heroku.


Für jemanden ist dies möglicherweise ein zu hohes Niveau, da er nicht unbedingt ein Projekt auf der angegebenen Plattform erstellen möchte, sondern eine Reihe von Diensten direkt vom Cloud-Dienstanbieter benötigt. Hier kommt SaaS ins Spiel.


2.3 Software als Service (SaaS)


SaaS ist der am häufigsten von Cloud-Dienstanbietern bereitgestellte Dienst. Sie sind für Endbenutzer gedacht und hauptsächlich über Websites wie Google Mail, Google Text & Tabellen, Dropbox usw. zugänglich. In Bezug auf Google Cloud gibt es mehrere Angebote außerhalb ihres Computer-Stacks, die SaaS sind. Dazu gehören Data Studio, Big Query usw.


2.4 Zusammenfassung der Cloud-Dienste


KomponentenIaasPaaSSaas
Was bekommst du?Sie erhalten die Infrastruktur und zahlen entsprechend. Die Freiheit, Software, Betriebssysteme oder deren Zusammensetzung zu verwenden oder zu installieren.Hier bekommen Sie was Sie verlangen. Software, Hardware, Betriebssystem, Webumgebung. Sie erhalten eine einsatzbereite Plattform und zahlen entsprechend.Sie müssen sich hier um nichts kümmern. Sie erhalten ein vorinstalliertes Paket, das auf Ihre Anforderungen zugeschnitten ist, und müssen nur entsprechend bezahlen.
WertGrundlegendes RechnenIaaS obenDies ist im Wesentlichen ein komplettes Leistungspaket.
Technische SchwierigkeitenTechnische Kenntnisse erforderlichSie haben eine Grundkonfiguration erhalten, aber Domänenkenntnisse sind noch erforderlich.Sie müssen sich nicht um technische Details kümmern. Der SaaS-Anbieter bietet alles.
Was funktioniertVirtuelle Maschinen, Speicher, Server, Netzwerk, Load Balancer usw.Laufzeitumgebungen (wie Java-Laufzeit), Datenbanken (wie mySQL, Oracle), Webserver (wie Tomcat usw.)Anwendungen wie E-Mail-Dienste (Google Mail, Yahoo Mail usw.), Websites für soziale Interaktionen (Facebook usw.)
Anzahl der BeliebtheitBeliebt bei hochqualifizierten Entwicklern, Forschern, die eine individuelle Anpassung an ihre Anforderungen oder ihr Studienfach benötigenAm beliebtesten bei Entwicklern, da sie sich auf die Entwicklung ihrer Anwendungen oder Skripte konzentrieren können. Sie müssen sich keine Gedanken über das Laden des Datenverkehrs oder die Serververwaltung usw. machen.Am beliebtesten bei normalen Verbrauchern oder Unternehmen, die Software wie E-Mail, Dateifreigabe und soziale Netzwerke verwenden, da sie sich nicht um technische Details kümmern müssen

Abbildung 3: Zusammenfassung der wichtigsten Cloud-Angebote | Bild mit freundlicher Genehmigung von Amir bei Blog Specia


3. Google Cloud Platform Computing-Paket


Nachdem wir die typischen Angebote von Cloud-Anbietern in Abschnitt 2 untersucht haben, können wir sie mit den Angeboten von Google Cloud vergleichen.


3.1 Google Compute Engine (GCE) - IaaS



Abbildung 4: GCE-Symbol (Google Compute Engine)


GCE ist ein IaaS-Angebot von Google. Mit GCE können Sie frei virtuelle Maschinen erstellen, Prozessor- und Speicherressourcen zuweisen, den Speichertyp, z. B. SSD oder HDD, sowie die Speichermenge auswählen. Es ist fast so, als hätten Sie Ihren eigenen Computer / Ihre eigene Workstation erstellt und alle Details der Arbeit erledigt.


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


Maschinentypen | Engine-Dokumentation berechnen | Google Cloud


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



Abbildung 5: Google Kubernetes Engine (GKE) -Symbol


GKE ist das einzigartige Computerangebot von GCP, eine Abstraktion der Compute Engine. Im Allgemeinen kann GKE als Container as a Service (CaaS), manchmal auch als Kubernetes as a Service (KaaS) bezeichnet, kategorisiert werden, sodass Kunden ihre Docker-Container problemlos in einer vollständig verwalteten Kubernetes-Umgebung starten können. Für diejenigen, die mit Containern nicht vertraut sind, helfen Container dabei, Dienste / Anwendungen modular zu bilden, sodass verschiedene Container unterschiedliche Dienste enthalten können. Beispielsweise kann ein Container die Schnittstelle Ihrer Webanwendung hosten und der andere den Serverteil enthalten. Kubernetes automatisiert, koordiniert, verwaltet und stellt Ihre Container bereit. Mehr Infos hier.


Google Kubernetes Engine | Google Cloud


3.3 Google App Engine (GAE) - (PaaS)



Abbildung 6: GAE-Symbol (Google App Engine)


Wie in Abschnitt 2.2 erwähnt, ist PaaS höher als IaaS, und im Fall von GCP kann es auch als Satz über GKE angesehen werden. GAE ist ein spezialisiertes Google PaaS. Wie sie sich am besten beschreiben, lautet: "Tragen Sie Ihren Code, und wir kümmern uns um den Rest."


Dies stellt sicher, dass Kunden, die GAE verwenden, sich nicht mit grundlegender Hardware / Middleware befassen müssen und bereits eine vorkonfigurierte Plattform betriebsbereit haben können. Alles, was sie tun müssen, ist den Code bereitzustellen, der zum Ausführen erforderlich ist.


GAE verarbeitet die Skalierung automatisch, um die Belastung und Nachfrage der Benutzer zu befriedigen. Wenn Ihre Website, auf der Blumen verkauft werden, plötzlich einen Höhepunkt erreicht, weil sich der Valentinstag nähert, verarbeitet GAE die Skalierung der zugrunde liegenden Infrastruktur, um die Nachfrage zu befriedigen und dies sicherzustellen Ihre Website wird aufgrund der gestiegenen Nachfrage nicht fallen. Dies bedeutet, dass Sie genau für die Ressourcen bezahlen, die Ihre Anwendung derzeit benötigt.


GAE verwendet Kubernetes oder seine integrierte Version, um all dies zu erledigen, sodass Sie sich darüber keine Sorgen machen müssen. GAE ist am besten für Unternehmen geeignet, die nicht an der zugrunde liegenden Infrastruktur interessiert sind und nur darauf achten, dass ihre Anwendung bestmöglich verfügbar ist.


Meiner Meinung nach ist GAE der beste Ausgangspunkt, wenn Sie ein Entwickler mit einer großartigen Idee sind, aber nicht die Routinearbeit zum Einrichten von Servern, zum Lastenausgleich und zu allen anderen zeitaufwändigen Devops / SRE-Arbeiten ausführen möchten. Mit der Zeit könnten Sie GKE und GCE ausprobieren, aber das ist nur meine Meinung.


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


Als Referenz : App Engine - Erstellen Sie skalierbare Web- und Mobile-Backends in einer beliebigen Sprache Google Cloud


3.4 Google Cloud-Funktionen - (FaaS)



Abbildung 7: GCF-Symbol (Google Cloud Functions)


Ich hoffe, Sie haben den Trend durch die Analyse der vorherigen Sätze bemerkt. Je höher Sie die Leiter der GCP-Computerlösungen hinaufsteigen, desto weniger müssen Sie sich um grundlegende Technologien kümmern. Diese Pyramide endet mit der kleinstmöglichen Berechnungseinheit, einer Funktion, wie in Abschnitt 1 gezeigt.


GCF ist ein relativ neues GCP-Angebot, das sich (zum Zeitpunkt dieses Schreibens) noch im Beta-Test befindet. Mit Cloud-Funktionen können bestimmte von einem Entwickler geschriebene Funktionen durch ein Ereignis ausgelöst werden.


Sie sind ereignisgesteuert und liegen dem Schlagwort Serverless zugrunde, dh sie kennen die Server nicht. Cloud-Funktionen sind sehr einfach und haben viele verschiedene Verwendungszwecke, die ereignisgesteuertes Denken erfordern. Beispielsweise kann jedes Mal, wenn sich ein neuer Benutzer anmeldet, eine Cloud-Funktion gestartet werden, um Entwickler zu benachrichtigen.


Wenn ein bestimmter Sensor im Werk einen bestimmten Wert erreicht, kann er eine Cloud-Funktion starten, die eine gewisse Verarbeitung von Informationen durchführt oder Wartungspersonal usw. benachrichtigt.


Cloud-Funktionen - Ereignisgesteuertes Server-Computing | Google Cloud


Fazit


In diesem Artikel haben wir über verschiedene Cloud-Angebote wie IaaS, PaaS usw. gesprochen und darüber, wie der Computing-Stack von Google diese verschiedenen Ebenen implementiert. Wir haben gesehen, dass Abstraktionsebenen beim Übergang von einer Servicekategorie zu einer anderen, wie z. B. IaaS in Paas, weniger Kenntnisse über den zugrunde liegenden Wert erfordern.


Für Unternehmen bietet dies eine entscheidende Flexibilität, die nicht nur die operativen Ziele erreicht, sondern auch andere Schlüsselbereiche wie Sicherheit und Kosten erfüllt. Zusammenfassend:


Compute Engine - Ermöglicht das Erstellen einer eigenen virtuellen Maschine, wobei bestimmte Hardwareressourcen zugewiesen werden, z. B. RAM, Prozessor und Speicher. Es ist auch sehr praktisch und auf niedrigem Niveau.


Die Kubernetes Engine ist einen Schritt höher als die Compute Engine, mit der Sie Kubernetes und Container zum Verwalten Ihrer Anwendung verwenden und bei Bedarf skalieren können.


Die App Engine ist einen Schritt höher als die Kubernetes Engine, sodass Sie sich nur auf Ihren Code konzentrieren können, während Google alle Anforderungen der zugrunde liegenden Plattform bereitstellt.


Cloud-Funktionen stehen an der Spitze der Computerpyramide und ermöglichen es Ihnen, eine einfache Funktion zu schreiben, die beim Start die gesamte Basisinfrastruktur verwendet, um das Ergebnis zu berechnen und zurückzugeben.


Vielen Dank für Ihre Aufmerksamkeit!


Twitter: @martinomburajr

Source: https://habr.com/ru/post/de467749/


All Articles