Google App Engine
Entwickler (en) | |
---|---|
Erstveröffentlichung | 7. April 2008[1] |
Typ | Plattform als Dienst |
Webseite | Wolke |
Google App Engine (oft bezeichnet als als Gae oder einfach App Engine) ist ein Cloud Computing Plattform als Dienst Für die Entwicklung und Hosting Web Applikationen in Google verwaltet Daten Center. Anwendungen sind Sandbox und über mehrere Server rennen.[2] App Engine bietet eine automatische Skalierung für Webanwendungen an. Wie die Anzahl der Anforderungen für eine Anwendung erhöht, verteilt die App Engine automatisch mehr Ressourcen für die Webanwendung, um die zusätzliche Nachfrage zu bearbeiten.[3]
Die Google App Engine unterstützt hauptsächlich gehen, Php, Java, Python, Node.js, .NETZ, und Rubin Anwendungen, obwohl es auch andere Sprachen über "benutzerdefinierte Laufzeiten" unterstützen kann.[4] Der Service ist bis zu einem bestimmten Maß an konsumierten Ressourcen und nur in Standardumgebung, jedoch nicht in flexibler Umgebung. Gebühren werden für zusätzliche Lagerung berechnet, Bandbreite, oder Instanzstunden, die von der Anwendung erforderlich sind.[5] Es wurde erstmals im April 2008 als Vorschau -Version veröffentlicht und stammte im September 2011 aus der Vorschau.
Unterstützte Funktionen/Beschränkungen
Laufzeiten und Rahmen
Die Google App Engine unterstützt hauptsächlich gehen, Php, Java, Python, Node.js, .NETZ, und Rubin Anwendungen, obwohl es auch andere Sprachen über "benutzerdefinierte Laufzeiten" unterstützen kann.[4]
Python Web Frameworks, die in Google App Engine ausgeführt werden Django, Cherrypy, Pyramide, Flasche, Web2py und Webapp2,[6] sowie ein benutzerdefiniertes Google-geschriebenes WebApp-Framework und mehrere andere, die speziell für die seit der Veröffentlichung entstandene Plattform entwickelt wurden.[7] Jedes Python -Framework, der die unterstützt WSGI Die Verwendung des CGI -Adapters kann verwendet werden, um eine Anwendung zu erstellen. Das Framework kann mit der entwickelten Anwendung hochgeladen werden. In reine Python geschriebene Bibliotheken von Drittanbietern können ebenfalls hochgeladen werden.[8][9]
Die Google App Engine unterstützt viele JAVA -Standards und Frameworks. Kern dazu ist das Servlet 2.5 Technologie Verwenden der Open-Source Jetty -Webserver,[10] zusammen mit begleitenden Technologien wie z. JSP. Javaserver Gesichter arbeitet mit einigen Problemumgehungen. Eine neuere Veröffentlichung von App Engine Standard Java in Beta unterstützt Java8, Servlet 3.1 und Jetty9.
Obwohl die integrierte Datenbank, Google Cloud -Datenspeicher, kann den Programmierern nicht vertraut sein, es wird zugegriffen und unterstützt JPA, Jdound durch die einfache API auf niedriger Ebene.[11] Es gibt mehrere alternative Bibliotheken und Frameworks, mit denen Sie die Daten modellieren und in die Datenbank zuordnen können, wie z. B. ob ob ob ob ob ob ob ob ob ob ob ob ob ob ob ob ob ob.[12] Slim3[13] und Jello Framework.[14]
Das Federgerüst Arbeitet mit GAE. Das Spring Security Modul (falls verwendet) benötigt jedoch Problemumgehungen. Apache Streben 1 wird unterstützt und Streben 2 Läuft mit Problemumgehungen.[15]
Das Django Web Framework und Anwendungen, die darauf ausgeführt werden, können in App Engine mit Änderung verwendet werden. Django-nonrel[16] Ziel ist es, Django mit nicht-relationalen Datenbanken zu arbeiten, und das Projekt beinhaltet die Unterstützung für App Engine.[17]
Zuverlässigkeit und Unterstützung
Alle in Rechnung gestellten App -Engine -Anwendungen haben eine Verfügbarkeit von 99,95% SLA.[18]
Die App Engine ist so konzipiert, dass sie ohne Ausfallzeiten mehrere Rechenzentrumausfälle aufrechterhalten können. Diese Widerstandsfähigkeit gegen Ausfallzeiten zeigt die Statistik, dass der hohe Replikationsdatastore über einen Zeitraum von einem Jahr zu 0% Ausfallzeiten verzeichnete.[19]
Bezahlte Unterstützung von Google Engineers wird im Rahmen der Premier -Konten angeboten.[20]
Bulk -Herunterladen
SDK -Version 1.2.2 fügt Unterstützung für Bulk -Downloads von Daten mit Python hinzu.[21] Die Open Source Python -Projekte Gaebar,[22] Genehmigung,[23] und Gawsh[24] Ermöglichen Sie den Benutzern auch die Daten zur App -Engine herunterladen und sichern. Derzeit gibt es derzeit keine Methode zum Herunterladen von Daten von GAE von GAE derzeit.
Beschränkungen
- Entwickler haben nur Zugriff auf das Dateisystem in der App Engine gelesen. Anwendungen können nur virtuelle Dateisysteme wie Gae-Filestore verwenden.[25]
- Die App -Engine kann nur Code ausführen, das von einer HTTP -Anforderung aufgerufen wird (geplante Hintergrundaufgaben ermöglichen selbst aufgerufene HTTP -Anforderungen).
- Benutzer können willkürliche Python-Module hochladen, jedoch nur, wenn sie reine Python sind. C und Pyrex Module werden nicht unterstützt.
- Java -Anwendungen verwenden möglicherweise nur eine Untergruppe (die JRE -Klasse White -Liste) der Klassen aus der JRE Standard Edition.[26] Diese Einschränkung gibt es bei der Java8 -Laufzeit der App Engine Standard nicht.
- Ein Vorgang auf dem Server, um eine Anforderung zu beantworten, kann nicht länger als 60 Sekunden dauern (mit der Version 1.4.0 gilt diese Einschränkung nicht mehr für Hintergrundjobs).
- Unterstützt keine klebrigen Sitzungen (a.k.a. Sitzungsaffinität), nur replizierte Sitzungen werden unterstützt, einschließlich Einschränkung der seriellen Datenmenge und der Zeit für die Sitzungserialisierung.
Hauptunterschiede
Unterschiede mit anderen Anwendungs -Hosting
Im Vergleich zu anderen skalierbaren Hosting -Diensten wie z. Amazon EC2, App Engine bietet mehr Infrastruktur, um skalierbare Anwendungen einfach zu schreiben, kann jedoch nur eine begrenzte Reihe von Anwendungen ausführen, die für diese Infrastruktur ausgelegt sind.
Die Infrastruktur der App Engine entfernt viele der Systemverwaltung und -entwicklungsherausforderungen des Aufbaus von Anwendungen, um Hunderte von Anfragen pro Sekunde und darüber hinaus zu skalieren.[27] Google verarbeitet nach Bedarf den Bereitstellen von Code für einen Cluster, eine Überwachung, Failover und Start von Anwendungsinstanzen.
Während andere Dienste Benutzer nahezu jede *nix kompatible Software installieren und konfigurieren können, verlangt die App Engine, dass Entwickler nur ihre verwenden können Unterstützte Sprachen, APIs und Frameworks. Aktuelle APIs ermöglichen das Speichern und Abrufen von Daten aus dem dokumentorientierten dokumentorientierten Google Cloud -Datenspeicher Datenbank; HTTP -Anfragen machen; Email schicken; Bilder manipulieren; und zwischengespeichert. Google Cloud SQL[28] Kann für App -Engine -Anwendungen verwendet werden, die eine relationale benötigen Mysql Kompatible Datenbank -Backend.[29]
Pro Tag und pro Minute beschränken Quoten die Verwendung von Bandbreite und CPU, die Anzahl der geführten Anfragen, die Anzahl der gleichzeitigen Anfragen und die Aufrufe der verschiedenen APIs sowie einzelne Anfragen beendet, wenn sie mehr als 60 Sekunden dauern oder mehr als 32 MB Daten zurückgeben .
Unterschiede zwischen SQL und GQL
Google App Engine integriert Google Cloud -Datenspeicher Datenbank hat a Sql-ähnliche Syntax genannt "GQL"(Google Query Sprache). GQL unterstützt die nicht Verbinden Aussage.[30] Stattdessen können Eins-zu-Viele- und viele zu viele Beziehungen verwendet werden ReferenceProperty()
.[31]
Google Firestore ist der Nachfolger von Google Cloud DataStore und ersetzt GQL durch eine dokumentbasierte Abfragemethode, die gespeicherte Objekte als behandelt Sammlungen von Dokumenten.
Anliegen der Portabilität
Entwickler befürchten, dass die Anwendungen nicht von der App -Engine tragbar sind und befürchten, in die Technologie eingeschlossen zu werden.[32] Als Reaktion darauf gibt es eine Reihe von Projekten, um Open-Source-Back-Ends für die verschiedenen proprietären/geschlossenen APIs der App-Engine, insbesondere für den Datenspeicher, zu erstellen.AppscaleCapedwarf und Typhoonae[33] sind einige der Open -Source -Bemühungen.
Appscale Bereitet automatisch unmodifizierte Google App Engine-Anwendungen für beliebte öffentliche und private Cloud-Systeme bereitet und skaliert.[34] AppScale kann Python, Java, PHP und GO -Anwendungen auf EC2, Google Compute Engine, Softlayer, Azure und anderen Cloud -Anbietern ausführen.
Typhoonae[33] Kann Python App Engine -Anwendungen auf jeder Cloud ausführen, die Linux -Maschinen unterstützen.
Web2py Web Framework bietet eine Migration zwischen SQL-Datenbanken und Google App Engine, unterstützt jedoch nicht mehrere App-Engine-spezifische Funktionen wie Transaktionen und Namespaces.[35]
Kubernetes ist ein von Google erfundenes Open-Source-Jobkontrollsystem, um die Infrastruktur abstrahieren zu Amazon Web Services, Microsoft Azure, und andere. Dies ist eine der Antworten von Google auf das Anliegen der Portabilität.
Backends
Im Google I/O 2011 kündigte Google an App Engine Backends, die kontinuierlich laufen und mehr Speicher verbrauchen dürfen.[36][37] Die Backend -API wurde zum 13. März 2014 zugunsten der Module -API veraltet.[38]
Google Cloud SQL
Im Oktober 2011 stellte Google eine SQL-Datenbank mit Nullwartung vor, die JDBC und DB-API unterstützt.[39] Dieser Dienst ermöglicht das Erstellen, Konfigurieren und Verwenden von relationalen Datenbanken mit App Engine -Anwendungen. Google Cloud SQL unterstützt MySQL 8.0, 5.7 und 5.6.[40]
Nutzungsquoten
Die Google App Engine benötigt ein Google -Konto, um zu beginnen, und ein Konto kann es dem Entwickler ermöglichen, bis zu 25 kostenlose Anwendungen und eine unbegrenzte Anzahl von bezahlten Bewerbungen zu registrieren.[41]
Die Google App Engine definiert Verwendungsquoten für kostenlose Anwendungen. Erweiterungen zu diesen Quoten können angefordert werden, und die Autoren der Anwendung können zusätzliche Ressourcen bezahlen.[42]
Siehe auch
Verweise
- ^ "Einführung von Google App Engine + unserem neuen Blog". Google App Engine -Blog. 7. April 2008. Abgerufen 3. Dezember 2019.
- ^ "Python Runtime Umgebung - Google App Engine - Google Code". 1999-02-22. Abgerufen 2012-02-14.
- ^ Sanderson, Dan (2009). Programmieren von Google App Engine: Erstellen und Ausführen skalierbarer Web -Apps in der Infrastruktur von Google. O'Reilly Media. ISBN 978-0-596-52272-8.
- ^ a b "Dokumentation von Google App Engine | App Engine -Dokumentation". Google Cloud. Abgerufen 3. Dezember 2019.
- ^ "Quotas - Google App Engine - Google Code". 1999-02-22. Abgerufen 2012-02-14.
- ^ "Willkommen bei WebApp2! - WebApp2 V2.5.1 Dokumentation". Webapp-impulted.appspot.com. Abgerufen 2012-02-14.
- ^ "AppEngineFrameworks - TIPFY - Das allmächtige kleine Framework für Google App Engine - Google Project Hosting". Abgerufen 2012-02-14.
- ^ "Was ist Google App Engine? - Google App Engine - Google Code". 1999-02-22. Abgerufen 2012-02-14.
- ^ "WebApp -Übersicht - Google App Engine - Google Code". 1999-02-22. Abgerufen 2012-02-14.
- ^ "Google hat Jett für App Engine gewählt". Infoq.com. 2012-07-13. Abgerufen 2012-07-17.
- ^ "Google App Engine DataStore Low-Level-API".
- ^ "Bibliothek objektivieren".
- ^ "Slim3 Framework".
- ^ "Jello Framework".
- ^ "WillitPlayinjava - GoogleLeAppengine - listet den Grad der Kompatibilität verschiedener Java -Technologien und der App Engine - Google App Engine - Google Project Hosting" auf "Listet.. Abgerufen 2012-02-14.
- ^ "Django -nonrel - NoSQL -Unterstützung für Django". Alle Knöpfe gedrückt. 2010-02-04. Abgerufen 2012-07-17.
- ^ "Djangoappengine - Django App Engine Backends (DB, E -Mail usw.)". Alle Knöpfe gedrückt. Abgerufen 2012-07-17.
- ^ "App Engine Service Level -Vereinbarung - Google App Engine - Google Code". 1999-02-22. Abgerufen 2012-02-14.
- ^ "Google App Engine Blog: Alles Gute zum Geburtstag Hochreplikationsdatenspeicher: 1 Jahr, 100.000 Apps, 0% Ausfallzeit". GoogleLeAbengine.blogspot.com. 2012-01-05. Abgerufen 2012-02-14.
- ^ "Premier -Konten - Google App Engine - Google Code". 1999-02-22. Abgerufen 2012-02-14.
- ^ "Daten hochladen und herunterladen - Google App Engine - Google Code". 1999-02-22. Abgerufen 2012-02-14.
- ^ Aral. "Aral/Gaebar". Github. Abgerufen 2012-02-14.
- ^ "Genehmigung - Live -Synchronisation zwischen Appengine und MySQL - Google Project Hosting". Abgerufen 2012-02-14.
- ^ "Gawsh - Google Apps Web Service -Helper - Google Project Hosting". Abgerufen 2012-02-14.
- ^ "GAE -Filestore - Einfaches virtuelles Dateisystem im Google App Engine -DataStore - Google Project Hosting". Abgerufen 2012-02-14.
- ^ "Die JRE Class White List - Google App Engine - Google Developers". 1999-02-22. Abgerufen 2013-06-14.
- ^ "Python Laufzeitumgebung - Google App Engine". 2009-11-10. Abgerufen 2009-11-10.
- ^ "Google Cloud SQL -Datenbanken - Cloud SQL - Google Cloud -Plattform". Google Cloud -Plattform.
- ^ "Verwenden von Google Cloud SQL - App Engine Standardumgebung für Java - Google Cloud Platform". Google Cloud -Plattform.
- ^ Google -Entwickler (7. April 2008). "CAMPFIRE ONE: Einführung von Google App Engine (Pt. 3)" - über YouTube.
{{}}
:|last=
hat generischen Namen (Hilfe) - ^ "Modellierungsentitätsbeziehungen - Google App Engine - Google -Entwickler". 2012-06-26. Abgerufen 2012-07-17.
- ^ Gallagher, Sean (2008-04-09). "Analyse: Google App Engine verführerisch, wird schwer zu entkommen sein". ARS Technica. Abgerufen 2012-07-17.
- ^ a b "Typhoonae - Typhoon App Engine - Google Project Hosting". Abgerufen 2012-07-17.
- ^ AppScale startet als Open-Source-Sicherungs-Backup-Äquivalent zur Google App Engine. TechCrunch (2013-06-24). Abgerufen am 09.09.2013.
- ^ [1] Archiviert 20. Februar 2010 bei der Wayback -Maschine
- ^ Google I/O 2011: App Engine Backends an Youtube
- ^ "Backends Python API -Übersicht - App Engine Standardumgebung für Python - Google Cloud -Plattform". Google Cloud -Plattform.
- ^ "Backends Python API -Übersicht - App Engine Standardumgebung für Python - Google Cloud -Plattform". Google Cloud -Plattform.
- ^ "Google Cloud SQL: Ihre Datenbank in der Cloud - Das offizielle Google -Code -Blog". 6. Oktober 2011.
- ^ "Cloud SQL -Funktionen - Cloud SQL -Dokumentation - Google Cloud -Plattform". Google Cloud -Plattform.
- ^ "Allgemeine Fragen der Google App Engine". Google -Entwickler. Abgerufen 2015-06-18.
- ^ "Anwendungsquoten mit Google App Engine verstehen". Abgerufen 2010-04-16.
Literaturverzeichnis
- Sanderson, Dan (26. Oktober 2012), Programmieren von Google App Engine (2. Aufl.), O'Reilly Media, p. 536, ISBN 978-1449398262
- De Jonge, Adriaan (31. Oktober 2011), Essential App Engine: Erstellen von Hochleistungs-Java-Apps mit Google App Engine (1. Aufl.), Addison-Wesley Professional, p. 304, ISBN 978-0-321-74263-6
- Guermeur, Daniel; Unruh, Amy (24. November 2010), Google App Engine Java und GWT -Anwendungsentwicklung (1. Aufl.), Packt Publishing, p. 480, ISBN 978-1-84969-044-7
- Roche, Kyle; Douglas, Jeff (31. Dezember 2009), Beginn der Java Google App Engine (1. Aufl.), Apress, p. 375, ISBN 978-1-4302-2553-9
- Sanderson, Dan (23. November 2009), Programmieren von Google App Engine (1. Aufl.), O'Reilly Media, p.400, ISBN 978-0-596-52272-8
- Abfindung, Charles (22. Mai 2009), Verwenden von Google App Engine (1. Aufl.), O'Reilly Media, p.262, ISBN 978-0-596-80069-7
- Ciurana, Eugene (2. Februar 2009), Entwicklung mit Google App Engine (1. Aufl.), Apress, p. 164, ISBN 978-1-4302-1831-9
Externe Links
- Offizielle Marketingseite
- Offizielle Website
- Offizieller Google Cloud Platform -Blog
- Versionshinweise
- Google App Engine - Führen Sie Ihre Webanwendungen in der Infrastruktur von Google aus - Ein technischer Vortrag von Google Engineer Guido van Rossum bei Universität in Stanford. (Online -Videoarchiv)
- Vorteile der Einführung von Google App Engine
- Verwenden einer externen Datenbank mit Google App Engine
- Java Frameworks und Bibliotheken unterstützt
- Web2Py -Buch - Online -Dokumentation - Google App Engine -Bereitstellungsrezept
- Google Cloud SQL -Beispielprojekte
- Google Cloud unterstützt node.js
- Appmd: Python Development Beispielprojekt. App Engine/Django/Google Closure/Endpunkte/Materialdesign