Was ist der Unterschied zwischen Google App Engine und Google Compute Engine?

427

Ich habe mich gefragt, was der Unterschied zwischen App Engine und Compute Engine ist. Kann mir jemand den Unterschied erklären?

Cameron Brown
quelle
35
Es war mir auf ihren Homepages nicht klar. Es ist schön, es einfach so zu haben, wie es hier ist. Diese StackOverflow-Seite hat ihren Job für mich gemacht. Jedem sein / ihr eigenes. :)
Mikeumus
10
einverstanden. jemand muss sagen "schon genug!" zu diesen Marketing-Typen
Randy L

Antworten:

468

App Engine ist eine Platform-as-a-Service. Dies bedeutet, dass Sie einfach Ihren Code bereitstellen und die Plattform alles andere für Sie erledigt. Wenn Ihre App beispielsweise sehr erfolgreich wird, erstellt App Engine automatisch weitere Instanzen, um das erhöhte Volumen zu bewältigen.

Lesen Sie mehr über App Engine

Compute Engine ist eine Infrastructure-as-a-Service. Sie müssen Ihre eigenen Instanzen der virtuellen Maschine erstellen und konfigurieren. Es bietet Ihnen mehr Flexibilität und kostet im Allgemeinen viel weniger als App Engine. Der Nachteil ist, dass Sie Ihre App und Ihre virtuellen Maschinen selbst verwalten müssen.

Lesen Sie mehr über Compute Engine

Bei Bedarf können Sie sowohl App Engine als auch Compute Engine mischen. Beide funktionieren gut mit den anderen Teilen der Google Cloud Platform .

EDIT (Mai 2016):

Eine weitere wichtige Unterscheidung: Projekte, die mit App Engine ausgeführt werden, können auf null Instanzen verkleinert werden, wenn keine Anforderungen eingehen. Dies ist in der Entwicklungsphase äußerst nützlich, da Sie wochenlang arbeiten können, ohne das großzügige kostenlose Kontingent an Instanzstunden zu überschreiten. Für eine flexible Laufzeit (dh "verwaltete VMs") muss mindestens eine Instanz ständig ausgeführt werden.

EDIT (April 2017):

Cloud-Funktionen (derzeit in der Beta-Version) sind in Bezug auf die Abstraktion die nächste Stufe von App Engine - keine Instanzen! Entwickler können mundgerechte Codeteile bereitstellen, die als Reaktion auf verschiedene Ereignisse ausgeführt werden, darunter HTTP-Anforderungen, Änderungen im Cloud-Speicher usw.

Der größte Unterschied zu App Engine besteht darin, dass die Preise für Funktionen pro 100 Millisekunden festgelegt werden, während die Instanzen von App Engine erst nach 15 Minuten Inaktivität heruntergefahren werden. Ein weiterer Vorteil ist, dass Cloud-Funktionen sofort ausgeführt werden, während für einen Aufruf von App Engine möglicherweise eine neue Instanz erforderlich ist. Das Kaltstarten einer neuen Instanz kann einige Sekunden oder länger dauern (abhängig von der Laufzeit und Ihrem Code).

Dies macht Cloud-Funktionen ideal für (a) seltene Anrufe - keine Notwendigkeit, eine Instanz für den Fall, dass etwas passiert, am Leben zu halten, (b) sich schnell ändernde Lasten, bei denen sich Instanzen häufig drehen und herunterfahren, und möglicherweise mehr Anwendungsfälle.

Lesen Sie mehr über Cloud-Funktionen

