Google App Engine – Wikipedia

before-content-x4

Cloud-Computing-Plattform als Service

after-content-x4

Google App Engine (oft bezeichnet als GAE oder einfach App Engine) ist eine Cloud-Computing-Plattform als Service für die Entwicklung und das Hosten von Webanwendungen in von Google verwalteten Rechenzentren. Anwendungen werden in einer Sandbox ausgeführt und auf mehreren Servern ausgeführt.[2] App Engine bietet eine automatische Skalierung für Webanwendungen. Wenn die Anzahl der Anfragen für eine Anwendung steigt, weist App Engine der Webanwendung automatisch mehr Ressourcen zu, um den zusätzlichen Bedarf zu bewältigen.[3]

Google App Engine unterstützt hauptsächlich Go-, PHP-, Java-, Python-, Node.js-, .NET- und Ruby-Anwendungen, kann aber auch andere Sprachen über “benutzerdefinierte Laufzeiten” unterstützen.[4] Der Dienst ist bis zu einem bestimmten Niveau der verbrauchten Ressourcen kostenlos und nur in einer Standardumgebung, jedoch nicht in einer flexiblen Umgebung. Für zusätzlichen Speicherplatz, Bandbreite oder Instanzstunden, die von der Anwendung benötigt werden, werden Gebühren erhoben.[5] Es wurde erstmals im April 2008 als Vorschauversion veröffentlicht und kam im September 2011 aus der Vorschau.

Unterstützte Funktionen/Einschränkungen[edit]

Laufzeiten und Framework[edit]

Google App Engine unterstützt hauptsächlich Go-, PHP-, Java-, Python-, Node.js-, .NET- und Ruby-Anwendungen, kann aber auch andere Sprachen über “benutzerdefinierte Laufzeiten” unterstützen.[4]

Zu den Python-Webframeworks, die auf Google App Engine ausgeführt werden, gehören Django, CherryPy, Pyramid, Flask, web2py und webapp2,[6] sowie ein benutzerdefiniertes von Google geschriebenes Webapp-Framework und mehrere andere, die speziell für die Plattform entwickelt wurden, die seit der Veröffentlichung entstanden sind.[7] Jedes Python-Framework, das WSGI mit dem CGI-Adapter unterstützt, kann zum Erstellen einer Anwendung verwendet werden. das Framework kann mit der entwickelten Anwendung hochgeladen werden. Bibliotheken von Drittanbietern, die in reinem Python geschrieben sind, können ebenfalls hochgeladen werden.[8][9]

Google App Engine unterstützt viele Java-Standards und -Frameworks. Kernstück ist die Servlet-2.5-Technologie mit dem Open-Source-Jetty-Webserver,[10] zusammen mit begleitenden Technologien wie JSP. JavaServer Faces arbeitet mit einigen Problemumgehungen. Eine neuere Version von App Engine Standard Java in der Beta unterstützt Java8, Servlet 3.1 und Jetty9.

Obwohl die integrierte Datenbank Google Cloud Datastore für Programmierer möglicherweise unbekannt ist, wird sie mit JPA, JDO und der einfachen Low-Level-API aufgerufen und unterstützt.[11] Es gibt mehrere alternative Bibliotheken und Frameworks, mit denen Sie die Daten modellieren und der Datenbank zuordnen können, z. B. Objectify,[12] Slim3[13] und Jello-Framework.[14]

after-content-x4

Das Spring Framework arbeitet mit GAE. Das Spring Security-Modul (sofern verwendet) erfordert jedoch Workarounds. Apache Struts 1 wird unterstützt und Struts 2 läuft mit Workarounds.[15]

Das Django-Web-Framework und darauf ausgeführte Anwendungen können mit Änderungen in App Engine verwendet werden. Django-nonrel[16] zielt darauf ab, Django die Arbeit mit nicht-relationalen Datenbanken zu ermöglichen, und das Projekt umfasst Unterstützung für App Engine.[17]

Zuverlässigkeit und Support[edit]

Alle abgerechneten App Engine-Anwendungen haben ein SLA für die Verfügbarkeit von 99,95 %.[18]

App Engine ist so konzipiert, dass es mehrere Rechenzentrumsausfälle ohne Ausfallzeiten überstehen kann. Diese Widerstandsfähigkeit gegenüber Ausfallzeiten zeigt sich in der Statistik, dass der High Replication Datastore über einen Zeitraum von einem Jahr eine Ausfallzeit von 0 % verzeichnete.[19]

