2010-02-07 17 views
12

Tengo una aplicación ejecutándose en App Engine que usa aproximadamente 50 horas de CPU al día. La mayor parte se gasta esperando el almacén de datos.Migrando fuera de App Engine

Estoy pensando en moverlo de AppEngine a algo así como Rackspace Cloud Servers porque creo que mi aplicación puede ser más eficiente si puedo descargar parte del trabajo a la base de datos (además, puedo agregar más características que serían difíciles para implementar en App Engine).

Entonces, ¿cómo podría hacer para mover una aplicación de AppEngine? Se desarrolla con el marco de aplicación web y no utiliza muchas API de Google que no sean el almacén de datos. Idealmente, podría mantener el código de webapp y cambiar las clases de db por algo que pudiera hablar con otra base de datos (MySQL o PostgreSQL es probablemente preferible a algo como CouchDB o MongoDB, pero también podrían funcionar).

ACTUALIZACIÓN: En respuesta a los comentarios a continuación ... He corrido un montón de aplicaciones web antes. No he ejecutado aplicaciones python de producción antes. Asumo que configurar el aspecto python/webserver es bastante simple. Mi deseo de ir con algo así como los servidores de Rackspace Cloud es que será 1 "servidor" que también puedo agregar recursos a medida que crecemos. Actualmente estamos haciendo unos 200 mil hits por día.

En cuanto a las optimizaciones de App Engine, estamos utilizando Memcache donde podemos (no en muchos lugares). También estamos utilizando Tareas, y aunque eso ayuda a superar los tiempos de espera de solicitud, se agrega a los recursos utilizados.

Mi pregunta principal es una buena alternativa de python para la capa de datos que podría requerir el menor número de cambios de código. Aunque también sé que probablemente haya algunas preguntas relevantes que no estoy pensando hacer.

+0

solo por curiosidad, ¿estás esperando a que el almacén de datos escriba o lea? ¿Estás usando Memcache y la cola de tareas? –

+0

Además, no está claro qué tipo de respuesta está buscando. ¿Has ejecutado una aplicación web completa antes? ¿Cuántos golpes por día tienes? necesitará varios servidores web? ¿Estás buscando recomendaciones marco, o paso a paso sobre cómo alojar una aplicación web en general? –

Respuesta

9

Si puede volver a implementar appscale, no tendrá que volver a escribir el código de su App Engine.

+0

Supongo que este es el camino a seguir. Tenía la impresión de que el framework webapp existía fuera de AppEngine, pero parece que estaba basado en web.py. Si bien appscale parece un poco como un hack para mí, proporciona una ruta de migración que permitiría reescribir lentamente o según sea necesario. Gracias. –

+0

@Jackson, podría reutilizar el código en el SDK para comenzar (eso es lo que han hecho los usuarios de Appscale, creo), dada la licencia de código abierto de este código y la arquitectura flexible "stubs and hooks", pero ¿por qué no aprovecharse de el trabajo que ya han hecho? Especialmente en la capa de datos, donde tienen varios adaptadores para varios sistemas de almacenamiento. No estoy seguro de qué es lo que te parece raro (aunque supongo que los comentarios no son el mejor foro para discutir esto ;-). ((Descargo de responsabilidad: no tengo nada que ver con Appscale, pero sí trabajo en Google y tengo muchos amigos en el equipo de appengine ;-)). –

1

Puede usar TyphoonAE, que está basado en el SDK, y está diseñado para implementaciones a pequeña y mediana escala, por ejemplo, servidores individuales a clusters pequeños, y debe ser bastante fácil de configurar.

Lamento verte.

+0

Bueno, ahora al menos tengo que ver cómo la nueva versión 1.3.1 cambia las cosas :) –