Andrei Volgin
quelle
7
Wenn ich über Docker bereitstellen möchte, was sind die Unterschiede (neben der Preisgestaltung) zwischen der Verwendung von GAE und GCE?
FullStack
2
Hallo Volgin, können Sie den Grund erläutern, warum "Compute Engine" viel weniger kostet als App Engine? Danke
fangzhzh
21
App Engine bietet einen Automatisierungsgrad (dh Komfort), den Sie mit GCE nicht erreichen. In 5 Jahren mit GAE musste ich nie Software, Kopierdisketten usw. installieren, patchen oder konfigurieren. Außerdem bietet es ein relativ robustes Last- und Kapazitätsmanagement - das automatische Hochfahren und Herunterfahren von Instanzen nach Bedarf. Insgesamt können Google mit diesen Funktionen beispielsweise mehr Stunden in Rechnung stellen, und viele Unternehmen und einzelne Entwickler zahlen diese Prämie gerne, da GAE viel Zeit spart, die besser für die Verbesserung Ihrer eigenen Apps oder das anderweitige Geldverdienen aufgewendet werden kann.
Andrei Volgin
7
Google bietet auch einen anderen Dienst an: Container Engine, der sich auf Docker- und Container-Management (Kubernetes) konzentriert.
Bram
8
Kurzer Kommentar zu "Ein weiterer Vorteil ist, dass Cloud-Funktionen sofort ausgeführt werden". Aus der Praxis haben sie den gleichen Nachteil von Kaltstarts, bei denen eine einfache Summe (a, b) {return a + b} Minuten mit Kaltstarts dauern könnte
Adam
89

Der grundlegende Unterschied besteht darin, dass Google App Engine ( GAE ) eine Plattform als Service ( PaaS ) ist, während Google Compute Engine ( GCE ) eine Infrastruktur als Service ( IaaS ) ist .

Um Ihre Anwendung in GAE auszuführen, müssen Sie nur Ihren Code schreiben und in GAE bereitstellen, ohne weitere Probleme. Da GAE vollständig skalierbar ist, werden automatisch mehr Instanzen erfasst, falls der Datenverkehr steigt, und die Instanzen werden verringert, wenn der Datenverkehr abnimmt. Ihnen werden die Ressourcen in Rechnung gestellt, die Sie wirklich verwenden . Ich meine, Ihnen werden die Instanzstunden , die übertragenen Daten , der Speicher usw. in Rechnung gestellt, die Ihre App wirklich verwendet hat. Die Einschränkung ist jedoch, dass Sie Ihre Anwendung nur in Python, PHP, Java, NodeJS, .NET, Ruby und ** Go erstellen können .

Auf der anderen Seite bietet Ihnen GCE eine vollständige Infrastruktur in Form einer virtuellen Maschine . Sie haben die vollständige Kontrolle über die Umgebung und Laufzeit dieser VMs, da Sie dort jedes Programm schreiben oder installieren können. Tatsächlich ist GCE die Möglichkeit, Google Data Center virtuell zu nutzen. In GCE müssen Sie Ihre Infrastruktur manuell konfigurieren, um die Skalierbarkeit mithilfe von Load Balancer zu gewährleisten .

Sowohl GAE als auch GCE sind Teil der Google Cloud Platform .

Update: Im März 2014 kündigte Google unter App Engine einen neuen Dienst namens Managed Virtual Machine an . Verwaltete VMs bieten App Engine-Anwendungen etwas mehr Flexibilität gegenüber App-Plattform-, CPU- und Speicheroptionen. Wie bei GCE können Sie in diesen VMs eine benutzerdefinierte Laufzeitumgebung für App Engine-Anwendungen erstellen. Tatsächlich verwaltete VMs von App Engine verwischen die Grenze zwischen IAAS und PAAS in gewissem Maße.

Mostafiz Rahman
quelle
1
Über ihre Dokumente können Sie eine VM über Docker für GAE bereitstellen. cloud.google.com/appengine/docs/managed-vms
FullStack
Es scheint, dass Sie Node.js und Ruby jetzt auch auf GAE verwenden können.
Blaszard
3
Verwaltete VMs heißen jetzt App Engine Flexible Environment
killjoy
1
Ich habe meinen Code in der App Engine bereitgestellt. Wenn ich meine Konsole überprüfe, wird eine Compute Engine-VM-Instanz angezeigt. Auch wenn ich die App Engine-Konsole überprüfe, werden Spuren von HTTP-Servlet-Anforderungen angezeigt. Verwende ich also eine App-Engine oder eine Compute-Engine?
EhsanR
Ich denke, der Teil über Speicher in " ... Ihnen werden die Instanzstunden, übertragenen Daten, Speicher usw., die Ihre App wirklich verwendet hat ..." über GAE in Rechnung gestellt, ist falsch. GAE-Instanzen sind (meistens) volatil. Wenn eine Instanz heruntergefahren wird (z. B. wenn die Instanz als Reaktion auf einen Verkehrsanstieg erstellt wurde und jetzt entfernt wird, wenn der Datenverkehr abfällt), verlieren Sie alle gespeicherten Daten. Daher halte ich es nicht für richtig, anzugeben, dass Sie für "Speicher" in GAE "belastet" werden, obwohl Sie Ihre App in GAE mit einem anderen GCP-Produkt verbinden können, das Speicher bereitstellt, und für das spätere berechnet werden, nicht als GAE
Damilola Olowookere
56

