Selección de versión de flow basada en contexto para pruebas canary
Esta guía explica cómo aprovechar Context-Based Flow Version Selection para implementar pruebas canary de nuevas versiones de flows en tus servicios. Cubriremos los conceptos fundamentales, prerrequisitos y un procedimiento de implementación detallado.
Introducción a la selección de versión
La selección de versión permite un enrutamiento impulsado por configuración basado en headers de mensajes. Si tus servicios ya usan Context-Based Flow Version Selection, puedes ampliar esta funcionalidad para soportar pruebas canary de nuevos flows. Las instancias del servicio utilizan el header ipf_version_selection junto con reglas de enrutamiento personalizables para facilitar pruebas controladas de nuevas versiones de flows.
Cómo funciona la selección de versión
La selección de versión opera mediante un proceso en tres pasos:
-
El sistema detecta los headers de mensaje en los puntos de entrada de iniciación del flow (normalmente receive connectors o controladores de Spring)
-
Los headers seleccionados se añaden al contexto (principalmente
ipf_version_selection, aunque se admiten headers personalizados) -
Las reglas de selección de versión evalúan el contexto para determinar la versión de flow apropiada para enrutar el mensaje

Prerrequisitos para implementar pruebas canary
Los siguientes requisitos deben abordarse antes de implementar pruebas canary con selección de versión.
-
Modificaciones en el iniciador de transacciones
-
Para realizar en los componentes que envían mensajes de iniciación a tus servicios de orquestación (canales, gateways de sistemas de clearing, etc.)
-
Añade lógica para incluir el header
ipf_version_selection(o un header personalizado) en los mensajes de iniciación-
Consulta cómo hacerlo con ayuda de IPF Connector Framework
-
-
Implementa la inclusión configurable del header según tus criterios de pruebas canary:
-
Segmentación de subconjuntos de usuarios (basada en roles, feature flags, pertenencia a grupos, etc.)
-
Distribución basada en porcentaje (p. ej., 90%
STABLE, 10%CANARY)
-
-
Habilita capacidades de reconfiguración rápida mediante:
-
Cambios en la configuración de despliegue
-
Llamadas a APIs para ajustes inmediatos
-
-
-
Reglas de selección de versión
-
Para realizar en cada uno de tus servicios de orquestación
-
Define reglas para mapear valores de headers a versiones específicas de flows
-
Elige una estrategia de despliegue de reglas:
-
Empaquetar reglas dentro de los JARs de la aplicación
-
Proveer reglas únicamente mediante gestión de configuración de despliegue (p. ej., ConfigMaps de Kubernetes)
-
Consulta la documentación técnica para especificaciones detalladas de reglas
-
-
Procedimiento paso a paso para pruebas canary
Esta sección describe el procedimiento recomendado para implementar pruebas canary usando el header ipf_version_selection con STABLE y CANARY como posibles valores del header.
Fase 1: configuración inicial
-
Sincronizar versiones de flow
-
Asegura que todas las instancias del servicio usen versiones idénticas para los valores
STABLEyCANARY -
Actualiza las reglas de selección de versión mediante:
-
Modificaciones de configuración de despliegue
-
-
Configura inicialmente ambos valores para enrutar a la versión estable actual. Enrutar a versiones estables asegura que ninguna transacción se enrutará a nuevas versiones de flow antes de que estés listo para comenzar tus pruebas.
-
-
Configurar generación de mensajes
-
Configura todos los generadores de mensajes de iniciación para usar el valor de header
STABLE-
Este paso mantiene métricas limpias (
ipf_version_selectionaparece como una etiqueta)
-
-
Fase 2: despliegue y pruebas
-
Despliegue del servicio
-
Realiza un despliegue con rolling upgrade (p. ej., con Kubernetes)
-
Monitoriza métricas para verificar que los flows estables sigan funcionando correctamente
-
-
Configuración canary
-
Actualiza las reglas de selección de versión para mapear el header
CANARYa nuevas versiones de flows -
Modifica los generadores de iniciación de flows para incluir headers
CANARYpara la agrupación o estratificación relevante para tu aplicación. Por ejemplo:-
Grupos de usuarios específicos y/o
-
Porcentaje definido de tráfico
-
-
-
Monitorización y validación
-
Crea o actualiza tus dashboards para que puedan filtrar por etiquetas
ipf_version_selection = CANARY -
Monitoriza métricas para validar el rendimiento de las nuevas versiones de flows
-
Si ocurren errores:
-
Revierte inmediatamente a enviar solo headers
STABLE(consulta Prerrequisitos para implementar pruebas canary) -
Investiga los problemas manteniendo la estabilidad del servicio
-
-
Fase 3: despliegue progresivo a nuevos flows
-
Expansión gradual
-
Incrementa de forma incremental el porcentaje de mensajes
CANARY -
Monitoriza el comportamiento del sistema en cada incremento
-
Mantén métricas detalladas durante todo el proceso
-
-
Finalización
-
Continúa hasta alcanzar 100% de mensajes
CANARY -
Mantén la iniciación al 100%
CANARYdurante un periodo de observación predeterminado -
Tras finalizar el periodo de observación, actualiza las configuraciones de
STABLEyCANARYpara usar las nuevas versiones de flows
-