¿Comentarios sobre el uso de Google App Engine? [cerrado]

125

Buscando hacer un proyecto lateral muy pequeño, rápido y sucio. Me gusta el hecho de que Google App Engine se ejecuta en Python con Django integrado, me da una excusa para probar esa plataforma ... pero mi pregunta es esta:

¿Alguien ha utilizado el motor de la aplicación para algo más que un problema de juguete? Veo algunas buenas aplicaciones de ejemplo, así que supongo que esto es lo suficientemente bueno para el negocio real, pero quería obtener algunos comentarios.

Cualquier otra nota de éxito / fracaso sería genial.

Agartzke
fuente
8
debe ser wiki comunitario
SilentGhost

Respuestas:

63

He probado el motor de aplicaciones para mi pequeña aplicación de vigilancia de terremotos http://quakewatch.appspot.com/

Mi propósito era ver las capacidades del motor de aplicaciones, así que aquí están los puntos principales:

  1. no viene por defecto con Django, tiene su propio marco web que es pitónico, tiene un despachador de URL como Django y usa plantillas de Django Entonces, si tiene Django exp. te resultará fácil de usar
  2. No puede ejecutar ningún proceso de ejecución prolongada en el servidor, lo que debe hacer es responder a la solicitud y lo que debe ser rápido, de lo contrario, appengine lo matará. Por lo tanto, si su aplicación necesita mucho procesamiento de backend, el complemento no es la mejor manera de lo contrario, tendrá que hacer el procesamiento en un servidor propio
  3. Mi aplicación Quakewatch tiene una función de suscripción, lo que significa que tuve que enviar por correo electrónico los últimos terremotos a medida que ocurrían, pero no puedo ejecutar un proceso en segundo plano en el motor de la aplicación para monitorear la nueva solución de terremotos aquí es utilizar un servicio de terceros como pingablity.com que puede conéctese a una de su página y que ejecute el correo electrónico de suscripción, pero aquí también tendrá que asegurarse de no pasar mucho tiempo aquí o dividir la tarea en varias partes
  4. Proporciona capacidades de modelado similares a las de Django, pero el backend es totalmente diferente, pero para un nuevo proyecto no debería importar.

Pero en general creo que es excelente para crear aplicaciones que no necesitan mucho procesamiento en segundo plano.

Editar: ahora las colas de tareas se pueden usar para ejecutar procesamiento por lotes o tareas programadas

Editar: después de trabajar / crear una aplicación real en GAE durante un año, ahora mi opinión es que, a menos que esté creando una aplicación que necesite escalar a millones y millones de usuarios, no use GAE. Mantener y realizar tareas triviales en GAE es un dolor de cabeza debido a la naturaleza distribuida.

Editar: los modelos deben estar especialmente diseñados teniendo en cuenta todas las transacciones que desea tener en el futuro, porque las entidades que solo se pueden usar en un mismo grupo de entidades pueden hacer que el proceso de actualización de dos grupos diferentes sea una pesadilla, por ejemplo, transferir dinero del usuario1 al usuario2 en la transacción es imposible a menos que estén en el mismo grupo de entidades, pero hacerlos del mismo grupo de entidades puede no ser el mejor para propósitos de actualización frecuente ... lea este http://blog.notdot.net/2009/9/Distributed-Transactions- en la aplicación del motor

Anurag Uniyal
fuente
66
Ahora el proceso por lotes se puede ejecutar en GAE
Anurag Uniyal
2
Consulte también la nueva API de Python de Task Queue en los documentos de App-Engine.
Jason Rikard
11
Mucha de esta información es obsoleta - Django 0.96 está ahora integrado en GAE a partir del 17 de julio de 2009.
ine
3
Djanjo 1.0.x también se incluye en GAE ahora. Puedes elegir qué revisión de Django quieres.
Laurent
55
Solo otra actualización, Django 1.1 ahora está disponible con GAE y versiones anteriores.
SingleNegationElimination
36

Estoy usando GAE para alojar varias aplicaciones de alto tráfico. Como en el orden de 50-100 req / seg. Es genial, no puedo recomendarlo lo suficiente.

Mi experiencia previa con el desarrollo web fue con Ruby (Rails / Merb). Aprender Python fue fácil. No me metí con Django o Pylons o cualquier otro marco, solo comencé con los ejemplos de GAE y construí lo que necesitaba a partir de las bibliotecas básicas de aplicaciones web que se proporcionan.

Si está acostumbrado a la flexibilidad de SQL, el almacén de datos puede tardar un poco en acostumbrarse. ¡Nada demasiado traumático! El mayor ajuste se está alejando de JOIN. Tienes que deshacerte de la idea de que la normalización es crucial.

Ben

social principal
fuente
23

Una de las razones más convincentes que he encontrado para usar Google App Engine es su integración con Google Apps para su dominio. Básicamente, le permite crear aplicaciones web personalizadas y administradas que están restringidas a los inicios de sesión (controlados) de su dominio.

La mayor parte de mi experiencia con este código fue crear una aplicación simple de seguimiento de tiempo / tarea. El motor de plantillas era simple y, sin embargo, hacía que una aplicación de varias páginas fuera muy accesible. La API de inicio de sesión / conciencia del usuario es igualmente útil. Pude hacer un paradigma de página pública / página privada sin demasiados problemas. (un usuario iniciaría sesión para ver las páginas privadas. A un usuario anónimo solo se le mostraba la página pública).

Me estaba metiendo en la parte del proyecto del almacén de datos cuando me alejaron por "trabajo real".

Pude lograr mucho (todavía no se ha hecho) en muy poco tiempo. Como nunca antes había usado Python, esto fue particularmente agradable (tanto porque era un nuevo lenguaje para mí como porque el desarrollo aún era rápido a pesar del nuevo lenguaje). Me encontré con muy poco que me llevó a creer que no podría cumplir mi tarea. En cambio, tengo una impresión bastante positiva de la funcionalidad y las características.