Einfach ausgedrückt: Mit der Compute Engine erhalten Sie einen Server, für den Sie die volle Kontrolle / Verantwortung haben. Sie haben direkten Zugriff auf das Betriebssystem und installieren die gesamte gewünschte Software, bei der es sich normalerweise um einen Webserver, eine Datenbank usw. handelt.

In der App Engine verwalten Sie nicht das Betriebssystem einer der zugrunde liegenden Software. Sie laden nur Code (Java, PHP, Python oder Go) und voila hoch - es läuft nur ...

Die App-Engine erspart Tonnen von Kopfschmerzen, insbesondere für unerfahrene Personen, hat jedoch zwei wesentliche Nachteile: 1. teurer (aber es gibt eine kostenlose Quote, die die Compute-Engine nicht hat) 2. Sie haben weniger Kontrolle, daher sind bestimmte Dinge einfach nicht möglich oder nur auf eine bestimmte Weise möglich (zum Beispiel Speichern und Schreiben von Dateien).

Moshe Shaham
quelle
2
Sie können eine VM über Docker für GAE bereitstellen, um das Betriebssystem usw. zu verwalten. Cloud.google.com/appengine/docs/managed-vms
FullStack
3
"es läuft einfach", meinst du das ernst? Ich denke, ich bin nicht der einzige, der Probleme mit der Anpassung des Codes an GAE hat, wenn es um Datei-Uploads oder Hintergrundprozesse geht
emfi
36

Oder um es noch einfacher zu machen (da wir manchmal nicht zwischen GAE Standard und GAE Flex unterscheiden können):

Compute Engine ist analog zu einem virtuellen PC, auf dem Sie beispielsweise eine kleine Website + Datenbank bereitstellen würden. Sie verwalten alles, einschließlich der Steuerung der installierten Laufwerke. Wenn Sie eine Website bereitstellen, sind Sie für die Einrichtung von DNS usw. verantwortlich.

Google App Engine (Standard) ist wie ein schreibgeschützter Sandbox-Ordner, in den Sie Code hochladen, aus dem er ausgeführt werden soll, und sich nicht um den Rest kümmern müssen (ja: schreibgeschützt - es sind feste Bibliotheken für Sie installiert, die Sie nicht bereitstellen können Bibliotheken von Drittanbietern nach Belieben). DNS / Sub-Domains usw. sind viel einfacher zuzuordnen.

Google App Engine (flexibel) ist in der Tat wie ein ganzes Dateisystem (nicht nur ein gesperrter Ordner), in dem Sie mehr Leistung als die Standard-Engine haben, z. B. Lese- / Schreibberechtigungen (aber weniger im Vergleich zu einer Compute Engine) ). Im GAE-Standard ist ein fester Satz von Bibliotheken für Sie installiert, und Sie können keine Bibliotheken von Drittanbietern nach Belieben bereitstellen. In der flexiblen Umgebung können Sie jede Bibliothek installieren, von der Ihre App abhängt, einschließlich benutzerdefinierter Build-Umgebungen (wie Python 3).

Obwohl es sehr umständlich ist, mit GAE Standard umzugehen (obwohl Google es einfach klingt), lässt es sich unter Druck sehr gut skalieren. Dies ist umständlich, da Sie die Kompatibilität mit der gesperrten Umgebung testen und sicherstellen müssen und sicherstellen müssen, dass von Ihnen verwendete Drittanbieter-Bibliotheken keine anderen Drittanbieter-Bibliotheken verwenden, von denen Sie nicht wissen, dass sie möglicherweise nicht mit dem GAE-Standard funktionieren. Das Einrichten in der Praxis dauert länger, kann sich jedoch auf längere Sicht für einfache Bereitstellungen lohnen.

