2009-12-14 21 views
9

Estoy pensando en usar Google App Engine. Va a ser un gran sitio web. En ese caso, ¿cuál es su consejo con Google App Engine? Escuché que GAE tiene restricciones como que no podemos almacenar imágenes o archivos de más de 1 MB de límite (van a cambiar esto de lo que leí en la hoja de ruta de GAE), la consulta está limitada a 1000 resultados y también voy a ver web2py con GAE . Entonces me gustaría saber sus comentarios.¿Google App Engine es adecuado para mí?

Gracias

+0

depende de sus requisitos ... – jldupont

+2

toda la información es pública ... por lo que puede hacer más que "escuchar sobre eso" ... usted puede "leer sobre esto" también ;-) – jldupont

+0

¿De verdad está planeando hacer una pregunta? He estado usando GAE para una serie de proyectos y realmente me gusta, pero es una olla de peces completamente diferente al usar una pila LAMP. Sugiero jugar con eso y sentirlo. – drxzcl

Respuesta

-11

Si usted está planeando en un 'enorme' sitio web, entonces no utilizan App Engine. Simple como eso. App Engine no está diseñado para ofrecer el próximo 1000 mejor sitio web.

Permítame también preguntarle qué quiere decir con 'enorme', ¿cuántos usuarios simultáneos? Consultas por segundo? Carga DB?

+3

Tengo curiosidad por saber qué te hace decir eso. Todo GAE está diseñado para escalar, escalar y escalar, a costa de una complejidad adicional. El único problema que veo es que con el modelo de fijación de precios de GAE pagará sin problemas o hará que exceda las cuotas realmente rápido. ¿Me falta algo? – drxzcl

+2

Me gustaría saber más también. No parece útil decir que App Engine no está diseñado para ofrecer el próximo 1000º sitio web sin decir por qué, especialmente cuando se desconoce la cuantificación de "enorme". – dtc

+11

App Engine está diseñado para eso exactamente. –

3

AppEngine usa BigTable como su almacén de datos. No intente escribir una aplicación tradicional basada en una base de datos relacional. BigTable es mucho más adecuado para su uso como una tienda de clave-valor altamente escalable. Evite las uniones si es posible.

2

No me preocuparía por nada de esto. Después de haber jugado con Google App Engine durante un tiempo, descubrí que se adapta bastante bien para grandes conjuntos de datos. Si sus elementos de datos son grandes (es decir, fotos), tendrá que integrarse con otro servicio para manejarlos, pero eso probablemente sea cierto sin importar qué con los datos de ese tamaño. Además, he encontrado que BigTable es relativamente fácil de usar, ya que proviene de un fondo completamente en bases de datos relacionales. Finalmente, Django es una "característica" algo oculta pero impresionante de Google App Engine. Si nunca lo ha usado, es un marco web realmente agradable y elegante que hace que muchas tareas comunes sean triviales (los formularios vienen a la mente aquí).

+0

Dado que OP mencionó web2py, es bastante probable que él/ella ya sepa mucho sobre Django. IMO, web2py hace muchas más * tareas comunes triviales que incluso Django. –

+0

Buen punto, me perdí un poquito. – Bialecki

8

Después de haber desarrollado un sitio más bien pequeña con GAE, tengo algunas ideas

  • Si usted se refiere a "gran" como "el próximo YouTube", a continuación, GAE podría ser un gran ajuste, debido a la escala mencionada anteriormente .

  • Si quiere decir "enorme" como "enormemente complejo, con una gran cantidad de pantallas, modelos y características", entonces GAE podría no ser una buena opción. Cosas como las pruebas unitarias son difíciles para GAE, y no hay una estructura incorporada para su aplicación que pueda obtener con algo así como (famoso) (Ruby on) Rails, o (con tecnología de Python) Turbogears.

ie: no hay entorno de ensayo: solo su copia de desarrollo del sistema y la producción. Esto puede o no ser algo malo, dependiendo de su situación.

Además, depende de los otros módulos de Python que pretenda instalar: algunos módulos de Python simplemente no se ejecutan en GAE (porque no se puede hablar con el hardware, o porque hay demasiados archivos en el paquete)

Esperanza esto ayuda

+4

No es del todo cierto acerca de la puesta en escena: puede implementar una versión principal alternativa, probarla y, a continuación, configurarla si funciona. –

+1

Nick tiene razón. Si se lo está preguntando, puede ir a "versiones" en el panel izquierdo del panel de la aplicación. Allí puede establecer qué versión quiere "en vivo". También puedes encontrar URL para la otra versión para que puedas probarlos antes de soltarlos en el mundo. – drxzcl

+1

Y las pruebas de unidades no son tan malas en mi experiencia con nosegae (http://code.google.com/p/nose-gae) y webtest (http://pythonpaste.org/webtest). –

5

usando web2py en Google App Engine es una gran estrategia. Le permite comenzar a funcionar rápidamente, y si supera las restricciones de GAE, puede mover su aplicación web2py a otra parte.

Sin embargo, mantener esta portabilidad significa que debe mantenerse alejado de las partes avanzadas de GAE (colas de tareas, transacciones, propiedad de listas, etc.).

+0

Tenga en cuenta que puede usar la cola de tareas con web2py (y de hecho lo usa internamente para mantener vivo de modo que GAE almacena en caché el código web2py y sirve las páginas más rápido) y puede usar las transacciones de uso para extender que GAE lo admite (usando el código web2py DAL en GAE run_in_transaction). A veces, para utilizar algunas funciones DAL, es posible que tenga que usar la API DAL frente a la API web2py. – mdipierro

+0

Buen punto sobre Task Queue. Estaba pensando en mi propio caso de uso donde necesito postprocesar los archivos cargados. – hoju

0

Mi única preocupación sería si para un gran sitio web (que consume mucho ancho de banda y CPU) si el alojamiento por sí mismo no sería más barato al final. (La pregunta es qué tan justas son las cuotas de Google y si el precio es competitivo en el extremo más alto).

Aparte de eso, active la facturación y deje que Google haga todo el trabajo de escalado para usted.

0

¿Qué hay de Google Wave? Se está construyendo en appengine, y una vez en vivo, el chat traducible en tiempo real llega al sector corporativo ... Pude ver que alcanzaba el 1000º puesto ... Pero, de nuevo, ese es un proyecto interno que hace cosas especiales que otras aplicaciones appengine pueden 't .... Como colgar hilos; Creo ... Y cualquier cosa que Wave tenga bajo el capó ...

+0

No creo que Google Wave se ejecute en App Engine. Sin embargo, fue escrito con Google Web Toolkit (GWT). –