App Engine-Umgebung auswählen

Sie können Ihre Anwendungen in App Engine mithilfe der flexiblen App Engine-Umgebung oder der App Engine-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, Python 3.10 und Python 3.11
    • Java 8, Java 11 und Java 17
    • Node.js 10, Node.js 12, Node.js 16, Node.js 18 und Node.js 20
    • PHP 7.2, PHP 7.3, PHP 7.4, PHP 8.1 und PHP 8.2
    • Ruby 2.5, Ruby 2.6, Ruby 2.7, Ruby 3.0, and Ruby 3.2
    • Go 1.12, Go 1.13, Go 1.14, Go 1.15, Go 1.16, Go 1.18, Go 1.19 und Go 1.20
  • 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 Funktionen vergleichen

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
  • Java 8, Java 11, Java 17, Node.js, Python 3, PHP 7.X, PHP 8.1, Ruby, Go 1.11 und Go 1.12+ haben Lese- und Schreibzugriff auf das Verzeichnis /tmp.
  • Python 2.7 und PHP 5.5 haben keinen Schreibzugriff auf das Laufwerk.
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 Google Tasks 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 bei Java 8, Java 11, Java 17, Node.js, Python 3, PHP 7.X, PHP 8.1, Ruby, Go 1.11 und Go 1.12+.
  • Nein für Python 2.7 und PHP 5.5.
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

Außerdem finden Sie einen ausführlichen Vergleich der Umgebungen.

Flexible Umgebung und Compute Engine im Vergleich

In der flexiblen App Engine-Umgebung gibt es folgende Unterschiede zu Compute Engine:

  • Die 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 in der flexiblen Umgebung wird durch den Speicherort bestimmt, den Sie für die App Engine-Anwendung Ihres Google Cloud Projekts 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. Weitere Informationen finden Sie in den Empfehlungen im Vergleich der Umgebungen.

Informationen zum Migrieren bestimmter Dienste für Python, Java, Go und PHP finden Sie unter Dienste von der Standardumgebung zur flexiblen Umgebung migrieren.

Überzeugen Sie sich selbst

Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit der Ruby-Standardumgebung 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.

Ruby-Standardumgebung kostenlos testen