Definition

Google App Engine

Was ist Google App Engine?

Google App Engine (GAE) ist ein Platform-as-a-Service-Produkt (PaaS), mit dem Entwickler von Webanwendungen und Unternehmen skalierbare, leistungsstarke Anwendungen in der vollständig verwalteten Cloud-Umgebung von Google erstellen, bereitstellen und hosten können, ohne sich um die Bereitstellung oder Verwaltung der Infrastruktur kümmern zu müssen.

GAE ist die vollständig verwaltete und serverlose Anwendungsentwicklungsplattform von Google. Sie übernimmt die gesamte Arbeit des Hochladens und Ausführens des Codes auf Google Cloud. Die flexible Umgebung von GAE stellt die gesamte erforderliche Infrastruktur auf der Grundlage der vom Entwickler angegebenen Anforderungen an die Zentraleinheit (CPU) und Memory bereit.

Mit GAE können Entwickler Anwendungen in mehreren unterstützten Sprachen erstellen oder benutzerdefinierte Container in einer bevorzugten Sprache oder einem Framework ausführen. Jede Sprache verfügt über ein Software Developement Kit (SDK) und eine Laufzeitumgebung, um die Entwicklung und das Testen von Anwendungen zu ermöglichen. GAE bietet außerdem eine breite Palette von Entwickler-Tools, die die Entwicklung, das Testen, das Debugging, die Bereitstellung und die Leistungsüberwachung von Anwendungen vereinfachen.

GAE eignet sich ideal für Anwendungen, die unter Verwendung einer Microservices-Architektur entwickelt werden, einem Entwicklungsparadigma, bei dem eine Anwendung aus mehreren kleinen, lose gekoppelten Diensten besteht, die über ein technologieunabhängiges Protokoll miteinander kommunizieren können, aber auch unabhängig voneinander bereitgestellt werden können.

Wie wird Google App Engine verwendet?

GAE ist eine vollständig verwaltete, serverlose Plattform, die zum Hosten, Erstellen und Bereitstellen von Webanwendungen in beliebigem Umfang verwendet wird. Nutzer können ein GAE-Konto erstellen, ein SDK einrichten und den Quellcode ihrer Anwendung schreiben, indem sie eine von mehreren gängigen Programmiersprachen, Bibliotheken und Frameworks auswählen. Anschließend können sie GAE nutzen, um den Code zu testen und in der Cloud bereitzustellen.

Eine Möglichkeit, GAE zu nutzen, besteht darin, skalierbare Anwendungen zu erstellen, die sich je nach Bedarf an die Arbeitslast anpassen. Google App Engine stellt alle erforderlichen Server bereit und skaliert die Anwendungsinstanzen je nach Bedarf. Anwendungstests sind eine weitere Möglichkeit, GAE zu nutzen. Die Nutzer können den Datenverkehr an verschiedene Anwendungsversionen weiterleiten, um sie einem A/B-Test zu unterziehen und zu sehen, welche Version unter verschiedenen Arbeitslasten besser abschneidet.

AWS Elastic Beanstalk und Google App Engine im Vergleich
Abbildung 1: Amazon Elastic Beanstalk ist eine konkurrierende Plattform-as-a-Service zu Google App Engine. Es ist mit anderen Programmiersprachen und Laufzeiten als GAE kompatibel.

Anwendungen von Google App Engine

Eine GAE-Anwendung ist ein Container der obersten Ebene. Er enthält mindestens einen Service, eine Version und eine einzelne Anwendungsressource. Die Ressource besteht aus einem oder mehreren Diensten, die so konfiguriert werden können, dass sie unterschiedliche Laufzeiten verwenden und mit unterschiedlichen Leistungsstufen arbeiten. Darüber hinaus können verschiedene Versionen eines Dienstes für die Ausführung innerhalb von Instanzen bereitgestellt werden, je nachdem, für wie viel Datenverkehr er konfiguriert ist.

