¿Es posible ejecutar Google App Engine Development Server en mi propio servidor? ¿Qué tan bien el almacén de datos del servidor de desarrollo puede manejar una carga alta y qué cantidad de datos lo paralizarán?¿Es posible ejecutar Google App Engine Development Server en mi propio servidor?
Respuesta
Algunas opciones para ejecutar una aplicación de App Engine sin App Engine:
- TyphoonAE, que se ejecuta Python aplicaciones usando una pila de componentes de código abierto populares
- appscale, que se ejecuta Python o aplicaciones Java fuera de Nube de Amazon EC2
No he intentado tampoco. Vea this question para una discusión adicional de ambos.
¿Qué tan bien funcionará el almacén de datos si simplemente gira dev_appserver.py en una IP pública? Si tiene muchos datos, mal. Cuando se utiliza el servidor de desarrollo, todo el almacén de datos se guarda en la memoria, por lo que al insertar datos, el uso de memoria de Python aumentará. Una vez que haya agregado suficientes datos para hacer que su sistema comience a intercambiar, su aplicación se volverá inusualmente lenta. Hay una opción en el servidor de desarrollo para usar un código auxiliar de SQLite en lugar del stub en memoria. Esto hace que el rendimiento sea tolerable con grandes cantidades de datos, pero no es tan eficiente como el almacén de datos de producción, por lo que el acceso al almacén de datos es relativamente lento incluso con pequeñas cantidades de datos. Ciertamente, mucho más lento que el almacén de datos en memoria con pequeñas cantidades de datos.
Ejecutar el servidor de desarrollo como servidor de producción autónomo es generalmente una mala idea. Los stubs API provistos con el servidor de desarrollo están diseñados para que los usen los desarrolladores, no los usuarios. P.ej. enviar correo solo escribe una entrada de registro en lugar de enviar correo; iniciar sesión como administrador implica hacer clic en una casilla que dice "iniciar sesión como administrador".
Si desea mover una aplicación existente de App Engine, use una de las opciones anteriores. Si está desarrollando una aplicación desde cero, use Django u otro marco que esté diseñado para ejecutarse en hardware genérico. El servidor de desarrollo está pensado para eso: desarrollo.
SÍ, con muchas características faltantes (colas paralelas, tareas cron, correo, XMPP, ...), algunos problemas de seguridad ocultos, bajo rendimiento y estabilidad, es técnicamente posible.
Como probablemente adivinó, es una mala idea.
Tomemos como ejemplo el servidor HTTP; utilizando el servidor de desarrollo pondría en Producción un documento BaseHTTPServer
sin documentar, bastante imposible de configurar y probablemente con algunos fallos de seguridad ocultos listos para ser explotados.
Como bien dijo @Drew, existen mejores opciones para ejecutar el código de Google App Engine en un entorno preparado para producción que no sea GAE.
Aunque esto es 2y + hilo de edad, sólo añadir mi información: http://www.jboss.org/capedwarf
- 1. Cómo ejecutar el servidor web CherryPy en Google App Engine
- 2. Imágenes de Blobstore que desaparecen en Google App Engine Development Server
- 3. ¿Google App Engine es compatible con ftp?
- 4. ¿Es posible una encuesta larga en Google App Engine?
- 5. ¿Es posible usar Django 1.2 en Google App Engine?
- 6. ¿Es posible evitar DoSing en Google App Engine?
- 7. Cambiar de Google App Engine a otro servidor
- 8. Jinja2 en Google App Engine
- 9. Django + Pydev/Eclipse + Google App Engine: ¿es posible?
- 10. Google App Engine: ¿es posible hacer una consulta Gql LIKE?
- 11. Google App Engine: ¿Cuál es su RDBMS?
- 12. Ejecutar Mezzanine en App Engine
- 13. Django en Google App Engine
- 14. Google App Engine Locking
- 15. Más rápido App Engine Development Datastore Alternativa
- 16. Google App Engine retraso extraño
- 17. Google-app-engine NDB
- 18. Google App Engine Geohashing
- 19. Ejecutar script en el inicio del servidor en Google App Engine, en Java
- 20. Google App Engine
- 21. Google App Engine: ¿quién es un administrador?
- 22. Google App Engine en Google Apps Domain
- 23. ¿Es posible instalar/acceder a SSL para mi aplicación Google App Engine?
- 24. ¿Qué tan rápido es Google App Engine?
- 25. Google App Engine: get_or_create()?
- 26. Google app engine & CDN
- 27. ¿Puede Google App Engine usar un servidor SMTP de terceros?
- 28. ¿Google App Engine es adecuado para mí?
- 29. web.py en Google App Engine
- 30. appengine_config.py en Google App Engine
La otra razón para no funcionar con el servidor de desarrollo es que se trata de un único subproceso. –
@Adam técnicamente también el servidor de producción tiene un solo hilo – systempuntoout
Es una especie de pelos partidos. Creo que quiso decir que el servidor de desarrollo solo puede atender una solicitud a la vez. –