Sie können Ihre Anwendungen in App Engine in der flexiblen Umgebung oder der Standardumgebung ausführen. Sie haben außerdem die Möglichkeit, beide Umgebungen gleichzeitig für Ihre Anwendung zu verwenden, damit Ihre Dienste von den Vorteilen beider Umgebungen profitieren.
App Engine-Umgebungen
App Engine eignet sich gut für Anwendungen, die mit einer Mikrodienstarchitektur entworfen wurden, insbesondere, wenn Sie sich für die Verwendung beider Umgebungen entscheiden. In den folgenden Abschnitten erfahren Sie, welche Umgebung den Anforderungen Ihrer Anwendung am besten entspricht.
Kriterien für die Auswahl der Standardumgebung
Anwendungsinstanzen werden in einer Sandbox unter Verwendung der Laufzeitumgebung einer unten aufgeführten unterstützten Sprache ausgeführt.
Anwendungen, die eine schnelle Skalierung meistern müssen.
Die Standardumgebung ist optimal für Anwendungen mit folgenden Eigenschaften geeignet:
- Der Quellcode wurde in einer bestimmten Version der unterstützten Programmiersprachen geschrieben:
- Python 2.7, Python 3.7, Python 3.8, Python 3.9 (Vorschau)
- Java 8, Java 11
- Node.js 8, Node.js 10, Node.js 12 und Node.js 14 (Vorschau)
- PHP 5.5, PHP 7.2, PHP 7.3 und PHP 7.4
- Ruby 2.5, Ruby 2.6 und Ruby 2.7
- Go 1.11, Go 1.12, Go 1.13, Go 1.14, Go 1.15 (Vorschau)
- Die Anwendung soll kostenlos oder mit sehr niedrigen Kosten ausgeführt werden, wobei Sie nur für die tatsächliche Nutzung bezahlen. Beispielsweise kann Ihre Anwendung auf 0 Instanzen skalieren, wenn kein Traffic vorhanden ist.
- Es treten plötzliche und extreme Trafficspitzen auf, die eine sofortige Skalierung erfordern.
Kriterien für die Auswahl der flexiblen Umgebung
Anwendungsinstanzen werden in Docker-Containern auf virtuellen Maschinen (VMs) von Compute Engine ausgeführt.
Anwendungen, die konsistenten Traffic empfangen, regelmäßige Trafficschwankungen verzeichnen oder die Parameter für eine schrittweise Hoch- und Herunterskalierung erfüllen.
Die flexible Umgebung ist optimal für Anwendungen mit folgenden Eigenschaften geeignet:
- Quellcode, der in einer der unterstützten Programmiersprachen geschrieben ist:
Python, Java, Node.js, Go, Ruby, PHP oder .NET - Wird in einem Docker-Container ausgeführt, der eine benutzerdefinierte Laufzeit oder Quellcode enthält, der in anderen Programmiersprachen geschrieben wurde
- Verwendet Frameworks, die nativen Code enthalten, oder hängt von diesen ab
- Greift auf die Ressourcen oder Dienste Ihres Google Cloud-Projekts zu, die sich im Compute Engine-Netzwerk befinden.
Grundlegende Merkmale im Vergleich
In der folgenden Tabelle werden die Unterschiede zwischen den beiden Umgebungen zusammengefasst:
Option | Standardumgebung | Flexible Umgebung |
---|---|---|
Startzeit von Instanzen | Sekunden | Minuten |
Maximales Zeitlimit für Anfragen | Hängt von der Laufzeit und Art der Skalierung ab. | 60 Minuten |
Hintergrundthreads | Ja, mit Einschränkungen | Ja |
Hintergrundprozesse | Nein | Ja |
SSH-Fehlerbehebung | Nein | Ja |
Skalierung | Manuell, einfach, automatisch | Manuell, automatisch |
Skalierung auf null | Ja | Nein, mindestens eine Instanz |
Auf lokales Laufwerk schreiben |
|
Ja, ephemerisch (Laufwerk wird bei jedem VM-Start initialisiert) |
Laufzeitänderung | Nein | Ja (über Dockerfile) |
Bereitstellungszeit | Sekunden | Minuten |
Automatische direkte Sicherheitspatches | Ja | Ja (ausgenommen Container-Image-Laufzeit) |
Zugriff auf Google Cloud APIs und Google-Dienste wie Cloud Storage, Cloud SQL, Memorystore Aufgaben und andere. | Ja | Ja |
WebSockets | Nein. Java 8, Python 2 und PHP 5 bieten eine proprietäre Sockets API (Beta), diese ist in neueren Standardlaufzeiten jedoch nicht verfügbar. |
Ja |
Unterstützung der Installation von Drittanbieter-Binärdateien |
|
Ja |
Ort | Nordamerika, asiatisch-pazifischer Raum oder Europa | Nordamerika, asiatisch-pazifischer Raum oder Europa |
Preis | Beruht auf Instanzstunden | Beruht auf der Nutzung von vCPU, Arbeitsspeicher und nichtflüchtigen Speichern |
Einen ausführlichen Vergleich der Umgebungen finden Sie in der Anleitung für Ihre Sprache: Python, Java, Go oder PHP.
Flexible Umgebung und Compute Engine im Vergleich
In der flexiblen App Engine-Umgebung gibt es folgende Unterschiede zu Compute Engine:
VM-Instanzen der flexiblen Umgebung werden wöchentlich neu gestartet. Dabei werden alle erforderlichen Betriebssystem- und Sicherheitsupdates durch die Verwaltungsdienste von Google angewendet.
Sie haben immer Root-Zugriff auf die VM-Instanzen in Compute Engine. Standardmäßig ist der SSH-Zugriff auf die VM-Instanzen in der flexiblen Umgebung deaktiviert. Wenn Sie möchten, können Sie den Root-Zugriff auf die VM-Instanzen Ihrer Anwendung aktivieren.
Codebereitstellungen können länger dauern, da Container-Images mithilfe des Cloud Build-Diensts erstellt werden.
Die geografische Region einer VM-Instanz der flexiblen Umgebung wird durch den Standort bestimmt, den Sie für die App Engine-Anwendung Ihres Cloudprojekts angeben. Die Verwaltungsdienste von Google sorgen dafür, dass die VM-Instanzen für eine optimale Leistung den gleichen Standort haben.
Von der Standardumgebung zur flexiblen Umgebung migrieren
Wenn Sie eine Anwendung in der Standardumgebung haben, ist es unter Umständen empfehlenswert, einige Dienste in die flexible Umgebung zu verschieben. Informationen hierzu finden Sie in den Empfehlungen für Python, Java, Go und PHP.
Wie Sie bestimmte Dienste migrieren ist den Anleitungen für Python, Java, Go und PHP.
Jetzt testen
Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit von App Enginge in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
App Engine kostenlos testen