Contrôleur d'entrée Citrix ADC

Déploiement Canary et bleu-vert à l’aide de pipelines Citrix ADC VPX et Azure pour les applications basées sur Kubernetes

Cette rubrique fournit des informations sur la façon de réaliser un déploiement Canary et bleu-vert pour les applications Kubernetes à l’aide de pipelines Citrix ADC VPX et Azure.

Déploiement Canary à l’aide de pipelines Citrix ADC VPX et Azure pour les applications basées sur Kubernetes

Canary est une stratégie de déploiement qui implique le déploiement de nouvelles versions d’une application par petites étapes incrémentielles. L’idée de Canary est d’abord de déployer les nouvelles modifications sur un petit nombre d’utilisateurs afin de prendre la décision de rejeter ou de promouvoir les nouveaux déploiements, puis de déployer les modifications au reste des utilisateurs. Cette stratégie limite les risques liés au déploiement d’une nouvelle version de l’application dans l’environnement de production.

Lespipelines Azure sont un service cloud fourni par Azure DevOps qui vous permet d’exécuter automatiquement des builds, d’effectuer des tests et de déployer du code dans divers environnements de développement et de production.

Cette section fournit des informations sur la façon de réaliser un déploiement Canary pour une application basée sur Kubernetes à l’aide de Citrix ADC VPX et du Citrix ingress controller avec des pipelines Azure.

Avantages du déploiement Canary

  • La version Canary de l’application sert d’alerte précoce pour les problèmes potentiels qui peuvent être présents dans le nouveau code et les problèmes de déploiement.
  • Vous pouvez utiliser la version Canary pour les tests de fumée et les tests A/B.
  • Canary propose une restauration facile et des mises à niveau sans temps d’arrêt.
  • Vous pouvez exécuter plusieurs versions d’applications simultanément.

Dans cette solution, Citrix ADC VPX est déployé sur la plate-forme Azure pour permettre l’équilibrage de charge d’une application et réaliser un déploiement Canary à l’aide de Citrix ADC VPX. Pour plus d’informations sur la façon de déployer Citrix ADC sur Microsoft Azure, consultez le lien de documentation Citrix.

Déploiement Canary avec Citrix ADC

Vous pouvez réaliser un déploiement Canary à l’aide de Citrix ADC avec annotations Ingress, qui est un déploiement Canary basé sur des règles. Dans cette approche, vous devez définir un objet Ingress supplémentaire avec des annotations spécifiques pour indiquer que la demande d’application doit être traitée en fonction de la stratégie de déploiement Canary basée sur des règles. Dans la solution Citrix, le routage du trafic basé sur Canary au niveau de l’entrée peut être réalisé en définissant différents ensembles de règles comme suit :

  • Appliquer les règles Canary en fonction du poids
  • Appliquer les règles Canary en fonction de l’en-tête de requête HTTP
  • Appliquer les règles Canary en fonction de la valeur de l’en-tête HTTP

Pour plus d’informations, voir Déploiement Canary simplifié à l’aide des annotations d’entrée

Déploiement Canary à l’aide de Citrix ADC VPX avec des pipelines Azure

Citrix propose une solution pour le déploiement Canary à l’aide de Citrix ADC VPX et du Citrix ingress controller avec des pipelines Azure pour les applications basées sur Kubernetes.

canary-deployment

Dans cette solution, il existe trois répertoires de configuration :

  • kubernetes_configs
  • deployment_configs
  • pipeline_configs

kubernetes_configs

Ce répertoire comprend les fichiers YAML de déploiement spécifique à l’application basée sur la version et les fichiers de configuration basés sur Helm pour déployer Citrix Ingress Controller, qui est chargé de pousser la configuration Citrix ADC pour réaliser le déploiement Canary.

kubernetes_configs

Remarque :

Vous pouvez télécharger les derniers graphiques Helm à partir du référentiel des graphiques Helm du Citrix ingress controller et les placer dans le répertoire cic_helm.

deployment_configs

Ce répertoire inclut les fichiers setup_config et teardown_config JSON qui spécifient le chemin des fichiers YAML disponibles pour la version spécifique de l’application à déployer ou à arrêter pendant le déploiement Canary.

deployment_configs

pipeline_configs