Kostenloser Support wird in den App Engine-Gruppen, Stack Overflow, Server Fault und GitHub angeboten. Die Unterstützung durch einen Google-Mitarbeiter kann jedoch nicht garantiert werden.[20]

Kostenpflichtiger Support durch Google-Techniker wird im Rahmen von Premier-Konten angeboten.[21]

Massendownload[edit]

SDK-Version 1.2.2 bietet Unterstützung für Massendownloads von Daten mit Python.[22] Die Open-Source-Python-Projekte gaebar,[23] Approcket,[24] und gawsh[25] Benutzern auch das Herunterladen und Sichern von App Engine-Daten ermöglichen. Derzeit gibt es keine Methode zum Massendownload von Daten aus GAE mit Java.

Beschränkungen[edit]

  • Entwickler haben schreibgeschützten Zugriff auf das Dateisystem in App Engine. Anwendungen können nur virtuelle Dateisysteme wie gae-filestore verwenden.[26]
  • App Engine kann nur Code ausführen, der von einer HTTP-Anfrage aufgerufen wird (geplante Hintergrundaufgaben ermöglichen selbstaufrufende HTTP-Anfragen).
  • Benutzer können beliebige Python-Module hochladen, jedoch nur, wenn es sich um reine Python-Module handelt; C- und Pyrex-Module werden nicht unterstützt.
  • Java-Anwendungen dürfen nur eine Teilmenge (The JRE Class White List) der Klassen aus der JRE Standard Edition verwenden.[27] Diese Einschränkung besteht bei der App Engine-Standard-Java8-Laufzeit nicht.
  • Ein auf dem Server gestarteter Prozess zur Beantwortung einer Anfrage darf nicht länger als 60 Sekunden dauern (mit Version 1.4.0 gilt diese Einschränkung nicht mehr für Hintergrundjobs).
  • Unterstützt keine Sticky-Sitzungen (auch bekannt als Sitzungsaffinität), es werden nur replizierte Sitzungen unterstützt, einschließlich der Begrenzung der zu serialisierenden Datenmenge und der Zeit für die Sitzungsserialisierung.

Hauptunterschiede[edit]

Unterschiede zu anderen Anwendungshostings[edit]

Im Vergleich zu anderen skalierbaren Hosting-Diensten wie Amazon EC2 bietet App Engine mehr Infrastruktur, um das Schreiben skalierbarer Anwendungen zu vereinfachen, kann jedoch nur eine begrenzte Anzahl von Anwendungen ausführen, die für diese Infrastruktur entwickelt wurden.

Die Infrastruktur von App Engine beseitigt viele der Herausforderungen bei der Systemadministration und -entwicklung beim Erstellen von Anwendungen, die auf Hunderte von Anfragen pro Sekunde und darüber hinaus skaliert werden können.[28] Google übernimmt die Bereitstellung von Code in einem Cluster, die Überwachung, das Failover und das Starten von Anwendungsinstanzen nach Bedarf.

Während andere Dienste Benutzern die Installation und Konfiguration fast jeder *NIX-kompatiblen Software ermöglichen, erfordert App Engine von Entwicklern, nur die unterstützten Sprachen, APIs und Frameworks zu verwenden. Aktuelle APIs ermöglichen das Speichern und Abrufen von Daten aus der dokumentorientierten Google Cloud Datastore-Datenbank. Stellen von HTTP-Anfragen; Email schicken; Manipulieren von Bildern; und Cachen. Google Cloud SQL[29] kann für App Engine-Anwendungen verwendet werden, die ein relationales MySQL-kompatibles Datenbank-Back-End erfordern.[30]

Kontingente pro Tag und Minute beschränken die Bandbreiten- und CPU-Nutzung, die Anzahl der bedienten Anfragen, die Anzahl der gleichzeitigen Anfragen und die Aufrufe der verschiedenen APIs, und einzelne Anfragen werden beendet, wenn sie länger als 60 Sekunden dauern oder mehr als 32 MB Daten zurückgeben .

Unterschiede zwischen SQL und GQL[edit]

Die integrierte Google Cloud Datastore-Datenbank von Google App Engine hat eine SQL-ähnliche Syntax namens “GQL” (Google Query Language). GQL unterstützt die Join-Anweisung nicht.[31] Stattdessen können One-to-Many- und Many-to-Many-Beziehungen mithilfe von . erreicht werden ReferenceProperty().[32]

Google Firestore ist der Nachfolger von Google Cloud Datastore und ersetzt GQL durch eine dokumentbasierte Abfragemethode, die gespeicherte Objekte wie behandelt Dokumentensammlungen.

Bedenken hinsichtlich der Portabilität[edit]

