[Eine aktualisierte Liste 21. August 09]
Helfen Sie mir, eine Liste aller Vor- und Nachteile des Erstellens einer Anwendung in der Google App Engine zu erstellen
Vorteile:
- Keine Notwendigkeit, Server oder Serverplatz zu kaufen (keine Wartung).
- Erleichtert die Lösung des Skalierungsproblems.
- Geben Sie bis zu einem bestimmten Grad an verbrauchten Ressourcen frei.
Nachteile:
- In Google App Engine eingeschlossen?
- Entwickler haben schreibgeschützten Zugriff auf das Dateisystem in App Engine.
- App Engine kann nur Code ausführen, der von einer HTTP-Anforderung aufgerufen wird (außer für geplante Hintergrundaufgaben).
- Benutzer können beliebige Python-Module hochladen, jedoch nur, wenn sie reines Python sind. C- und Pyrex-Module werden nicht unterstützt.
- App Engine begrenzt die maximale Anzahl von Zeilen, die von einer Entität zurückgegeben werden, auf 1000 Zeilen pro Datenspeicheraufruf. ( Update - App Engine unterstützt jetzt Cursor für den Zugriff auf größere Abfragen.)
- Java-Anwendungen dürfen nur eine Teilmenge (The JRE Class White List) der Klassen aus der JRE Standard Edition verwenden.
- Java-Anwendungen können keine neuen Threads erstellen.
Bekannte Probleme!! : http://code.google.com/p/googleappengine/issues/list
Harte Grenzen
Apps pro Entwickler - 10
Zeit pro Anforderung - 30 Sek.
Dateien pro App - 3.000
HTTP-Antwortgröße - 10 MB
Datenspeicherelementgröße - 1 MB
Anwendungscodegröße - 150 MB
Update Der Blob-Speicher ermöglicht jetzt die Speicherung von Dateien mit bis zu 50 MB
Pro oder Contra?
Die Infrastruktur von App Engine beseitigt viele der Systemverwaltungs- und Entwicklungsprobleme beim Erstellen von Anwendungen, die auf Millionen von Treffern skaliert werden können. Google übernimmt die Bereitstellung von Code in einem Cluster, die Überwachung, das Failover und das Starten von Anwendungsinstanzen nach Bedarf.
Während andere Dienste es Benutzern ermöglichen, nahezu jede * NIX-kompatible Software zu installieren und zu konfigurieren, müssen Entwickler bei App Engine Python oder Java als Programmiersprache und eine begrenzte Anzahl von APIs verwenden. Aktuelle APIs ermöglichen das Speichern und Abrufen von Daten aus einer nicht relationalen BigTable-Datenbank. HTTP-Anfragen stellen; Email schicken; Bilder manipulieren; und Caching. Die meisten vorhandenen Webanwendungen können nicht ohne Änderungen auf App Engine ausgeführt werden, da sie eine relationale Datenbank erfordern.