Mit GAE können verschiedene Versionen einer Anwendung in der Google Cloud gehostet werden. GAE ermöglicht es Entwicklern, den Datenverkehr zwischen diesen verschiedenen Versionen für A/B-Tests und die Einführung neuer Funktionen aufzuteilen. Apps können in GAE auch in jeder Phase, einschließlich der Produktion, debuggt werden.

Verfügbare Umgebungen in Google App Engine

GAE bietet zwei Arten von App-Entwicklungsumgebungen. Entwickler können je nach Bedarf und App-Typ eine der beiden Umgebungen wählen. Sie können auch beide Umgebungen gleichzeitig nutzen, um die Vorteile jeder Umgebung zu kombinieren.

In der Standardumgebung werden Anwendungen in einer Sandbox mit der Laufzeitumgebung einer der von GAE unterstützten Sprachen ausgeführt. Diese Umgebung eignet sich für Anwendungen, die als Reaktion auf plötzliche oder extreme Verkehrsspitzen schnell skaliert werden müssen (nach oben oder unten). Sie kann auch für Anwendungen verwendet werden, die kostenlos oder zu sehr geringen Kosten laufen soll.

Die Standard-GAE-Umgebung bietet sekundenschnelle Start- und Bereitstellungszeiten für Instanzen, unterstützt Hintergrund-Threads und kann auf Null skaliert werden. Sie enthält automatische Sicherheits-Patches und ermöglicht Entwicklern den Zugriff auf viele Google-Cloud-Anwendungsprogrammierschnittstellen (APIs) und -Dienste, darunter Cloud Storage, Cloud SQL und Google Tasks.

Die flexible GAE-Umgebung skaliert Anwendungen automatisch nach oben oder unten und gleicht die Last aus. Entwickler können die Laufzeitumgebung für die unterstützten Sprachen anpassen oder ihre eigene Laufzeitumgebung bereitstellen, indem sie ein benutzerdefiniertes Docker Image oder Dockerfile bereitstellen.

Die Umgebung ist für viele Arten von Anwendungen geeignet, einschließlich Anwendungen, die Folgendes tun:

  • Erhaltung von konsistentem Datenverkehr
  • Aufweisung von regelmäßigen Schwankungen im Datenverkehr
  • Ausführung in einem Docker-Container mit einer benutzerdefinierten Laufzeit oder mit in anderen Programmiersprachen geschriebenem Quellcode
  • Verwendung von Frameworks mit nativem Code
  • Zugriff auf Google-Cloud-Projektressourcen, die sich im Google-Compute-Engine-Netzwerk befinden

Die flexible GAE-Umgebung bietet Instanz-Startzeiten und Bereitstellungszeiten in Minutenbereich, unterstützt Hintergrund-Threads und -Prozesse und bietet sowohl manuelle als auch automatische Skalierung. Sie enthält automatische Sicherheits-Patches und unterstützt Secure Shell (SSH) Debugging. In dieser Umgebung können Entwickler die Laufzeit (über Dockerfile) ändern und auf viele Google-Cloud-APIs und -Dienste zugreifen, darunter Cloud Storage, Cloud SQL und Google Tasks.

10 häufige Anwendungen für serverlose Plattformen
Abbildung 2: Serverlose Plattformen wie Google App Engine sind von Natur aus skalierbar und ermöglichen eine schnelle Softwarebereitstellung.

Was sind die Hauptmerkmale von Google App Engine?