Entwickler befürchten, dass die Anwendungen nicht von App Engine portiert werden können, und befürchten, an die Technologie gebunden zu sein.[33] Als Reaktion darauf gibt es eine Reihe von Projekten zur Erstellung von Open-Source-Back-Ends für die verschiedenen proprietären/geschlossenen APIs der App-Engine, insbesondere des Datenspeichers. AppScale, CapeDwarf und TyphoonAE[34] sind nur einige der Open-Source-Bemühungen.

AppScale stellt automatisch unveränderte Google App Engine-Anwendungen über gängige öffentliche und private Cloud-Systeme und lokale Cluster bereit und skaliert sie.[35] AppScale kann Python-, Java-, PHP- und Go-Anwendungen auf EC2, Google Compute Engine, Softlayer, Azure und anderen Cloud-Anbietern ausführen.

TaifunAE[34] kann Python App Engine-Anwendungen in jeder Cloud ausführen, die Linux-Maschinen unterstützt.

Das Web2py-Webframework bietet die Migration zwischen SQL-Datenbanken und Google App Engine, unterstützt jedoch nicht mehrere App Engine-spezifische Funktionen wie Transaktionen und Namespaces.[36]

Kubernetes ist ein Open-Source-Jobsteuerungssystem, das von Google erfunden wurde, um die Infrastruktur zu abstrahieren, sodass containerisierte Open-Source-Anwendungen (z. B. Docker) auf vielen Infrastrukturtypen wie Amazon Web Services, Microsoft Azure und anderen ausgeführt werden können. Dies ist eine der Antworten von Google auf die Bedenken hinsichtlich der Portabilität.

Back-Ends[edit]

Auf der Google I/O 2011 hat Google angekündigt App Engine-Back-Ends, die kontinuierlich ausgeführt werden dürfen und mehr Speicher verbrauchen.[37][38] Die Back-End-API wurde am 13. März 2014 zugunsten der Modules-API eingestellt.[39]

Google Cloud SQL[edit]

Im Oktober 2011 stellte Google eine wartungsfreie SQL-Datenbank vor, die JDBC und DB-API unterstützt.[40] Dieser Dienst ermöglicht das Erstellen, Konfigurieren und Verwenden relationaler Datenbanken mit App Engine-Anwendungen. Google Cloud SQL unterstützt MySQL 8.0, 5.7 und 5.6.[41]

Nutzungskontingente[edit]

Google App Engine erfordert zu Beginn ein Google-Konto. Mit einem Konto kann der Entwickler bis zu 25 kostenlose Anwendungen und eine unbegrenzte Anzahl kostenpflichtiger Anwendungen registrieren.[42]

Google App Engine definiert Nutzungskontingente für kostenlose Anwendungen. Verlängerungen dieser Kontingente können beantragt werden und Anwendungsautoren können für zusätzliche Ressourcen bezahlen.[43]

Siehe auch[edit]

