68 votes

Avantages et inconvénients de Google App Engine

[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 :

  1. Pas besoin d'acheter des serveurs ou de l'espace serveur (pas de maintenance).
  2. Facilite la résolution du problème de la mise à l'échelle.
  3. Libérer jusqu'à un certain niveau les ressources consommées.

Cons :

  1. Verrouillé sur Google App Engine ?
  2. Les développeurs ont un accès en lecture seule au système de fichiers sur App Engine.
  3. 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).
  4. 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.
  5. 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)
  6. 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.
  7. 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.

14voto

Arpit Tambi Points 1021

Pour :

  • Évolutif
  • Facile et moins cher (à court terme).
  • Une option intéressante pour les start-ups/individus.
  • Convient aux applications qui ne font que stocker et récupérer des données.

Cons :

  • Ne convient pas aux calculs intensifs sur le processeur. Ils sont plus lents et coûteux.
  • L'évolutivité n'a pas beaucoup d'importance car si une application fonctionne à l'échelle de Google, elle gagne probablement assez d'argent pour fonctionner sur ses propres serveurs.
  • Ils présentent de nombreuses limitations ici et là, ce qui rend difficile l'analyse approfondie des données. Par exemple, vous ne pouvez pas produire un graphe social en utilisant GAE.

Je dirais qu'il n'est pas destiné aux entreprises sérieuses et qu'il est cher à long terme.

13voto

programmer Points 426

(Un énorme nouveau) PRO : GAE prend désormais en charge MySQL : https://developers.google.com/cloud-sql/

7voto

Rafael Sanches Points 926

Pour :

  • interface utilisateur intégrée pour les journaux unifiés

  • interface web intégrée pour les files d'attente de tâches

  • des index intégrés sur la liste des objets primaires.

Cons :

  • perdre des bûches très rapidement

  • TRES cher

  • TRES cher

  • TRES cher

  • Inattaquable. S'adapte parce que vous êtes obligé de coder d'une manière qui s'adapte.

  • Des cycles de développement plus longs. Parfois, on a juste envie de bricoler quelque chose et de le jeter au bout de 5 heures. Avec Appengine, il faut coder correctement et écrire beaucoup de choses pour s'assurer qu'il s'adapte. Vous ne pouvez pas simplement faire un "find . | grep .avi | xargs ffmpeg -compress ...." :)

  • Vous perdrez des heures à essayer d'effectuer les tâches les plus simples comme l'envoi de notifications push à l'APNS (iPhone). Mais cela ne pose aucun problème si vous souhaitez uniquement prendre en charge Android à l'avenir.

  • Terrible pour faire des nettoyages sur la base de données. C'est une ENORME douleur dans le cul pour corriger des lignes dans la base de données, principalement parce que c'est terriblement lent, mais il faut aussi beaucoup de code pour boucler correctement dans ses contraintes de temps.

  • Il a été difficile de porter Lucene pour qu'il fonctionne sur son "système de fichiers".

  • Lent pour ce que vous payez.

  • Encore plus cher si votre application connaît des pics de trafic. Mon application connaît ces pics lorsqu'un utilisateur qui a de nombreux followers effectue une action et que nous devons envoyer des notifications à ses followers. À cause de cela, je dois garder 10 serveurs inactifs en permanence ($$$$$) pour gérer les pics de trafic.

Appengine n'est pas trop mal, car j'ai la possibilité de graver $$$$ au lieu de me préoccuper de l'évolutivité et de la correction des goulets d'étranglement pour réduire l'utilisation des serveurs. Parfois, cela en vaut la peine.

Je conseille aux personnes qui lancent de nouveaux produits de choisir hetzner.de, où j'héberge les serveurs de mes autres produits. C'est bon marché et extrêmement facile à pirater. J'ai un serveur chez hetzner qui gère 3x plus de trafic que le produit que j'ai sur appengine. La différence de prix est de 100 $ par mois pour les versions 2700 $ par mois !

J'ai de l'expérience en tant qu'administrateur système, donc le résultat final est que je ne choisirais jamais appengine plutôt que d'avoir mon propre serveur Root. Ne soyez pas cet ingénieur logiciel qui s'ennuie et qui veut expérimenter de nouvelles choses au lieu de construire de bons produits !

5voto

Randell Points 2679

Pro : Extensibilité illimitée pour votre application et évolue en fonction de la demande.

4voto

voyager Points 17283

Contre : non disponible dans certains pays (Argentine).

Modifier

Disponible dans le monde entier, mais uniquement via Google Groups pour App Engine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X