Documentation for a newer release is available. View Latest

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:

  1. El sistema detecta los headers de mensaje en los puntos de entrada de iniciación del flow (normalmente receive connectors o controladores de Spring)

  2. Los headers seleccionados se añaden al contexto (principalmente ipf_version_selection, aunque se admiten headers personalizados)

  3. Las reglas de selección de versión evalúan el contexto para determinar la versión de flow apropiada para enrutar el mensaje

Visión general de la selección de versión

Prerrequisitos para implementar pruebas canary

Los siguientes requisitos deben abordarse antes de implementar pruebas canary con selección de versión.

  1. 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

    • 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

  2. 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

  1. Sincronizar versiones de flow

    • Asegura que todas las instancias del servicio usen versiones idénticas para los valores STABLE y CANARY

    • Actualiza las reglas de selección de versión mediante:

    • 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.

  2. 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_selection aparece como una etiqueta)

Fase 2: despliegue y pruebas

  1. 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

  2. Configuración canary

    • Actualiza las reglas de selección de versión para mapear el header CANARY a nuevas versiones de flows

    • Modifica los generadores de iniciación de flows para incluir headers CANARY para 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

  3. 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:

Fase 3: despliegue progresivo a nuevos flows

  1. 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

  2. Finalización

    • Continúa hasta alcanzar 100% de mensajes CANARY

    • Mantén la iniciación al 100% CANARY durante un periodo de observación predeterminado

    • Tras finalizar el periodo de observación, actualiza las configuraciones de STABLE y CANARY para usar las nuevas versiones de flows