Verweise[edit]

  1. ^ “Einführung von Google App Engine + unserem neuen Blog”. Google App Engine-Blog. 7. April 2008. Abgerufen 3. Dezember 2019.
  2. ^ “Python-Laufzeitumgebung – Google App Engine – Google Code”. 1999-02-22. Abgerufen 2012-02-14.
  3. ^ Sanderson, Dan (2009). Programmierung der Google App Engine: Erstellen und Ausführen skalierbarer Web-Apps in der Infrastruktur von Google. O’Reilly-Medien. ISBN 978-0-596-52272-8.
  4. ^ ein b “Google App Engine-Dokumentation | App Engine-Dokumentation”. Google Cloud. Abgerufen 3. Dezember 2019.
  5. ^ „Kontingente – Google App Engine – Google-Code“. 1999-02-22. Abgerufen 2012-02-14.
  6. ^ “Willkommen bei webapp2! — Dokumentation zu webapp2 v2.5.1”. Webapp-improved.appspot.com. Abgerufen 2012-02-14.
  7. ^ “AppEngineFrameworks – tipfy – Das allmächtige kleine Framework für Google App Engine – Google Project Hosting”. Abgerufen 2012-02-14.
  8. ^ “Was ist Google App Engine? – Google App Engine – Google Code”. 1999-02-22. Abgerufen 2012-02-14.
  9. ^ “Webapp-Übersicht – Google App Engine – Google Code”. 1999-02-22. Abgerufen 2012-02-14.
  10. ^ “Google hat Anlegestelle für App Engine gewählt”. Infoq.com. 2012-07-13. Abgerufen 2012-07-17.
  11. ^ “Google App Engine Datastore Low-Level-API”.
  12. ^ “Bibliothek objektivieren”.
  13. ^ “Slim3-Rahmen”.
  14. ^ “Jello-Framework”.
  15. ^ “WillItPlayInJava – googleappengine – Listet den Kompatibilitätsgrad verschiedener Java-Technologien und App Engine auf – Google App Engine – Google Project Hosting”. Abgerufen 2012-02-14.
  16. ^ “Django-nonrel – NoSQL-Unterstützung für Django”. Alle Tasten gedrückt. 2010-02-04. Abgerufen 2012-07-17.
  17. ^ “djangoappengine – Django App Engine-Back-Ends (DB, E-Mail usw.)”. Alle Tasten gedrückt. Abgerufen 2012-07-17.
  18. ^ „App Engine Service Level Agreement – ​​Google App Engine – Google Code“. 1999-02-22. Abgerufen 2012-02-14.
  19. ^ “Google App Engine-Blog: Happy Birthday High Replication Datastore: 1 Jahr, 100.000 Apps, 0 % Ausfallzeit”. Googleappengine.blogspot.com. 2012-01-05. Abgerufen 2012-02-14.
  20. ^ “Google Cloud-Plattform – Unterstützung”.
  21. ^ „Premier-Konten – Google App Engine – Google Code“. 1999-02-22. Abgerufen 2012-02-14.
  22. ^ „Hochladen und Herunterladen von Daten – Google App Engine – Google Code“. 1999-02-22. Abgerufen 2012-02-14.
  23. ^ arl. “aral/gaebar”. GitHub. Abgerufen 2012-02-14.
  24. ^ “approcket – Live-Synchronisierung zwischen AppEngine und MySQL – Google Project Hosting”. Abgerufen 2012-02-14.
  25. ^ “gawsh – Google Apps Web Service Helpers – Google Project Hosting”. Abgerufen 2012-02-14.
  26. ^ “gae-filestore – Einfaches virtuelles Dateisystem im Google App Engine DataStore – Google Project Hosting”. Abgerufen 2012-02-14.
  27. ^ „Die weiße Liste der JRE-Klasse – Google App Engine – Google Developers“. 1999-02-22. Abgerufen 2013-06-14.
  28. ^ “Python-Laufzeitumgebung – Google App Engine”. 2009-11-10. Abgerufen 2009-11-10.
  29. ^ “Google Cloud SQL-Datenbanken – Cloud SQL – Google Cloud Platform”. Google Cloud-Plattform.
  30. ^ „Verwenden von Google Cloud SQL – App Engine-Standardumgebung für Java – Google Cloud Platform“. Google Cloud-Plattform.
  31. ^ Google-Entwickler (7. April 2008). “Lagerfeuer One: Einführung von Google App Engine (Teil 3)” – über YouTube.
  32. ^ „Modellierung von Entitätsbeziehungen – Google App Engine – Google-Entwickler“. 2012-06-26. Abgerufen 2012-07-17.
  33. ^ Gallagher, Sean (2008-04-09). “Analyse: Google App Engine verlockend, wird schwer zu entkommen sein”. Ars Technica. Abgerufen 2012-07-17.
  34. ^ ein b “typhoonae – Typhoon App Engine – Google Project Hosting”. Abgerufen 2012-07-17.
  35. ^ AppScale startet als Open-Source-Backup-Äquivalent zu Google App Engine. TechCrunch (2013-06-24). Abgerufen am 18.09.2013.
  36. ^ [1] Archiviert 20. Februar 2010, an der Wayback Machine
  37. ^ Google I/O 2011: App Engine-Back-Ends auf Youtube
  38. ^ “Übersicht über die Back-Ends Python API – App Engine-Standardumgebung für Python – Google Cloud Platform”. Google Cloud-Plattform.
  39. ^ “Übersicht über die Back-Ends Python API – App Engine-Standardumgebung für Python – Google Cloud Platform”. Google Cloud-Plattform.
  40. ^ “Google Cloud SQL: Ihre Datenbank in der Cloud – Der offizielle Google Code-Blog”. 6. Oktober 2011.
  41. ^ “Cloud SQL-Funktionen – Cloud SQL-Dokumentation – Google Cloud Platform”. Google Cloud-Plattform.
  42. ^ “Allgemeine Fragen zu Google App Engine”. Google-Entwickler. Abgerufen 2015-06-18.
  43. ^ “Anwendungskontingente mit Google App Engine verstehen”. Abgerufen 2010-04-16.

Literaturverzeichnis[edit]

Externe Links[edit]


after-content-x4