Ingress Controller de Citrix ADC

Implementación Canary y azul-verde mediante procesos de Citrix ADC VPX y Azure para aplicaciones basadas en Kubernetes

En este tema se proporciona información sobre cómo lograr una implementación Canary y azul-verde para aplicaciones de Kubernetes mediante Citrix ADC VPX y Azure pipelines.

Implementación Canary mediante procesos de Citrix ADC VPX y Azure para aplicaciones basadas en Kubernetes

Canary es una estrategia de implementación que implica implementar nuevas versiones de una aplicación en pasos incrementales pequeños y escalonados. La idea de Canary es implementar primero los nuevos cambios en un pequeño conjunto de usuarios para tomar una decisión sobre si rechazar o promover las nuevas implementaciones y luego implementar los cambios para el resto de los usuarios. Esta estrategia limita el riesgo involucrado en la implementación de una nueva versión de la aplicación en el entorno de producción.

Los procesos de Azure son un servicio en la nube proporcionado por Azure DevOps que le permite ejecutar compilaciones, realizar pruebas e implementar código automáticamente en varios entornos de desarrollo y producción.

En esta sección se proporciona información sobre cómo lograr la implementación Canary para aplicaciones basadas en Kubernetes mediante Citrix ADC VPX y el Citrix Ingress Controller con procesos de Azure.

Beneficios de la implementación de Canary

  • La versión Canary de la aplicación actúa como una advertencia temprana para posibles problemas que puedan estar presentes en el nuevo código y los problemas de implementación.
  • Puede usar la versión Canary para pruebas de humo y pruebas A/B.
  • Canary ofrece una reversión sencilla y actualizaciones sin tiempo de inactividad.
  • Puede ejecutar varias versiones de aplicaciones al mismo tiempo.

En esta solución, Citrix ADC VPX se implementa en la plataforma Azure para permitir el equilibrio de carga de una aplicación y lograr una implementación Canary mediante Citrix ADC VPX. Para obtener más información sobre cómo implementar Citrix ADC en Microsoft Azure, consulte el enlace de documentación de Citrix.

Implementación de Canary mediante Citrix ADC

Puede lograr una implementación Canary con Citrix ADC con anotaciones de entrada, que es una implementación Canary basada en reglas. En este enfoque, debe definir un objeto Ingress adicional con anotaciones específicas para indicar que la solicitud de la aplicación debe servirse en función de la estrategia de implementación Canary basada en reglas. En la solución Citrix, la redirección de tráfico basada en Canary en el nivel de entrada se puede lograr definiendo varios conjuntos de reglas de la siguiente manera:

  • Aplicar las reglas Canary en función del peso
  • Aplicar las reglas Canary en función del encabezado de solicitud HTTP
  • Aplicar las reglas Canary en función del valor del encabezado HTTP

Para obtener más información, consulte Implementación Canary simplificada mediante anotaciones de entrada

Implementación Canary mediante Citrix ADC VPX con procesos de Azure

Citrix propone una solución para la implementación Canary mediante Citrix ADC VPX y el Citrix Ingress Controller con procesos de Azure para aplicaciones basadas en Kubernetes.

Canary-deployment

En esta solución, hay tres directorios de configuración:

  • kubernetes_configs
  • deployment_configs
  • pipeline_configs

kubernetes_configs

Este directorio incluye los archivos YAML de implementación específicos de la aplicación basada en la versión y los archivos de configuración basados en Helm para implementar Citrix Ingress Controller, que es responsable de insertar la configuración de Citrix ADC para lograr una implementación Canary.

kubernetes_configs

Nota:

Puede descargar los gráficos Helm más recientes del repositorio de gráficos Helm Citrix Ingress Controller y colocarlos en el cic_helm directorio.

deployment_configs

Este directorio incluye los archivos setup_config y teardown_config JSON que especifican la ruta de los archivos YAML disponibles para la versión específica de la aplicación que se implementará o inhabilitará durante la implementación Canary.

deployment_configs

pipeline_configs

