Skip to main content

Manejo de versiones

El ecosistema de ASPA implementa una estrategia de versionado híbrida y optimizada. Este enfoque está diseñado para mantener la estabilidad del motor central de cálculo y procesamiento, al mismo tiempo que permite la evolución y coexistencia de múltiples interfaces de usuario.

Arquitectura de versionado

El sistema evita la duplicación innecesaria de recursos, dividiendo la gestión de versiones de la siguiente manera:

  • Servicios centralizados (Back Node y Worker): Existe una única versión en ejecución para ambos microservicios (rama develop). Actúan como un núcleo unificado que atiende las peticiones de todas las versiones del sistema. Las distintas funcionalidades que ofrecen se habilitan o adaptan dinámicamente dependiendo de la versión del Frontend que origine la consulta.
  • Servicios independientes (Frontend): La interfaz de usuario se versiona y aísla por completo. Actualmente, el sistema soporta la ejecución concurrente de múltiples versiones del Frontend (V1, V2, V2.5, V3 y V4), permitiendo mantener entornos legados junto a las versiones más recientes.

Infraestructura y Enrutamiento

Para lograr que estas interfaces coexistan sin interferencias y se comuniquen correctamente con el núcleo centralizado, el sistema se apoya en dos pilares de infraestructura:

  • Docker: Garantiza el aislamiento a nivel de entorno. A través de la definición de contenedores e imágenes, permite levantar cada versión del Frontend de forma totalmente independiente, gestionando sus propios volúmenes y redes internas.
  • Caddy (Proxy Inverso): Actúa como el controlador del tráfico externo. Mediante la configuración del Caddyfile, el proxy identifica la URL solicitada por el usuario y enruta la conexión hacia el contenedor del Frontend correspondiente.

Despliegue de una nueva versión

El proceso para agregar una nueva versión del sistema es ágil y se concentra exclusivamente en la configuración de la infraestructura y el enrutamiento. Los pasos a seguir son:

  1. Configuración de contenedores: Modificar el archivo docker-compose.yml para declarar y levantar la nueva imagen y contenedor correspondientes a la nueva versión del Frontend. Esto asegura que la nueva instancia arranque de forma independiente a las ya existentes.
  2. Configuración del proxy: Actualizar el archivo Caddyfile añadiendo una nueva sección o bloque de directivas. Aquí se debe definir la nueva URL o subdominio asignado a la nueva versión y apuntarlo hacia el puerto interno del contenedor recién creado.