[Une liste mise à jour le 21 août 09]
Aidez-moi à établir une liste de tous les avantages et inconvénients de la création d'une application sur le moteur Google App Engine
Pour :
- Pas besoin d'acheter des serveurs ou de l'espace serveur (pas de maintenance).
- Facilite la résolution du problème de la mise à l'échelle.
- Libérer jusqu'à un certain niveau les ressources consommées.
Cons :
- Verrouillé sur Google App Engine ?
- Les développeurs ont un accès en lecture seule au système de fichiers sur App Engine.
- App Engine peut seulement exécuter le code appelé à partir d'une requête HTTP (à l'exception des tâches d'arrière-plan programmées).
- Les utilisateurs peuvent télécharger des modules Python arbitraires, mais seulement s'ils sont purement Python ; les modules C et Pyrex ne sont pas supportés.
- App Engine limite le nombre maximum de lignes retournées depuis une entité get à 1000 lignes par appel Datastore. ( Mise à jour - Le moteur d'application supporte maintenant les curseurs pour accéder à des requêtes plus importantes)
- Les applications Java ne peuvent utiliser qu'un sous-ensemble (la liste blanche des classes du JRE) des classes de l'édition standard du JRE.
- Les applications Java ne peuvent pas créer de nouveaux threads.
Problèmes connus ! : http://code.google.com/p/googleappengine/issues/list
Limites strictes
Applications par développeur - 10
Temps par demande - 30 sec
Fichiers par application - 3 000
Taille de la réponse HTTP - 10 Mo
Taille de l'élément du Datastore - 1 MB
Taille du code de l'application - 150 MB
Mise à jour Le magasin Blob permet désormais de stocker des fichiers d'une taille maximale de 50 Mo.
Pour ou contre ?
L'infrastructure d'App Engine élimine une grande partie des problèmes d'administration système et de développement liés à la création d'applications pouvant atteindre des millions de visites. Google s'occupe du déploiement du code sur un cluster, de la surveillance, du basculement et du lancement des instances d'application si nécessaire.
Alors que d'autres services permettent aux utilisateurs d'installer et de configurer presque tous les logiciels compatibles *NIX, App Engine exige des développeurs qu'ils utilisent Python ou Java comme langage de programmation et un ensemble limité d'API. Les API actuelles permettent de stocker et d'extraire des données d'une base de données non relationnelle BigTable, d'effectuer des requêtes HTTP, d'envoyer des e-mails, de manipuler des images et de mettre en cache. La plupart des applications Web existantes ne peuvent pas fonctionner sur App Engine sans modification, car elles nécessitent une base de données relationnelle.