Este directorio incluye el script de proceso de Azure y el script de Python, que lee las configuraciones del usuario y desencadena el proceso en función de la solicitud del usuario para introducir una nueva versión de la aplicación o desmantelar una versión de una aplicación. El cambio en el porcentaje del peso del tráfico en YAML de entrada de aplicaciones desencadenaría el proceso para cambiar el tráfico entre la versión disponible de las aplicaciones.

pipeline_configs

Con los tres archivos de configuración implementados, cualquier actualización de los archivos en los directorios deployment_configs y kubernetes_configs en GitHub desencadenaría el proceso en Azure.

El porcentaje de división del tráfico se puede ajustar mediante la anotación ingress.citrix.com/canary-weight en el YAML de entrada de la aplicación.

Implementar una aplicación de muestra en Canary en Azure pipelines

En este tema se explica cómo implementar una aplicación de ejemplo en modo Canary mediante procesos de Citrix ADC y Azure.

Requisitos previos

Compruebe que:

  • Citrix ADC VPX ya está implementado en la plataforma Azure y está listo para ser utilizado por nuestra aplicación de ejemplo.
  • Clúster de AKS con conexión de servicio Kubernetes configurada para el proceso de Azure.

Siga estos pasos:

  1. Clone el repositorio de GitHub y vaya al directorio cd/canary-azure-devops.

  2. Coloque los YAML específicos de implementación de aplicaciones (con el archivo de entrada) en una carpeta versionada v1 en el directorio kubernetes_configs.
  3. Cree tres procesos de Azure con los archivos YAML existentes deploy_cic.yaml, deploy.yaml, y teardown.yaml, para implementar el Citrix Ingress Controller e implementar y desmantelar las aplicaciones. Consulte Procesos de Azure para crear un proceso.
  4. Actualice la suscripción, el grupo de agentes, la conexión de servicio y los detalles de Citrix ADC en el YAML de proceso.
  5. Guarde el proceso.
  6. Actualice la ruta deploy_config.json con la ruta que especifica el directorio en el que se colocan las YAML de la aplicación.

    {
    
     "K8S_CONFIG_PATH" : "cd/canary-azure-devops/kubernetes_configs/v1"
    
    }
    
  7. Confirma el archivo deploy_config.json y el directorio v1 con Git para activar el proceso para implementar la versión v1 de la aplicación.

  8. Acceda a la aplicación a través de Citrix ADC.
  9. Introduzca la versión v2 de la aplicación creando el directorio v2 en kubernetes_configs. Asegúrese de que la entrada en esta versión tenga la anotación Canary especificada con el peso correcto para establecerse para la división del tráfico.
  10. Implemente la versión v2 de la aplicación mediante la actualización deploy_config.json con la ruta que especifica el directorio v2. Ahora, el tráfico se divide entre la versión v1 y v2 en función del peso Canary establecido en la anotación de entrada (por ejemplo, ingress.citrix.com/canary-weight: "40")

  11. Siga aumentando progresivamente el peso del tráfico en la anotación de entrada hasta que la nueva versión esté lista para servir todo el tráfico.

Implementación azul-verde mediante procesos de Citrix ADC VPX y Azure para aplicaciones basadas en Kubernetes

La implementación azul-verde es una técnica que reduce el tiempo de inactividad y el riesgo al ejecutar dos entornos de producción idénticos llamados azul y verde. En cualquier momento, solo uno de los entornos está en vivo que atiende a todo el tráfico de producción. La base del método azul-verde son las implementaciones en paralelo de dos entornos separados pero idénticos. La implementación de una aplicación en ambos entornos se puede automatizar completamente mediante el uso de trabajos y tareas. Este enfoque impone la duplicación de todos los recursos de una aplicación. Sin embargo, hay muchas formas diferentes en que las implementaciones azul-verdes se pueden llevar a cabo en varias herramientas de implementación continua.

Al usar Citrix ADC VPX con procesos de Azure, se puede usar la misma solución basada en Canary para lograr una implementación azul-verde ajustando el peso del tráfico a cero o 100.

Implementación Canary y azul-verde mediante procesos de Citrix ADC VPX y Azure para aplicaciones basadas en Kubernetes