google-app-engine - gae - google app engine tutorial español
¿Las aplicaciones para Google App Engine se pueden usar en otros servidores? (7)
Como buen consultor, diría que la respuesta es "depende".
En primer lugar, siempre puede ejecutar un proyecto GAE en el SDK. Entonces, hasta ese punto, no estás obligado. Más allá de eso, depende de qué otras API uses. La biblioteca de aplicaciones web se parece mucho a otras, pero no creo que esté disponible como una aplicación independiente; sin embargo, GAE también es compatible con Django como un marco web, y eso, por supuesto, está disponible por sí solo.
El código es solo Python. Pero algunas de las API, como la API de datos, están realmente destinadas a interactuar con la nube de Google; no puede estar seguro de poder mover un programa GAE arbitrario a otra plataforma sin necesidad de volver a trabajar.
¿Cuán portátiles son las aplicaciones para Google App Engine? ¿Están estos obligados para siempre en el GAE?
No tengo mucha experiencia práctica de GAE, pero estuve leyendo este artículo recientemente, que toca su pregunta:
http://waxy.org/2008/04/exclusive_google_app_engine_ported_to_amazons_ec2/
Si usa Django 0.96, puede mover su código a un host diferente después de un trabajo menor. Deberá cambiar el puerto de sus modelos del almacén de datos a otra base de datos. Deberá dejar de usar la clase de usuario proporcionada por Google y posiblemente otras API específicas de Google.
He portado las aplicaciones de Django a GAE sin muchos problemas.
Puede usar gae2django para convertir aplicaciones de App Engine a la aplicación Django.
Como se menciona en este artículo, http://code.google.com/appengine/articles/pure_django.html
gae2django http://code.google.com/p/django-gae2django/
Si no utiliza el propio marco de WebApp de Google, sino que confía en herramientas más estandarizadas (no digo Django aquí), hay pocas cosas que aislar de la lógica de la aplicación central y hacer que sean conectables / intercambiables:
- almacenamiento, esta parece ser la parte más molesta, pero posible si no se usa mucho GQL (la API del almacén de datos se parece a otros ORMs suficientes para que Python los pruebe);
- la autenticación, parece ser una parte fácil, pero requiere escribir un back-end completo;
- en la memoria caché, Memcache API es algo diferente de Memcached (las diferencias son pequeñas, así que esto debería ser sencillo, ya que las operaciones de ambos sistemas son idénticas);
- inicio de la aplicación, tendría que escribir su propio iniciador WSGI (bastante fácil con Werkzeug ).
En mi opinión, vale la pena intentarlo.
He estado desarrollando para el motor de aplicación (java) durante unos meses.
Teóricamente, si se apega a estándares como JPA o JDO para acceso a datos
y no use funciones avanzadas como las colas de Tareas, no debería tener mucho
problema al transferir su aplicación a otro entorno.
Una vez dicho esto, a menudo me encuentro utilizando google apis de bajo nivel para el acceso al almacén de datos para evitar problemas de rendimiento de pesadilla. Los efectos secundarios de este problema pueden reducirse en cierta medida si el diseño de su aplicación tiene una capa de acceso a datos modular.
En otra nota, si tengo una aplicación que funciona sin problemas en el motor de la aplicación, no puedo pensar en ninguna razón para moverla a otro lugar.