Al actualizar la lógica de un trabajo en SchedulerX, desplegarlo directamente en todos los workers puede afectar las cargas de producción. SchedulerX admite versiones canary basadas en etiquetas, lo que permite dirigir los trabajos a un subconjunto de workers para validarlos antes del despliegue completo.
Funcionamiento
Los workers de SchedulerX envían etiquetas al servidor mediante latidos. Cada trabajo puede dirigirse a los workers con una etiqueta específica, ya sea por configuración estática o en tiempo de ejecución. Este enrutamiento basado en etiquetas es el mecanismo que sustenta las versiones canary.
Flujo de trabajo:
Asigne etiquetas a los workers; por ejemplo,
graypara canary yprodpara producción.Dirija un trabajo a los workers con la etiqueta
graypara probarlo.Compruebe los resultados.
Tras comprobar que todo funciona correctamente, promueva el cambio a los workers con la etiqueta
prod.
Elegir un enfoque
|
Enfoque |
Cuándo utilizarlo |
Reversión |
|
Trabajo canary dedicado |
Pruebas canary continuas: requiere un trabajo canary persistente que se ejecute junto al de producción |
Elimine el trabajo canary; el trabajo de producción continúa sin cambios |
|
Ejecución canary única |
Verificación rápida previa a la versión: pruebe una sola ejecución en workers canary sin duplicar el trabajo |
No se requiere reversión; la programación de producción no se ve afectada |
Asignar etiquetas a los workers
Los workers deben tener etiquetas asignadas antes de usar el enrutamiento basado en etiquetas. SchedulerX admite dos métodos.
Establecer etiquetas al iniciar la aplicación
Especifique las etiquetas mediante la configuración de Properties. El siguiente ejemplo usa una aplicación Spring Boot:
spring.schedulerx2.label=${label}
Reemplace ${label} con el valor de la etiqueta deseada, como prod o gray.
Heredar etiquetas de tráfico de EDAS o MSE
Si su aplicación se ejecuta en Enterprise Distributed Application Service (EDAS) o Microservices Engine (MSE), el etiquetado de tráfico aplica automáticamente etiquetas a los workers de SchedulerX. No se requieren cambios en el código, ya que los workers heredan las etiquetas de tráfico configuradas en EDAS o MSE.
Este método resulta útil cuando ya se usan versiones canary de extremo a extremo en MSE, pues los workers de SchedulerX adoptan las mismas etiquetas sin configuración adicional.
Crear un trabajo canary dedicado
Copie el trabajo de producción para crear un trabajo canary independiente y asígnele etiquetas para aislar el tráfico entre ambos.
Agregue la etiqueta
prodal trabajo de producción.Copie el trabajo de producción para crear un trabajo canary.
Agregue la etiqueta
grayal trabajo canary.Ejecute el trabajo canary para validarlo en los workers con la etiqueta
gray.
Una vez completada la verificación, actualice el trabajo de producción con los cambios validados y elimine el trabajo canary.
Si la verificación falla, elimine el trabajo canary. El trabajo de producción seguirá ejecutándose en los workers con la etiqueta prod sin interrupciones.
Ejecutar una prueba canary única
Para verificar una sola ejecución en un worker canary sin duplicar el trabajo, active manualmente el trabajo existente con una etiqueta específica en la consola de SchedulerX.
En la consola de SchedulerX, localice el trabajo.
Seleccione run the specified label once y elija la etiqueta
gray.El trabajo se ejecuta una sola vez en el worker con la etiqueta
gray. La programación habitual de producción continúa sin cambios en los workers con la etiquetaprod.
Automatizar la ejecución única con CI/CD
Use herramientas de integración continua como Jenkins para activar automáticamente la ejecución canary única. Esto integra la verificación canary en su canalización de despliegue, de modo que cada versión se valida en workers canary antes de promoverla.