seltsamerweise
quelle
Meinen Sie mit "schreibgeschützt" die Tatsache, dass wir nicht auf die Datenträger schreiben können?
John Balvin Arias
@ JohnBalvinArias Ja, es ist ein schreibgeschützter Sandbox-Container. Sie können weder auf die Außenwelt zugreifen noch auf diesen Container / diese Festplatte schreiben. Hier können Sie Ihren Code ausführen.
Seltsamerweise
Wenn ich Docker zum Installieren von S / W in GAE verwenden kann, bedeutet dies, dass Google sich um das Erstellen / Zuweisen einer Linux-Instanz mit grundlegenden Konfigurationen kümmert und Docker darauf ausführt? Im Wesentlichen fügt die Compute Engine die zusätzliche Verantwortung für VM-Konfigurationen hinzu. Habe ich recht?
alter Mönch
32

Zusätzlich zu den obigen Anmerkungen zu App Engine und Compute Engine enthält die Liste hier auch einen Vergleich mit Google Kubernete Engine und einige Hinweise, die auf Erfahrungen mit einer Vielzahl von Apps von klein bis sehr groß basieren. Weitere Informationen finden Sie in der allgemeinen Beschreibung der Funktionen in App Engine Standard und Flex auf der Seite Auswählen einer App Engine-Umgebung in der Dokumentation zur Google Cloud Platform . Einen weiteren Vergleich der Bereitstellung von App Engine und Kubernetes finden Sie im Beitrag von Daz Wilkin App Engine Flex oder Kubernetes Engine .

App Engine Standard

Vorteile

  • Sehr wirtschaftlich für Apps mit geringem Datenverkehr in Bezug auf die direkten Kosten und auch die Kosten für die Wartung der App.
  • Die automatische Skalierung ist schnell. Die automatische Skalierung in App Engine basiert auf den kompakten Instanzklassen F1-F4 .
  • Versionsverwaltung und Verkehrsteilung sind schnell und bequem. Diese Funktionen sind nativ in App Engine (sowohl Standard als auch Flex) integriert.
  • Minimales Management, Entwickler müssen sich nur auf ihre App konzentrieren. Entwickler müssen sich nicht darum kümmern, VMs zuverlässig wie in GCE zu verwalten oder Cluster wie in GKE kennenzulernen.
  • Der Zugriff auf den Datenspeicher ist schnell. Bei der ersten Veröffentlichung von App Engine befand sich die Laufzeit zusammen mit Datastore. Später wurde Datastore als eigenständiges Produkt Cloud Datastore aufgeteilt, aber der gemeinsame Standort von App Engine Standard, der mit Datastore bereitgestellt wird, bleibt bestehen.
  • Der Zugriff auf Memcache wird unterstützt.
  • Die App Engine Sandbox ist sehr sicher. Verglichen mit der Entwicklung auf GCE oder anderen virtuellen Maschinen, bei denen Sie Ihre eigene Sorgfalt walten lassen müssen, um zu verhindern, dass die virtuelle Maschine auf Betriebssystemebene übernommen wird, ist die App Engine Standard-Sandbox standardmäßig relativ sicher.

Nachteile

  • Im Allgemeinen eingeschränkter als in anderen Umgebungen. Instanzen sind kleiner. Obwohl dies für eine schnelle automatische Skalierung gut ist, können viele Apps von größeren Instanzen profitieren, z. B. von GCE-Instanzgrößen bis zu 96 Kernen.
  • Das Netzwerk ist nicht in GCE integriert
  • App Engine kann nicht hinter einen Google Cloud Load Balancer gestellt werden. Beschränkt auf unterstützte Laufzeiten: Python 2.7, Java 7 und 8, Go 1.6-1.9 und PHP 5.5. In Java gibt es einige Unterstützung für Servlets, jedoch nicht den vollständigen J2EE-Standard.

