Question

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

Quelqu'un at-il utilisé le moteur d'applications 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 suffisant pour la réalité, mais je voulais obtenir un retour.

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

Était-ce utile?

La solution

J'ai essayé le moteur d'applications pour ma petite application Quake Watch http://quakewatch.appspot.com/

Mon but était de voir les capacités du moteur d'applications, voici donc les points principaux:

  1. cela ne vient pas par défaut avec django, il a son propre framework web qui est pythonic a un dispatcher d'URL comme django et il utilise des templates django Donc, si vous avez django exp. vous le trouverez facile à utiliser
  2. Vous ne pouvez pas exécuter de processus longs sur le serveur. Vous répondez à la demande, ce qui devrait être rapide, sinon Appengine le tuerait. Donc, si votre application a besoin de beaucoup de traitement backend, appengine n'est pas la meilleure solution. sinon, vous devrez traiter sur un serveur de votre choix
  3. Mon application quakewatch dispose d'une fonctionnalité d'abonnement. Cela signifie que j'ai dû envoyer un e-mail aux derniers tremblements de terre, mais je ne peux pas exécuter de processus d'arrière-plan dans le moteur d'applications pour surveiller les nouveaux tremblements de terre. La solution consiste ici à utiliser un service tiers, tel que pingablity.com, capable de se connecter à l’une de vos pages et d’exécuter l’email de l’abonnement. mais ici aussi, vous devrez veiller à ne pas passer beaucoup de temps ici ou diviser la tâche en plusieurs morceaux
  4. Il offre des fonctionnalités de modélisation similaires à celles de Django, mais le back-end est totalement différent, mais pour un nouveau projet, cela ne devrait pas avoir d'importance.

Mais dans l’ensemble, je pense que c’est excellent pour la création d’applications ne nécessitant pas beaucoup de traitement en arrière-plan.

Modifier: À présent, les files d'attente de tâches peuvent être utilisés pour l'exécution d'un traitement par lot ou de tâches planifiées

Modifier: Après avoir travaillé / créé une véritable application sur GAE pendant un an, mon avis est que, sauf si vous créez une application qui doit s’adapter à des millions et des millions d’utilisateurs, n’utilisez pas GAE. Maintenir et exécuter des tâches triviales dans GAE est un casse-tête dû à la nature distribuée. Pour éviter les erreurs de dépassement des délais, compter les entités ou effectuer des requêtes complexes, il faut un code complexe. Par conséquent, une petite application complexe doit rester fidèle à LAMP.

Modifier: Les modèles doivent être spécialement conçus en tenant compte de toutes les transactions que vous souhaitez effectuer à l'avenir, car les entités ne faisant partie que du même groupe d'entités peuvent être utilisées dans une transaction, ce qui rend cauchemardesque le processus de mise à jour de deux groupes différents. Transférer de l'argent d'un utilisateur à un autre en transaction est impossible à moins que ces utilisateurs appartiennent au même groupe d'entités, mais leur utilisation ne peut pas être préférable pour les mises à jour fréquentes .... lisez cette http://blog.notdot.net/2009/9 / Distributed-Transactions-on-App-Engine

Autres conseils

J'utilise GAE pour héberger plusieurs applications à fort trafic. Comme sur l’ordre de 50-100 req / sec. C’est génial, je ne le recommanderai jamais assez.

Mon expérience précédente avec le développement Web était avec Ruby (Rails / Merb). Apprendre Python était facile. Je ne me suis pas moqué de Django, de Pylons ou de tout autre framework, je viens de commencer avec les exemples GAE et de construire ce dont j'avais besoin à partir des bibliothèques de base d'applications Web fournies.

Si vous êtes habitué à la flexibilité de SQL, le magasin de données peut prendre un certain temps pour s'y habituer. Rien de trop traumatisant! Le plus gros ajustement consiste à s'éloigner des JOIN. Vous devez abandonner l'idée que la normalisation est cruciale.

Ben

L’utilisation de Google App Engine pour l’intégration de Google Apps à votre domaine est une des raisons impérieuses qui m’a motivé. En gros, il vous permet de créer des applications Web gérées et personnalisées limitées aux connexions (contrôlées) de votre domaine.

Mon expérience de ce code consistait principalement à créer une application simple de suivi du temps et des tâches. Le moteur de gabarit était simple, mais rendait une application multi-pages très accessible. L'API de connexion / de sensibilisation des utilisateurs est également utile. J'ai pu créer un paradigme de page publique / page privée sans trop de problème. (Un utilisateur se connecterait pour voir les pages privées. La page publique n’a été affichée qu’à un utilisateur anonyme.)

