126 votes

Commentaires sur l'utilisation de Google App Engine?

Vous cherchez à faire un projet très petit et rapide? J'aime le fait que Google App Engine fonctionne sur Python avec Django intégré - cela me donne une excuse pour essayer cette plate-forme ... mais ma question est la suivante:

Quelqu'un a-t-il utilisé le moteur d'application pour autre chose qu'un problème de jouet? Je vois de bons exemples d’applications sur le marché, donc je suppose que c’est assez pour la vraie affaire, mais je voulais avoir des retours.

Toute autre note de réussite / échec serait géniale.

63voto

Anurag Uniyal Points 31931

J'ai essayé app engine pour mon petit tremblement de terre watch application http://quakewatch.appspot.com/

Mon but était de voir les capacités des app engine, donc, voici les principaux points:

  1. il n'est pas fourni par défaut avec django, il a son propre framework web qui est pythonic URL répartiteur comme django et il utilise des modèles django Donc, si vous avez django exp. vous le trouverez facile à utiliser
    • Mais vous pouvez utiliser n'importe quel pur framework en python et django peuvent être facilement ajoutés voir http://code.google.com/appengine/articles/django.html google-app-engine-django (http://code.google.com/p/google-app-engine-django/ projet est excellent et fonctionne presque comme travailler sur un projet django
  2. Vous pouvez pas exécuter un long processus en cours d'exécution sur le serveur, ce que vous avez à faire est de répondre à la demande et qui doit être rapide sinon appengine le tuera Donc, si votre application a besoin de beaucoup de traitement principal appengine est pas la meilleure façon sinon, vous aurez à faire le traitement sur un serveur de votre propre
  3. Mon quakewatch application dispose d'une fonctionnalité d'abonnement, cela signifie que j'ai dû envoyer plus tard des tremblements de terre comme ils les parages, mais je ne peux pas lancer un processus en arrière-plan dans app engine pour surveiller les nouveaux tremblements de terre solution ici est d'utiliser une troisième partie de service comme pingablity.com qui peut se connecter à l'une de vos page et qui exécute l'abonnement e-mailer mais ici aussi, vous devrez prendre soin de ne pas passer beaucoup de temps ici ou de la rupture d'une tâche en plusieurs morceaux
  4. Il fournit Django comme les capacités de modélisation, mais backend est totalement différente, mais pour un nouveau projet, il ne devrait pas d'importance.

Mais dans l'ensemble je pense qu'il est excellent pour créer des applications qui n'ont pas besoin de beaucoup de traitement en arrière-plan.

Edit: Maintenant files d'attente de tâches peuvent être utilisés pour l'exécution du traitement par lots ou des tâches planifiées

Edit: après le travail/la création d'une application réelle sur GAE pendant un an, maintenant, mon opnion est que si vous faites une demande qui doit à l'échelle de millions et de millions d'utilisateurs, ne pas utiliser de GAE. Maintenir et faire des tâches insignifiantes en FGA est un mal de tête dû à la nature distribuée, pour éviter de délai dépassé les erreurs, le comte d'entités ou de faire des requêtes complexes nécessite un code complexe, donc petit complexe de l'application devrait s'en tenir à la LAMPE.

Edit: Les modèles doivent être spécialement conçus en tenant compte de toutes les transactions que vous souhaitez avoir dans l'avenir, parce que les seules entités du même groupe d'entités peut être utilisé dans une transaction et que cela rend le processus de mise à jour de deux groupes différents d'un cauchemar par exemple, transférer de l'argent à partir de user1 à l'utilisateur2 dans la transaction est impossible, à moins qu'ils soient dans le même groupe d'entités, mais en les rendant même entité du groupe peut ne pas être le meilleur pour des mises à jour fréquentes des fins.... lire ce http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engine

36voto

mainsocial Points 991

Je suis à l'aide de GAE à l'hôte de plusieurs les applications à fort trafic. Comme sur l'ordre de 50 à 100 req/sec. Il est grand, je ne peux pas le recommander assez.

Mon expérience précédente avec le développement web a été avec Ruby (Rails/Merb). L'apprentissage de Python a été facile. Je n'ai pas jouer avec Django ou de Pylônes ou de tout autre cadre, tout a commencé à partir de la GAE exemples et réalisé ce que j'avais besoin de sortir de la base webapp bibliothèques qui sont fournis.

Si vous êtes habitué à la flexibilité de SQL à la banque de données peut prendre un certain obtention utilisé to. Rien de trop traumatisant! Le plus grand ajustement est éloignent les Jointures. Vous avez à se défaire de l'idée que la normalisation est essentielle.

Ben

23voto

automatonic Points 2830

L'une des raisons impérieuses j'ai rencontré pour l'utilisation de Google App Engine est son intégration avec Google Apps pour votre domaine. Essentiellement, il vous permet de créer sur mesure, géré applications web qui sont réservés à l' (contrôlée) des connexions de votre domaine.

La plupart de mon expérience avec ce code a été la construction d'un simple temps/le suivi des tâches de l'application. Le moteur de template est simple et pourtant fait une multi-application à une page très accessible. Le login/sensibilisation des utilisateurs de l'api est la même utilité. J'ai réussi à faire une page publique/privée modèle de page sans trop de problème. (un utilisateur connectez-vous pour voir les pages privées. Un utilisateur anonyme a été seulement montré la page publique.)

J'étais juste à entrer dans la banque de données partie du projet quand je suis sorti de "vrai travail".

J'ai été en mesure d'accomplir beaucoup de choses (c'est pas encore fait) dans un très petit laps de temps. Car je n'avais jamais utilisé Python, avant, c'était particulièrement agréable (à la fois parce que c'était une langue nouvelle pour moi, et aussi parce que le développement était encore rapide en dépit de la nouvelle langue). Je n'ai rencontré que très peu de ce qui m'a conduit à croire que je ne serais pas en mesure d'accomplir ma tâche. Au lieu de cela j'ai une assez bonne impression de la fonctionnalité et les caractéristiques.

C'est mon expérience avec elle. Peut-être qu'il ne représente pas plus qu'une inachevé jouet projet, mais il ne représente pas une informé de l'essai de la plate-forme, et j'espère que ça aide.

12voto

sutee Points 2335

L’idée de « App Engine running Django » est un peu trompeuse. App Engine remplace la couche de modèle de Django entière alors soyez prêt à passer du temps obtenir acclimaté avec le magasin de données de App Engine qui exige une façon différente de modélisation et de réflexion sur les données.

7voto

J’avais l’habitude de construire http://www.muspy.com GAE

C’est un peu plus qu’un projet de jouet, mais pas excessivement complexe non plus. Je compte encore sur quelques questions qui seront abordées par Google, mais globalement, développement du site a été une expérience agréable.

Si vous ne voulez pas traiter de questions de l’hébergement, administration de serveur, etc., je peux le recommander sans aucun doute. Surtout si vous connaissez déjà Python et Django.

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