Google App Engine

Plattform zum Entwickeln und Bereitstellen von Webanwendungen

Google App Engine ist eine Plattform zum Entwickeln und Bereitstellen von Webanwendungen auf Servern des US-amerikanischen Unternehmens Google Inc. und seit 7. April 200 online.[1] Sie zählt zum sogenannten Platform-as-a-Service-Bereich.

Google App Engine
Platform as a Service
Sprachen Englisch
Betreiber Google Inc. (mehr)
Registrierung Google-Konto erforderlich
Online seit 7. Apr. 2008
https://cloud.google.com/appengine/

Entwicklungsumgebung

Bearbeiten

Es stand ursprünglich nur Python zur Verfügung, seit April 2009 auch die Java VM mit allen Sprachen, die dafür implementiert wurden (Clojure, Groovy, Scala, und JRuby; offizieller Grails-Support angekündigt für Grails v1.1.1)[2] Go wurde im Mai 2011 als weitere unterstützte Sprache aufgeführt.[3] Nach einjähriger Beta-Phase stehen seit März 2017 auch Ruby und Node.js, sowie C# als Beta, zur Verfügung.[4]

Dienste und Technologien

Bearbeiten

Google App Engine (GAE) stellt den Applikationen für beide Entwicklungsumgebungen verschiedene Dienste ("Services") zur Verfügung, denen Google-Technologien zugrunde liegen, die auch in anderen Google-Applikationen und Dienstleistungen Verwendung finden:

Persistenz

Bearbeiten

Der „Datastore“ ist ein verteilter Datenspeicherdienst mit Query-Engine und Transaktionssicherheit, aber ohne relationale Schemata, basierend auf dem „Bigtable“ Konzept. Für Java werden neben der Low Level API auch Teile von JDO und JPA unterstützt. Experimentell ist die relationale Datenbank Google Cloud SQL.

Authentifizierung

Bearbeiten

Basierend auf Google Accounts, d. h. Kunden mit Google-Konto können sich bei Anwendungen anmelden.

URL Fetch

Bearbeiten

Applikationen können über die Google-Infrastruktur auf Internetinhalte zugreifen.

Applikationen können E-Mails über die Google-E-Mail-Infrastruktur empfangen und versenden.

Memcache

Bearbeiten

In-Memory Cachefunktion für Daten, die nicht in der Persistenzschicht gelagert zu werden brauchen, aber in mehreren Instanzen der Applikation zur Verfügung stehen sollen. Der Cache basiert auf dem Open-Source-System memcached.

Bildmanipulation

Bearbeiten

Drehen, Spiegeln, Vergrößern, Verkleinern und Zuschneiden von Bildern.

Google Cloud SQL

Bearbeiten

Seit 2011 bietet Google mit Google Cloud SQL eine wartungsfreie SQL-Datenbank an, die JDBC und DB-API unterstützt.[5] Dieser Dienst ermöglicht es, relationale Datenbanken mit App-Engine-Anwendungen zu nutzen. Die Datenbank-Engine ist wahlweise MySQL, PostgreSQL oder Microsoft SQL Server.[6]

Server-Verhalten

Bearbeiten

Kommunikationsbeispiel

Bearbeiten
1. Client schickt Anforderung an den Scheduler der Google App Engine (GAE).
2. GAE sucht anhand der URL nach entsprechender Applikation.
3. Der am schnellsten reagierende Server wird für die Applikation ausgewählt.
4. Die Request-Inhalte werden der Applikation übergeben und auf den Server geladen.
5. Die Applikation wird auf dem Server gestartet und die verarbeiteten Daten als Antwort an die GAE zurückgeschickt.
6. GAE schickt Antwort wieder an Client zurück.

Applikationsverfügbarkeit

Bearbeiten

Die Applikation ist nicht permanent auf einem Server geladen. Um den Server zu entlasten, werden momentan nicht benötigte Applikationen nach 15 Minuten vom Server entfernt bzw. benötigte Applikationen kurzerhand auf den Server geladen (siehe "Kommunikationsbeispiel"). Dies wirkt einer Überlastung des Servers entgegen, sichert aber gleichzeitig die Verfügbarkeit jeder Applikation.

Der Dienst wird unter Einschränkung der genutzten Ressourcen auch kostenlos angeboten. Diese Einschränkungen umfassen unter anderem:

  • Die Applikationen dürfen maximal 28 CPU-Stunden pro Tag verwenden.
  • Die Seiten können unbegrenzt aufgerufen werden, sofern noch CPU-Stunden und Datenvolumen verfügbar sind.
  • Es dürfen 1 GB an Daten im High Replication Datastore gespeichert werden.
  • Mit der Mail API dürfen höchstens 100 Mails pro Tag verschickt werden.
  • Das eingehende und ausgehende Datentransfervolumen darf jeweils maximal 1 GB pro Tag betragen.

Weitere Ressourcen sind zukaufbar. Abgerechnet wird entsprechend dem tatsächlichen Mehrverbrauch. Bei einem kostenpflichtigen Vertrag entfallen diese Beschränkungen.

Einzelnachweise

Bearbeiten
  1. Paul McDonald: Introducing Google App Engine + our new blog. In: Google App Engine Blog. Google, 7. April 2008, abgerufen am 25. März 2017 (englisch).
  2. Java VM auf Google App Engine im Google Developer Blog
  3. App Engine 1.5.0 Release. In: Google App Engine Blog. 10. Mai 2011, abgerufen am 25. März 2017 (englisch).
  4. Paul Krill: Google App Engine adds C#, Node.js, and Ruby options. In: InfoWorld. 9. März 2017, abgerufen am 25. März 2017 (englisch).
  5. Google Cloud SQL: your database in the cloud
  6. Google Cloud SQL