App Engine Flex

Vorteile

  • Kann eine benutzerdefinierte Laufzeit verwenden
  • Native Integration mit GCE-Netzwerken
  • Das Versions- und Verkehrsmanagement ist genauso praktisch wie Standard
  • Die größeren Instanzen eignen sich möglicherweise besser für große komplexe Anwendungen, insbesondere für Java-Anwendungen, die viel Speicher belegen können

Nachteile

  • Die Netzwerkintegration ist nicht perfekt - keine Integration mit internen Load Balancern oder Shared Virtual Private Clouds
  • Zugriff auf verwalteten Memcache nicht allgemein verfügbar

Google Kubernetes Engine

Vorteile

  • Die native Integration in Container ermöglicht benutzerdefinierte Laufzeiten und eine bessere Kontrolle über die Clusterkonfiguration.
  • Verkörpert viele Best Practices für die Arbeit mit virtuellen Maschinen, z. B. unveränderliche Laufzeitumgebungen und die einfache Möglichkeit, auf frühere Versionen zurückzusetzen
  • Bietet ein konsistentes und wiederholbares Bereitstellungsframework
  • Basierend auf offenen Standards, insbesondere Kubernetes, für die Portabilität zwischen Clouds und lokal.
  • Die Versionsverwaltung kann mit Docker-Containern und der Google Container Registry durchgeführt werden

Nachteile

  • Die Aufteilung und Verwaltung des Datenverkehrs erfolgt zum Selbermachen und nutzt möglicherweise Istio und Envoy
  • Ein gewisser Verwaltungsaufwand
  • Einige Zeit, um sich mit Kubernetes-Konzepten wie Pods, Bereitstellungen, Diensten, Eingängen und Namespaces vertraut zu machen
  • Einige öffentliche IP- Adressen müssen verfügbar gemacht werden, es sei denn, Sie verwenden private Cluster , die sich derzeit in der Beta-Version befinden. Sie müssen diese Option jedoch nicht mehr verwenden, müssen jedoch weiterhin Zugriff auf Speicherorte gewähren, von denen aus kubectl-Befehle ausgeführt werden.
  • Überwachungsintegration nicht perfekt
  • Während der interne L3-Lastausgleich von Kubernetes Engine nativ unterstützt wird, erfolgt der interne L7-Lastausgleich zum Selbermachen und nutzt möglicherweise Envoy

Compute Engine

Vorteile

  • Einfach hochzufahren - Kubernetes oder App Engine müssen nicht hochgefahren werden. Verwenden Sie einfach alles, was Sie aus früheren Erfahrungen wissen. Dies ist wahrscheinlich der Hauptgrund für die direkte Verwendung von Compute Engine.
  • Vollständige Kontrolle - Sie können viele Compute Engine-Funktionen direkt nutzen und die neuesten Ihrer Lieblingssachen installieren, um auf dem neuesten Stand zu bleiben.
  • Keine Notwendigkeit für öffentliche IPs. Einige ältere Softwareprodukte sind möglicherweise zu schwer zu sperren, wenn auf öffentlichen IP-Adressen etwas verfügbar ist.
  • Sie können das Container-optimierte Betriebssystem für die Ausführung von Docker-Containern nutzen

Nachteile

  • Meistens zum Selbermachen, was aus Gründen der Zuverlässigkeit und Sicherheit schwierig sein kann, obwohl Sie Lösungen von verschiedenen Orten aus wiederverwenden können, einschließlich des Cloud Launcher.
  • Mehr Verwaltungsaufwand. Es gibt viele Verwaltungstools für Compute Engine, die jedoch nicht unbedingt verstehen, wie Sie Ihre Anwendung bereitgestellt haben, wie dies bei den Überwachungstools App Engine und Kubernetes Engine der Fall ist
  • Die automatische Skalierung basiert auf GCE-Instanzen, die langsamer als App Engine sein können
  • Die Tendenz besteht darin, Software auf Schneeflocken-GCE-Instanzen zu installieren, deren Wartung einige Mühe kosten kann
Alexamies
quelle
18