Esa es mi experiencia con eso. Quizás no represente más que un proyecto de juguete inacabado, pero representa una prueba informada de la plataforma, y ​​espero que ayude.

el2iot2
fuente
Casi idéntico a mi situación, aparte del "trabajo real", pero aún así es algo que necesito hacer y tener funcional al final.
agartzke
Igual que aquí. Además, la gran ventaja es que la instalación del entorno de desarrollo es muy sencilla (está codificando en un minuto). Lo mismo para las implementaciones.
Jilles
12

La idea de "App Engine ejecutando Django" es un poco engañosa. App Engine reemplaza toda la capa de modelo de Django, así que prepárate para pasar un tiempo aclimatarte con el almacén de datos de App Engine, que requiere una forma diferente de modelar y pensar en los datos.

sutee
fuente
Buen punto: parece que, por defecto, acepta las plantillas de Django, pero no necesariamente el resto.
agartzke
7

Usé GAE para construir http://www.muspy.com

Es un poco más que un proyecto de juguete, pero tampoco demasiado complejo. Todavía dependo de algunos problemas que Google debe abordar, pero en general el desarrollo del sitio web fue una experiencia agradable.

Si no desea lidiar con problemas de alojamiento, administración del servidor, etc., definitivamente puedo recomendarlo. Especialmente si ya conoces Python y Django.

Alexander Kojevnikov
fuente
7

Creo que App Engine es bastante bueno para pequeños proyectos en este momento. Hay mucho que decir para nunca tener que preocuparse por el alojamiento. La API también lo empuja hacia la construcción de aplicaciones escalables, lo cual es una buena práctica.

  • app-engine-patch es una buena capa entre Django y App Engine, que permite el uso de la aplicación de autenticación y más.
  • Google ha prometido un SLA y un modelo de precios para finales de 2008.
  • Las solicitudes deben completarse en 10 segundos, las solicitudes secundarias a los servicios web deben completarse en 5 segundos. Esto lo obliga a diseñar una aplicación rápida y liviana, descargando el procesamiento serio a otras plataformas (por ejemplo, un servicio alojado o una instancia EC2).
  • ¡Pronto vendrán más idiomas! Sin embargo, Google no dirá qué :-). Mi dinero está en Java a continuación.
tarde
fuente
a partir de febrero de 2009, muchas de las limitaciones anteriores se han aliviado.
husayt
3
Si alguien puede editar esta respuesta, sería bueno reflejar que Java es el próximo idioma disponible.
JasonSmith 03 de
1
@jhs ¡Tu comentario lo hace muy bien!
tarde
¡Y el idioma Go ahora también es compatible!
Davewasthere
6

Esta pregunta ha sido completamente respondida. Lo que es bueno. Pero una cosa quizás valga la pena mencionar. El motor de aplicaciones de Google tiene un complemento para el eclipse ide con el que es un placer trabajar.

Si ya haces tu desarrollo con eclipse, estarás muy contento con eso.

Para implementar en el sitio web del motor de aplicaciones de Google, todo lo que necesito hacer es hacer clic en un pequeño botón, con el logotipo del avión, super.

ruidosamente
fuente
4

Eche un vistazo al juego sql , es muy estable y de hecho superó los límites de tráfico en un punto, por lo que Google lo estranguló. No he visto más que buenas noticias sobre App Engine, aparte de alojar su aplicación en servidores que otra persona controla por completo.

Joe Skora
fuente
el juego sql pasó de Google App Engine a un servidor privado.
systempuntoout
4

Utilicé GAE para crear una aplicación simple que acepta algunos parámetros, formatos y envía correos electrónicos. Fue extremadamente simple y rápido. También hice algunos puntos de referencia de rendimiento en el almacén de datos GAE y los servicios de memcache ( http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html ). No es tan rápido. Mi opinión es que GAE es una plataforma seria que aplica cierta metodología. Creo que evolucionará a la plataforma verdaderamente escalable, donde las malas prácticas simplemente no están permitidas.

David Gruzman
fuente
4

Usé GAE para mi sitio de juegos flash, Bearded Games . GAE es una gran plataforma. Usé plantillas de Django que son mucho más fáciles que los viejos tiempos de PHP. Viene con un gran panel de administración y le brinda registros realmente buenos. El almacén de datos es diferente a una base de datos como MySQL, pero es mucho más fácil trabajar con él. Construir el sitio fue fácil y directo y tienen muchos consejos útiles sobre el sitio.

Josh Patton
fuente
3

Usé GAE y Django para crear una aplicación de Facebook. Utilicé http://code.google.com/p/app-engine-patch como mi punto de partida, ya que tiene soporte para Django 1.1. No intenté usar ninguno de los comandos manage.py porque supuse que no funcionarían, pero ni siquiera lo examiné. La aplicación tenía tres modelos y también usaba pyfacebook, pero ese era el alcance de la complejidad. Estoy en el proceso de crear una aplicación mucho más complicada sobre la que estoy empezando a bloguear en http://brianyamabe.com .

byamabe
fuente
Comencé a usar manage.py para ejecutar el servidor y también para ejecutar algunas pruebas unitarias. Ejecutar el servidor funciona bien, pero como mi aplicación se ejecuta como una aplicación de Facebook, no es tan útil (necesito un servidor alojado al que Facebook haga referencia). Las pruebas unitarias también funcionaron e incluso funcionaron con accesorios. Sin embargo, no pude obtener accesorios que hicieran referencia a otros modelos para trabajar. Todavía no he descubierto si es un problema con mi dispositivo o un problema con el parche de motor de aplicaciones.
byamabe