2012-02-08 18 views
7

Tengo curiosidad por saber cómo otros desarrolladores se encargan del control de versiones de aplicaciones web y la implementación de diferentes versiones. El problema fundamental es que alguien podría estar utilizando su aplicación web cuando implemente una nueva versión, momento en el que el Javascript, etc., que no tienen en el lado del cliente, está desactualizado.Despliegue de aplicación web y varias versiones

de versiones los medios de comunicación en el lado del cliente es bastante fácil, pero si la versión que también es necesario para la versión de su lógica de negocio y la base de datos, que es donde las cosas podrían causar problemas ...

Así que ver un par de formas de tratar con esto:

  1. Muestra un aviso de "Actualización" en el sitio al implementar una nueva versión.

  2. Etiqueta de versión del lado del cliente y rechaza cualquier envío a la nueva versión de fuentes antiguas del lado del cliente. Bastante justo, pero realmente no va de la mano con la implementación continua.

  3. Migración continua de base de datos: ejecutar varias versiones de la aplicación al mismo tiempo (migración de usuarios a la nueva versión cuando sea posible). Esto necesitaría actualizaciones en el viejo esquema DB para ser "reenviado" al nuevo esquema. Parece el más atractivo para el despliegue, pero también podría ser terriblemente complejo.

  4. En algún lugar en el medio de los tres.

Debo señalar que Sé que preocuparse por este tipo de cosas está más allá de las necesidades de la mayoría de las aplicaciones, pero estaba pensando en ello y tengo curiosidad por saber como otros se refieren a ella.

+0

tema complejo. Revise la siguiente respuesta: http://stackoverflow.com/questions/389169/best-practices-for-api-versioning –

+0

buena pregunta – bhargav

Respuesta

-2

Hay muchas herramientas disponibles para sus necesidades exactas. Como Phing y Phingistrano. Git también lo hace simple, pero eso no mostrará notificaciones sin conexión y despliegue de DB. Recomiendo que no se implemente automáticamente en el servidor en vivo, utilice la implementación automática en etapas y la implementación manual en vivo. También busque la integración continua en google y tratar TeamCity

Cuestiones relacionadas