Wie bereits erläutert, ist Google Compute Engine (GCE) die Infrastruktur als Dienst (IaaS), während Google App Engine (GAE) die Plattform als Dienst (PaaS) ist. Sie können das folgende Diagramm überprüfen den Unterschied in einer besseren Art und Weise (Entnommen und besser erklärt zu verstehen , hier ) -

Cloud-Computing-Typen

Google Compute Engine
GCE ist ein wichtiger Dienst, der von der Google Cloud Platform (GCP) bereitgestellt wird, da die meisten GCP-Dienste GCE-Instanzen (VMs) unterhalb der Verwaltungsebene verwenden (nicht sicher, welche nicht). Dies umfasst App Engine, Cloud-Funktionen, Kubernetes Engine (frühere Container Engine), Cloud SQL usw. GCE-Instanzen sind die am besten anpassbare Einheit und sollten daher nur verwendet werden, wenn Ihre Anwendung nicht auf anderen GCP-Diensten ausgeführt werden kann. Meistens verwenden Benutzer GCE, um ihre On-Prem-Anwendungen an GCP zu übertragen, da nur minimale Änderungen erforderlich sind. Später können sie andere GCP-Dienste für separate Komponenten ihrer Apps verwenden.

Google App Engine
GAE ist der erste von GCP angebotene Dienst (lange bevor Google zum Cloud-Geschäft kam). Es skaliert automatisch von 0 auf unbegrenzte Instanzen (es verwendet GCE darunter). Es kommt mit 2 Geschmacksrichtungen Standardumgebung und flexible Umgebung.

Die Standardumgebung ist sehr schnell, wird auf 0 reduziert, wenn niemand Ihre App verwendet, in Sekunden auf und ab skaliert und verfügt über dedizierte Google-Dienste und -Bibliotheken für Caching, Authentifizierung usw. Die Einschränkung bei der Standardumgebung besteht darin, dass sie sehr restriktiv ist da läuft es in einem sandkasten. Sie müssen verwaltete Laufzeiten nur für bestimmte Programmiersprachen verwenden. Die neuesten Ergänzungen sind Node.js (8.x) und Python 3.x. Die älteren Laufzeiten sind für Go, PHP, Python 2.7, Java usw. verfügbar.

Die flexible Umgebung ist offener, da Sie benutzerdefinierte Laufzeiten verwenden können, da Docker-Container verwendet werden. Wenn Ihre Laufzeit in den angegebenen Laufzeiten nicht verfügbar ist, können Sie jederzeit eine eigene Docker-Datei für die Ausführungsumgebung erstellen. Die Einschränkung besteht darin, dass mindestens eine Instanz ausgeführt werden muss, auch wenn niemand Ihre App verwendet. Außerdem dauert das Vergrößern und Verkleinern einige Minuten.

Verwechseln Sie GAE flexible nicht mit Kubernetes Engine, da die spätere Version die tatsächlichen Kubernetes verwendet und viel mehr Anpassungen und Funktionen bietet. GAE Flex ist nützlich, wenn Sie zustandslose Container möchten und Ihre Anwendung nur auf HTTP- oder HTTPS-Protokollen basiert. Für andere Protokolle ist Kubernetes Engine (GKE) oder GCE Ihre einzige Wahl. Überprüfen Sie meine andere Antwort für eine bessere Erklärung.

Anfänger
quelle
10

App Engine bietet Entwicklern die Möglichkeit, Google Compute Engine-Kerne zu steuern und ein Web-Front-End für Datenverarbeitungsanwendungen von Google Compute Engine bereitzustellen.

Auf der anderen Seite bietet Compute Engine eine direkte und vollständige Betriebssystemverwaltung Ihrer virtuellen Maschinen. Um Ihre App zu präsentieren, benötigen Sie Ressourcen. Google Cloud Storage ist ideal zum Speichern Ihrer Assets und Daten, unabhängig davon, wofür sie verwendet werden. Mit Hosting rund um den Globus erhalten Sie schnellen Datenzugriff. Die Zuverlässigkeit wird bei einer Verfügbarkeit von 99,95% garantiert. Google bietet außerdem die Möglichkeit, Ihre Daten zu sichern und wiederherzustellen. Ob Sie es glauben oder nicht, der Speicherplatz ist unbegrenzt.