Ce répertoire inclut le script de pipeline Azure et le script Python qui lit les configurations utilisateur et déclenche le pipeline en fonction de la demande de l’utilisateur d’introduire une nouvelle version de l’application ou de démontage d’une version d’une application. La modification du pourcentage du poids du trafic dans le YAML d’entrée d’application déclencherait le pipeline pour basculer le trafic entre la version disponible des applications.

pipeline_configs

Une fois les trois fichiers de configuration en place, toute mise à jour des fichiers sous les répertoires deployment_configs et kubernetes_configs dans GitHub déclencherait le pipeline dans Azure.

Le pourcentage de répartition du trafic peut être ajusté à l’aide de l’annotation ingress.citrix.com/canary-weight dans le YAML d’entrée de l’application.

Déployer un exemple d’application sur Canary dans les pipelines Azure

Cette rubrique explique comment déployer un exemple d’application en mode Canary à l’aide de pipelines Citrix ADC et Azure.

Conditions préalables

Assurez-vous que :

  • Citrix ADC VPX est déjà déployé sur la plate-forme Azure et est prêt à être utilisé par notre exemple d’application.
  • Cluster AKS avec connexion au service Kubernetes configurée pour le pipeline Azure.

Procédez comme suit :

  1. Clonez le dépôt GitHub et accédez au répertoire cd/canary-azure-devops.

  2. Placez les YAML spécifiques au déploiement d’applications (avec le fichier d’entrée) sous un dossier v1 versionné du répertoire kubernetes_configs.
  3. Créez trois pipelines Azure à l’aide des fichiers YAML existants deploy_cic.yaml, deploy.yaml et teardown.yaml, pour déployer le Citrix ingress controller et déployer et démonter les applications. Reportez-vous à la section Pipelines Azure pour créer un pipeline.
  4. Mettez à jour l’abonnement, le pool d’agents, la connexion au service et les détails Citrix ADC dans le pipeline YAML.
  5. Sauvez le pipeline.
  6. Mettez à jour le chemin d’accès dans deploy_config.json avec le chemin spécifiant le répertoire dans lequel les YAML de l’application sont placés.

    {
    
     "K8S_CONFIG_PATH" : "cd/canary-azure-devops/kubernetes_configs/v1"
    
    }
    
  7. Validez le fichier deploy_config.json et le répertoire v1 à l’aide de Git pour déclencher le pipeline afin de déployer la version v1 de l’application.

  8. Accédez à l’application via Citrix ADC.
  9. Introduisez la version v2 de l’application en créant le répertoire v2 sous kubernetes_configs. Assurez-vous que l’annotation Canary de l’entrée sous cette version est spécifiée avec le bon poids à définir pour le fractionnement du trafic.
  10. Déployez la version v2 de l’application en mettant à jour deploy_config.json avec le chemin spécifiant le répertoire v2. Désormais, le trafic est réparti entre les versions v1 et v2 en fonction du poids canari défini dans l’annotation d’entrée (par exemple, ingress.citrix.com/canary-weight: "40")

  11. Continuez à augmenter progressivement le poids du trafic dans l’annotation d’entrée jusqu’à ce que la nouvelle version soit prête à traiter tout le trafic.

Déploiement bleu-vert à l’aide de pipelines Citrix ADC VPX et Azure pour les applications basées sur Kubernetes

Le déploiement bleu-vert est une technique qui réduit les temps d’arrêt et les risques en exécutant deux environnements de production identiques appelés bleu et vert. À tout moment, un seul des environnements est actif et dessert tout le trafic de production. La méthode bleu-vert repose sur les déploiements côte à côte de deux environnements distincts mais identiques. Le déploiement d’une application dans les deux environnements peut être entièrement automatisé à l’aide de travaux et de tâches. Cette approche impose la duplication de toutes les ressources d’une application. Cependant, les déploiements bleu-vert peuvent être réalisés de nombreuses manières différentes dans divers outils de déploiement continu.

En utilisant Citrix ADC VPX avec des pipelines Azure, la même solution basée sur Canary peut être utilisée pour réaliser un déploiement bleu-vert en ajustant le poids du trafic à zéro ou 100.

Déploiement Canary et bleu-vert à l’aide de pipelines Citrix ADC VPX et Azure pour les applications basées sur Kubernetes