← Todos los proyectos

Una URL por rama, en la máquina de quien la escribe

Antes · por turnos1
Ahora · en paralelo3
ramas vivas a la vez
Sector
Herramientas internas de desarrollo
Duración
En uso desde el primer mes
Rol
Diseño, delegación a un agente y entrega

01El punto de partida

Una sola máquina, un solo juego de puertos y varias ramas vivas al mismo tiempo. Cambiar de una a otra era apagar el entorno entero, perder el estado de la base y esperar a que el siguiente levantara. Y para que alguien de afuera viera un cambio había que desplegarlo a un entorno compartido, donde la rama de al lado lo sobrescribe. El trabajo se serializaba por una razón que no tenía nada que ver con el trabajo.

02Con qué no se podía negociar

  • El código de la aplicación no se toca. Esto es infraestructura.
  • Cada rama con su propia base de datos, y sin pelearse por los puertos.
  • Alguien que llega tiene que poder instalarlo leyendo una sola página.
  • Compartir no puede costar velocidad: la dirección local sigue recargando al instante.

03La decisión

Un directorio de trabajo por rama, cada uno con su entorno aislado y su propia base. Un enrutador delante decide por nombre de dominio y descubre solo los que van apareciendo, así que agregar una rama no toca ninguna configuración central. Para compartir hacia afuera, un túnel contra un servidor propio con certificados reales. La alternativa descartada era un servidor de pruebas compartido: baja el trabajo de hoy y deja a las ramas peleándose por el mismo entorno, que es exactamente el problema que había que resolver. La construcción se delegó a un agente, con el alcance escrito antes que el código: qué comandos tenía que exponer, qué invariantes no podía romper, y un límite duro en que solo tocaba el entorno de previsualización y nunca producción.

04El trade-off

Lo que se cedió
Todo corre en la máquina de quien programa. Tres entornos en paralelo son tres veces la memoria, y el límite no lo pone el diseño sino la laptop. La dirección compartida por túnel, además, solo vive mientras esa máquina esté encendida y conectada.
Por qué valió la pena
A cambio, ninguna rama cuesta infraestructura y ninguna espera un despliegue para verse. El aislamiento es real (base propia) y no un acuerdo entre personas que se respeta hasta que alguien tiene apuro. Para lo que sí tiene que estar siempre disponible existe una tercera dirección, servida desde el servidor con el último envío, que no depende de que nadie tenga la máquina abierta.

05Lo que salió mal

Tres fallos aparecieron corriendo el ciclo completo a mano, y ninguno en los tests ni en el reporte del propio agente: un entorno servía errores con el esquema viejo, el túnel se rechazaba en silencio cuando la credencial estaba mal, y otro no podía escribir en su propio almacenamiento. Los tres tenían la misma causa: lo que falla no es levantar el entorno, es el estado que dejó el anterior. Cada uno se arregló en el punto donde aparecía —el entorno repara su esquema, el túnel dice ese error por su nombre, los permisos se ajustan desde adentro— y quedó la regla que ordena el resto: la pasada humana sobre una rama viva es la que da por bueno el trabajo, no el informe de quien lo hizo.

06El resultado

Tres direcciones por rama, una sola instalación y un comando. Una rama que se integra deja de publicarse y libera su lugar sola, sin que nadie se acuerde de limpiar. Un diagnóstico dice qué falta y con qué comando se arregla, antes de que falle. La herramienta está en uso y no está cerrada: vive en su propia rama sin integrar, y falta confirmar el caso de dos ramas compartidas a la vez. Lo que hay que automatizar no es levantar el entorno, es apagarlo.

¿Tienes algo parecido por delante? Cuéntame el caso y te respondo, casi siempre dentro de las 24 horas.

Hablemos