Sie können Ihre Assets mit Google Cloud Storage verwalten, speichern, abrufen, anzeigen und löschen. Sie können auch schnell flache Datenblätter lesen und schreiben, die im Cloud-Speicher gespeichert sind. Als nächstes in der Google Cloud-Reihe steht BigQuery. Mit BigQuery können Sie riesige Datenmengen analysieren. Wir sprechen von Millionen von Datensätzen innerhalb von Sekunden. Der Zugriff erfolgt über eine unkomplizierte Benutzeroberfläche oder eine REST-Schnittstelle (Representational State Transfer).

Die Datenspeicherung ist, wie Sie vielleicht vermuten, kein Problem und lässt sich auf Hunderte von TB skalieren. Auf BigQuery kann über eine Vielzahl von Client-Bibliotheken zugegriffen werden, einschließlich derer für Java, .NET, Python, Go, Ruby, PHP und Javascript. Es steht eine SQL-ähnliche Syntax namens NoSQL zur Verfügung, auf die über diese Clientbibliotheken oder über eine Webbenutzeroberfläche zugegriffen werden kann. Lassen Sie uns abschließend über die Datenbankoptionen der Google Cloud-Plattform, Cloud SQL und Cloud Datastore sprechen.

Es gibt einen großen Unterschied. Cloud SQL ist für relationale Datenbanken vorgesehen, hauptsächlich MySQL, während Cloud Datastore für nicht relationale Datenbanken mit noSQL vorgesehen ist. Mit Cloud SQL haben Sie die Wahl zwischen Hosting in den USA, Europa oder Asien mit 100 GB Speicher und 16 GB RAM pro Datenbankinstanz.

Der Cloud-Datenspeicher ist kostenlos für bis zu 50.000 Lese- / Schreibanweisungen pro Monat und 1 GB Daten verfügbar, die ebenfalls pro Monat gespeichert werden. Wenn Sie diese Quoten überschreiten, wird jedoch eine Gebühr erhoben. App Engine kann auch mit anderen weniger bekannten, gezielteren Mitgliedern der Google Cloud-Plattform zusammenarbeiten, einschließlich der Cloud-Endpunkte zum Erstellen von API-Backends, der Google Prediction-API für Datenanalyse und Trendprognose oder der Google Translate-API für mehrsprachige Ausgabe.

Mit App Engine können Sie zwar eine ganze Menge selbst erledigen, aber das Potenzial steigt sprunghaft, wenn Sie die Fähigkeit berücksichtigen, einfach und effizient mit den anderen Google Cloud-Plattformdiensten zu arbeiten.

Hassan Azimi
quelle
10

Wenn Sie mit anderen beliebten Diensten vertraut sind:

Google Compute Engine -> AWS EC2

Google App Engine -> Heroku oder AWS Elastic Beanstalk

Google Cloud-Funktionen -> AWS Lambda-Funktionen

Dave Fort
quelle
7

Ich werde es auf eine Weise erklären, die für mich Sinn machte:

  • Compute Engine : Wenn Sie eine Do-it-yourself-Person sind oder ein IT-Team haben und nur einen Computer in einer Cloud mit einem bestimmten Betriebssystem (z. B. Linux) mieten möchten, entscheiden Sie sich für die Compute Engine. Du musst alles selbst machen.

  • App Engine : Wenn Sie (zum Beispiel) ein Python-Programmierer sind und einen vorkonfigurierten Computer in einer Cloud mit Linux mit einem laufenden Webserver und dem neuesten Python 3 mit den erforderlichen Modulen und einigen Plug-Ins zur Integration mieten möchten Bei anderen externen Diensten entscheiden Sie sich für die App Engine.

  • Serverloser Container (Cloud Run) : Wenn Sie das genaue Image Ihrer lokalen Setup-Umgebung bereitstellen möchten (z. B. Python 3.7 + Flask + Sklearn), sich aber nicht mit Server, Skalierung usw. befassen möchten, erstellen Sie einen Container auf Ihrem lokalen Computer (über Docker) und stellen Sie es dann für Google Run bereit.

  • Serverloser Microservice (Cloud-Funktionen) : Wenn Sie eine Reihe von APIs (Funktionen) schreiben möchten, die bestimmte Aufgaben ausführen, wählen Sie Google Cloud-Funktionen. Sie konzentrieren sich nur auf diese spezifischen Funktionen. Der Rest des Auftrags (Server, Wartung, Skalierung usw.) wird für Sie erledigt, um Ihre Funktionen als Microservices verfügbar zu machen.