Die wichtigsten Funktionen von GAE sind:

  • API-Auswahl: GAE bietet mehrere integrierte APIs, darunter die folgenden:
    • Blobstore für die Bereitstellung großer Datenobjekte.
    • GAE Cloud Storage zum Lesen und Schreiben von Dateien während der Laufzeit der Anwendung.
    • Page Speed Service zur automatischen Beschleunigung der Ladezeiten von Webseiten.
    • URL Fetch Service zum Ausstellen von HTTP-Anfragen und Empfangen von Antworten für Effizienz und Skalierung.
    • Memcache zum Zwischenspeichern von Daten im Memory und zur Beschleunigung von Datenbankoperationen.
  • vollständig verwaltete Infrastruktur: GAE verwaltet die Infrastruktur, so dass sich die Entwickler auf das Schreiben von Code und die Entwicklung skalierbarer, leistungsstarker Anwendungen konzentrieren können.
  • Unterstützung für mehrere Programmiersprachen: GAE unterstützt all diese gängigen Entwicklungssprachen:
  • Anwendungsdiagnose: Mit GAE können Benutzer den Zustand und die Leistung von Anwendungen überwachen und Fehler schnell diagnostizieren und beheben.
  • Sicherheitsfunktionen: GAE ermöglicht es den Nutzern, mit der GAE-Firewall Zugriffsrichtlinien zu definieren und Secure-Sockets-Layer/Transport-Layer-Security-Zertifikate kostenlos zu nutzen, um die Anwendungssicherheit zu erhöhen.
  • Traffic Splitting: Mit GAE können Benutzer Anfragen an verschiedene Versionen der gleichen Anwendung weiterleiten.
  • Versionierung: Entwickler haben die Freiheit, verschiedene Versionen einer Anwendung in unterschiedlichen Umgebungen zu erstellen und zu hosten.
  • benutzerdefinierte Laufzeiten: Die flexible Umgebung von GAE unterstützt auch benutzerdefinierte Laufzeiten.

Vorteile von Google App Engine

GAE erweitert die Vorteile des Cloud Computing auf die Anwendungsentwicklung in mehrfacher Hinsicht.

  • einfache Einrichtung und Nutzung: GAE ist eine vollständig verwaltete Plattform, so dass Nutzer Code schreiben können, ohne sich Gedanken über den IT-Betrieb oder die Backend-Infrastruktur machen zu müssen. Mit den integrierten Tools von GAE können Nutzer verschiedene Anwendungstypen in unterschiedlichen Sprachen erstellen.
  • kostengünstige Pay-per-Use-Preise: Das GAE-Abrechnungssystem berechnet den Nutzern nur die Ressourcen, die sie täglich nutzen. Die Nutzer können ihre Ressourcennutzung und Rechnungen auf einem Dashboard überwachen.
  • Skalierbarkeit: Anwendungen werden automatisch skaliert, wenn die Arbeitslast schwankt.

Herausforderungen von Google App Engine

Je nach den Anforderungen einer Organisation an die Anwendungsverarbeitung kann die Verwendung von GAE einige Herausforderungen mit sich bringen.

  • mangelnde Kontrolle: Wenn ein Problem in der Backend-Infrastruktur auftritt, ist der Nutzer von Google abhängig, um es zu beheben.
  • verwirrende Benutzeroberfläche: Die Benutzeroberfläche von GAE kann verwirrend und schwer zu navigieren sein, insbesondere für neue Nutzer.
  • unzureichendes Dashboard: Das Dashboard von GAE bietet keine Ressourcenübersicht, so dass es schwierig ist, festzustellen, welche Ressourcen verbraucht wurden.
  • unzureichende Dokumentation: Das Fehlen einer aktuellen GAE-Dokumentation kann es einigen Nutzern erschweren, die Plattform zu verstehen, um sie effektiv zu nutzen.

Beispiel einer mit Google App Engine erstellten Anwendung

Ein Beispiel für eine mit GAE erstellte Anwendung ist eine Android-Messaging-App, die Nutzerprotokolldaten speichert. Die App kann Nutzernachrichten speichern und Ereignisprotokolle in die Firebase-Echtzeitdatenbank schreiben und diese zur automatischen Synchronisierung von Daten zwischen Geräten verwenden. Java-Server in der flexiblen GAE-Umgebung stellen eine Verbindung zur Firebase her und empfangen Benachrichtigungen von dort. Zusammen bilden diese Komponenten einen Backend-Streaming-Service zum Sammeln von Messaging-Protokolldaten.

Diese Definition wurde zuletzt im November 2024 aktualisiert

Erfahren Sie mehr über Cloud Computing