Je commençais juste à entrer dans la partie du projet relative au magasin de données lorsque je me suis éloigné pour un "vrai travail".

J'ai pu accomplir beaucoup de choses (ce n'est toujours pas fait) en très peu de temps. Comme je n’avais jamais utilisé Python auparavant, c’était particulièrement agréable (à la fois parce que c’était un nouveau langage et aussi parce que le développement était encore rapide malgré le nouveau langage). J'ai rencontré très peu de choses qui me laissaient croire que je ne pourrais pas accomplir ma tâche. Au lieu de cela, j'ai une impression assez positive de la fonctionnalité et des fonctionnalités.

C'est mon expérience avec cela. Cela ne représente peut-être pas plus qu'un projet de jouet inachevé, mais il représente un essai en connaissance de cause de la plate-forme, et j'espère que cela aidera.

Le "moteur d'application fonctionnant avec Django". L'idée est un peu trompeuse. App Engine remplace l'intégralité de la couche de modèle Django. Soyez donc prêt à vous habituer au magasin de données d'App Engine, qui nécessite une méthode de modélisation et de réflexion des données différente.

J'ai utilisé GAE pour créer http://www.muspy.com

C'est un peu plus qu'un projet de jouet mais pas trop complexe non plus. Je compte toujours sur quelques problèmes à résoudre par Google, mais globalement, le développement du site Web a été une expérience agréable.

Si vous ne souhaitez pas gérer les problèmes d’hébergement, d’administration de serveur, etc., je peux le recommander. Surtout si vous connaissez déjà Python et Django.

Je pense que App Engine est assez cool pour les petits projets à ce stade. Il y a beaucoup à dire pour ne jamais avoir à se soucier de l'hébergement. L’API vous pousse également à créer des applications évolutives, ce qui est une bonne pratique.

  • app-engine-patch est une bonne couche entre Django et App. Moteur permettant d’utiliser l’application auth et plus encore.
  • Google a promis un contrat de niveau de service et un modèle de tarification d'ici la fin de 2008.
  • Les demandes doivent être terminées en 10 secondes et les sous-demandes de services Web doivent être traitées en 5 secondes. Cela vous oblige à concevoir une application rapide et légère, en déchargeant le traitement sérieux vers d'autres plates-formes (par exemple, un service hébergé ou une instance EC2).
  • Plus de langues sont à venir! Google ne dira pas lequel cependant :-). Mon argent est sur Java ensuite.

Cette question a reçu une réponse complète. Ce qui est bon. Mais une chose mérite peut-être d'être mentionnée. Le moteur d'applications Google a un plugin pour l'éclipse ide qui est un plaisir de travailler avec.

Si vous faites déjà votre développement avec eclipse, vous en serez très heureux.

Pour déployer sur le site Web du moteur d'applications Google, il suffit de cliquer sur un petit bouton - avec le logo de l'avion - super.

Jetez un coup d'oeil au jeu SQL , il est très stable et limite réellement la circulation à un moment donné. de sorte qu'il se faisait étrangler par Google. Je n'ai vu que de bonnes nouvelles concernant App Engine, mis à part l'hébergement de votre application sur des serveurs que quelqu'un d'autre contrôle complètement.

J’ai utilisé GAE pour créer une application simple qui accepte certains paramètres, formats et envoi d’e-mails. C'était extrêmement simple et rapide. J'ai également effectué des tests de performances sur les services de banque de données GAE et memcache ( http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html ). Ce n'est pas si vite. Mon opinion est que GAE est une plate-forme sérieuse qui applique certaines méthodologies. Je pense que cela va évoluer vers une plate-forme réellement évolutive, où les mauvaises pratiques sont tout simplement interdites.

J'ai utilisé GAE pour mon site de jeu flash, Jeux barbus . GAE est une excellente plateforme. J'ai utilisé les modèles Django, qui sont tellement plus simples que l'ancien PHP. Il est livré avec un excellent panneau d’administration et vous donne de très bons journaux. Le datastore est différent d'une base de données telle que MySQL, mais il est beaucoup plus facile de travailler avec. La construction du site a été facile et simple et ils ont de nombreux conseils utiles sur le site.

J'ai utilisé GAE et Django pour créer une application Facebook. J'ai utilisé http://code.google.com/p/app-engine-patch comme point de départ car il est supporté par Django 1.1. Je n'ai pas essayé d'utiliser les commandes manage.py parce que je pensais qu'elles ne fonctionneraient pas, mais je n'y ai même pas regardé. L'application avait trois modèles et utilisait également pyfacebook, mais c'était l'ampleur de la complexité. Je suis en train de créer une application beaucoup plus complexe sur laquelle je commence à bloguer sur http://brianyamabe.com .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top