Como probar diferentes versiones de un mismo código

Tengo una necesidad y no se como resolverla, llevo tiempo dándole vueltas, buscando información y no encuentro la forma correcta de hacerlo. Por eso pido que si alguien me pudiera orientar un poco, se lo agradecería.

Necesito poder tener varias versiones de un mismo código PHP corriendo, es decir, tengo la aplicación A en su versión 2 corriendo, pero quiero que algunos usuarios me prueben la versión 3 y otros la versión 4. Claro que eso debe hacerse de forma transparente para el usuario, debe loguearse con la misma dirección, con sus mismos datos, etc.

Una dificultad añadida es la base de datos, pero si resuelvo lo del código esto no me supone mayor problema. Se puede afrontar de varias formas, desde tener las tablas con diferentes nombres según la versión, o diferentes bases de datos para cada versión: bd_v1, bd_v2, etc…. y según se van migrando los usuarios se va pasando de una versión a otra. Claro que según va aumentando el número de usuarios esto se complica, por el tiempo necesario para la migración, pero hay técnicas para ello.

Evidentemente existirá una tabla/lista donde indique cada usuario a que versión de código ha de acceder.

El objetivo, por si alguien necesita una aclaración, es poder hacer pruebas de código sin que afecte al 100% de usuarios. Primero con un grupo reducido de betatesters, luego con uno más amplio y así hasta que se decide pasarlo a todos.

¿Alguien me puede pasar alguna referencia, algún artículo donde se explique cómo resolverlo?, porque se ve que no soy capaz de encontrarlo por mi mismo. Muchas gracias.

2 Replies to “Como probar diferentes versiones de un mismo código”

  1. Creo que quieres matar moscas a cañonazos, amigo.

    Si quieres hacer eso que comentas, en lugar de ejecutar todos los usuarios la misma aplicación, en la pantalla de login puedes añadir una funcion que te consulte en la base de datos esa tabla que indicas de que version esta ejecutando cada usuario, y en función de ese dato, los rediriges a 2 o 3 virtualhosts distintos de apache donde tienes las distintas versiones del codigo y cada version del codigo apuntando a su propia bbdd mysql.

    Por ejemplo, supongamos que la aplicacion es el famoso app.contoso.com, y tu quieres probar las versiones 3 y 4, pues añades al dns app3.contoso.com y app4.contoso.com, luego en apache añades al .conf los para app3 con una ruta /var/www/app3 y lo mismo para app4, y en mysql create database app3 y create database app4, cambias en el config de cada instancia la cadena de conexion de la bbdd y luego solo te queda modificar el fichero de login de app.contoso.com, añadiendo la funcion de la que hemos hablado antes, que sera quien te diga a que usuarios hay que redireccionar, y el resto siguen funcionando normalmente

    saludos y espero que te sirva de ayuda

  2. Fallo mio al no comentar que el sistema en el que quiero implantar eso cada usuario tiene su propio subdominio.

    Tenía claro que mediante el mod_rewrite debo interpretar las rutas (URL) de acceso y así que no cambien según la versión del código que esté ejecutando el cliente, a menos que sea necesario.

    Continuaremos buscando. Gracias de todas formas.