Wenn Sie tiefer gehen, verlieren Sie etwas an Flexibilität, aber Sie machen sich keine Sorgen über unnötige technische Aspekte. Sie zahlen auch etwas mehr, sparen aber Zeit und Kosten (IT-Teil): Jemand anderes (Google) erledigt das für Sie.

Wenn Sie sich nicht um Lastausgleich, Skalierung usw. kümmern möchten, ist es wichtig, Ihre App in mehrere "zustandslose" Webdienste aufzuteilen, die alles, was dauerhaft ist, in einen separaten Speicher (Datenbank- oder Blob-Speicher) schreiben. Dann werden Sie feststellen, wie großartig Cloud Run und Cloud-Funktionen sind.

Persönlich fand ich Google Cloud Run eine großartige Lösung, absolute Entwicklungsfreiheit (solange sie zustandslos ist), sie als Webdienst verfügbar macht, Ihre Lösung andockt und sie mit Cloud Run bereitstellt. Lassen Sie Google Ihre IT und DevOps sein, Sie müssen sich nicht um Skalierung und Wartung kümmern.

Ich habe alle anderen Optionen ausprobiert und jede ist für einen anderen Zweck geeignet, aber Google Run ist einfach fantastisch. Für mich ist es das echte Serverless, ohne an Flexibilität bei der Entwicklung zu verlieren.

Ali Khosro
quelle
3

Die Cloud-Dienste bieten eine Reihe von Optionen, von vollständig verwalteten bis zu weniger verwalteten Diensten. Weniger verwaltete Dienste geben den Entwicklern mehr Kontrolle. Gleiches gilt auch für die Compute- und App-Engine. Das folgende Bild geht näher auf diesen Punkt ein Geben Sie hier die Bildbeschreibung ein

Sonu
quelle
1

Google Compute Engine (GCE)

In der Cloud gehostete virtuelle Maschinen (VMs). Vor der Cloud wurden diese häufig als Virtual Private Server (VPS) bezeichnet. Sie würden diese genauso verwenden wie einen physischen Server, auf dem Sie das Betriebssystem installieren und konfigurieren, Ihre Anwendung installieren, die Datenbank installieren, das Betriebssystem auf dem neuesten Stand halten usw. Dies wird als Infrastruktur bezeichnet. as-a-Service (IaaS).

VMs sind am nützlichsten, wenn eine vorhandene Anwendung auf einer VM oder einem Server in Ihrem Rechenzentrum ausgeführt wird und Sie diese problemlos auf GCP migrieren möchten.

Google App Engine

App Engine hostet und führt Ihren Code aus, ohne dass Sie sich mit dem Betriebssystem, dem Netzwerk und vielen anderen Dingen befassen müssen, die Sie mit einem physischen Server oder einer physischen VM verwalten müssen. Stellen Sie sich das als Laufzeit vor, die Ihre Anwendung automatisch bereitstellen, versionieren und skalieren kann. Dies wird als Platform-as-a-Service (PaaS) bezeichnet.

App Engine ist am nützlichsten, wenn Sie eine automatisierte Bereitstellung und automatisierte Skalierung Ihrer Anwendung wünschen. Sofern für Ihre Anwendung keine benutzerdefinierte Betriebssystemkonfiguration erforderlich ist, ist App Engine häufig vorteilhaft gegenüber der manuellen Konfiguration und Verwaltung von VMs.

Travis Webb
quelle
Ich verstehe nicht, warum diese Antwort nicht alle wohlverdienten Stimmen bekommt! :)
Damilola Olowookere