Architecture Autoscale pour Microsoft Azure

La console NetScaler gère la distribution du trafic client à l’aide d’Azure DNS ou d’Azure Load Balancer (ALB).

Distribution du trafic via Azure DNS

Le diagramme suivant illustre comment la mise à l’échelle automatique basée sur le DNS se produit à l’aide du gestionnaire de trafic Azure en tant que distributeur de trafic :

Distribution du trafic Citrix Autoscale à l'aide du gestionnaire de trafic Azure

Dans la mise à l’échelle automatique basée sur DNS, DNS agit comme une couche de distribution. Le gestionnaire de trafic Azure est l’équilibreur de charge basé sur le DNS dans Microsoft Azure. Le gestionnaire de trafic dirige le trafic client vers l’instance NetScaler appropriée, disponible dans le groupe de mise à l’échelle automatique de la console NetScaler.

Le gestionnaire de trafic Azure convertit le nom de domaine complet en adresse VIP de l’instance NetScaler.

Remarque

Dans la mise à l’échelle automatique basée sur le DNS, chaque instance NetScaler du groupe NetScaler Console Autoscale nécessite une adresse IP publique.

La console NetScaler déclenche l’action de scale-out ou de scale-in au niveau du cluster. Lorsqu’une mise à l’échelle est déclenchée, les machines virtuelles enregistrées sont provisionnées et ajoutées au cluster. De même, lorsqu’un scale-in est déclenché, les nœuds sont supprimés et déprovisionnés des clusters NetScaler VPX.

Distribution du trafic à l’aide d’Azure Load Balancer

Le diagramme suivant illustre la façon dont la mise à l’échelle automatique se produit à l’aide de l’Azure Load Balancer en tant que distributeur de trafic :

Distribution du trafic Citrix Autoscale à l'aide d'Azure Load Balancer

Azure Load Balancer est le niveau de distribution des nœuds de cluster. ALB gère le trafic client et le distribue aux clusters NetScaler VPX. ALB envoie le trafic client aux nœuds de cluster NetScaler VPX qui sont disponibles dans le groupe de dimensionnement automatique de la console NetScaler dans les zones de disponibilité.

Remarque

L’adresse IP publique est allouée à Azure Load Balancer. Les instances NetScaler VPX ne nécessitent pas d’adresse IP publique.

La console NetScaler déclenche l’action de scale-out ou de scale-in au niveau du cluster. Lorsqu’un scale-out est déclenché, les machines virtuelles enregistrées sont provisionnées et ajoutées au cluster. De même, lorsqu’un scale-in est déclenché, les nœuds sont supprimés et déprovisionnés des clusters NetScaler VPX.

Groupe Autoscale de la console NetScaler

Le groupe Autoscale est un groupe d’instances NetScaler qui équilibrent la charge des applications en tant qu’entité unique et déclenchent le dimensionnement automatique en fonction des valeurs de paramètres de seuil configurées.

Groupe de ressources

Le groupe de ressources contient les ressources liées à la mise à l’échelle automatique de NetScaler. Ce groupe de ressources vous aide à gérer les ressources nécessaires à la mise à l’échelle automatique. Pour plus d’informations, voir Gérer les groupes de ressources.

Ensemble de balances pour machines virtuelles d’arrière-plan Azure

Azure Virtual Machine Scale est un ensemble d’instances de machines virtuelles identiques. Le nombre d’instances de machine virtuelle peut augmenter ou diminuer en fonction du trafic client. Cet ensemble offre une haute disponibilité à vos applications. Pour plus d’informations, voir Ensembles de balances pour machines virtuelles.

Zones de disponibilité

Les zones de disponibilité sont des emplacements isolés dans une région Azure. Chaque région est composée de plusieurs zones de disponibilité. Chaque zone de disponibilité appartient à une seule région. Chaque zone de disponibilité possède un cluster NetScaler VPX. Pour plus d’informations, consultez la section Zones de disponibilité dans Azure.

Sets de disponibilité

Un ensemble de disponibilité est un regroupement logique d’un cluster NetScaler VPX et de serveurs d’applications. Les ensembles de disponibilité sont utiles pour déployer des instances NetScaler sur plusieurs nœuds matériels isolés d’un cluster. Avec un ensemble de disponibilité, vous pouvez garantir une mise à l’échelle automatique fiable de la console NetScaler en cas de panne matérielle ou logicielle dans Azure. Pour plus d’informations, voir Ensembles de disponibilité.

Le diagramme suivant illustre la mise à l’échelle automatique dans un jeu de disponibilité :

Set de disponibilité

L’infrastructure Azure (ALB ou Azure traffic manager) envoie le trafic client à un groupe de mise à l’échelle automatique de la console NetScaler dans l’ensemble de disponibilité. La console NetScaler déclenche l’action de scale-out ou de scale-in au niveau du cluster.

Fonctionnement de la mise à l’échelle automatique

L’organigramme suivant illustre le workflow de mise à l’échelle automatique :

Diagramme Citrix Autoscale

La console NetScaler collecte les statistiques (processeur, mémoire et débit) des clusters provisionnés par Autoscale pour chaque minute.

Les statistiques sont évaluées en fonction des seuils de configuration. En fonction des statistiques, le scale-out ou le scale-in est déclenché. Le scale-out est déclenché lorsque les statistiques dépassent le seuil maximum. La mise à l’échelle est déclenchée lorsque les statistiques fonctionnent en dessous du seuil minimum.

Si une scale-out est déclenchée :

  1. Le nouveau nœud est provisionné.

  2. Le nœud est attaché au cluster et la configuration est synchronisée entre le cluster et le nouveau nœud.

  3. Le nœud est enregistré auprès de la console NetScaler.

  4. Les adresses IP des nouveaux nœuds sont mises à jour dans le gestionnaire de trafic Azure.

Si une mise à l’échelle est déclenchée :

  1. Le nœud est identifié pour être supprimé.

  2. Arrêtez les nouvelles connexions au nœud sélectionné.

  3. Attend la période spécifiée pour que les connexions se déversent. Dans le trafic DNS, il attend également la période TTL (Time To Live) spécifiée.

  4. Le nœud est détaché du cluster, désenregistré de la console NetScaler, puis déprovisionné depuis Microsoft Azure.

Remarque

Lorsque l’application est déployée, un jeu d’adresses IP est créé sur des clusters dans chaque zone de disponibilité. Ensuite, les adresses IP du domaine et de l’instance sont enregistrées auprès du gestionnaire de trafic Azure ou ALB. Lorsque l’application est supprimée, les adresses IP du domaine et de l’instance sont désenregistrées du gestionnaire de trafic Azure ou ALB. Ensuite, l’ensemble d’adresses IP est supprimé.

Exemple de scénario de mise à l’échelle automatique

Considérez que vous avez créé un groupe de mise à l’Autoscale nommé asg_arn dans une zone de disponibilité unique avec la configuration suivante.

  • Paramètres de seuil sélectionnés — Utilisation de la mémoire.

  • Limite de seuil définie pour la mémoire :

    • Limite minimale : 40

    • Limite maximale : 85

  • Durée du visionnage : 2 minutes.

  • Temps de recharge : 10 minutes.

  • Temps d’attente pendant la mise hors service : 10 minutes.

  • Durée de vie du DNS : 10 secondes.

Une fois le groupe Autoscale créé, les statistiques sont collectées à partir du groupe Mise à Autoscale. La stratégie Autoscale évalue également si un événement de Autoscale est en cours. Si la mise à l’échelle automatique est en cours, attendez que cet événement se termine avant de collecter les statistiques.

Graphique linéaire Citrix Autoscale

La séquence des événements

  1. L’utilisation de la mémoire dépasse le seuil de T2. Toutefois, la mise à l’échelle n’est pas déclenchée car elle n’a pas violé la durée de la montre spécifiée.

  2. Le scale-out est déclenché à T5 après un dépassement d’un seuil maximum pendant 2 minutes (durée de la montre) en continu.

  3. Aucune mesure n’a été prise pour la violation entre T5 et T10 car le provisionnement du nœud est en cours.

  4. Le nœud est provisionné sur T10 et ajouté au cluster. La période de recharge a commencé.

  5. Aucune mesure n’a été prise pour la violation entre le T10-T20 en raison de la période de recharge. Cette période garantit la croissance organique des instances d’un groupe Autoscale. Avant de déclencher la prochaine décision de mise à l’échelle, il attend que le trafic actuel se stabilise et se situe en moyenne sur l’ensemble d’instances actuel.

  6. L’utilisation de la mémoire passe en dessous du seuil minimum à T23. Toutefois, la mise à l’échelle n’est pas déclenchée parce qu’elle n’a pas violé la durée de la montre spécifiée.

  7. La mise à l’échelle est déclenchée à T26 lorsque le seuil minimum est dépassé pendant 2 minutes (durée de la montre) en continu. Un nœud du cluster est identifié pour le désapprovisionnement.

  8. Aucune mesure n’a été prise pour remédier à la faille entre le T26 et le T36, car la console NetScaler attend de vider les connexions existantes. Pour la mise à l’échelle automatique basée sur DNS, TTL est en vigueur.

    Remarque

    Pour la mise à l’échelle automatique basée sur le DNS, la console NetScaler attend la durée de vie (TTL) spécifiée. Ensuite, il attend que les connexions existantes s’écoulent avant de lancer le désapprovisionnement des nœuds.

  9. Aucune mesure n’a été prise pour la violation entre T37-T39 car le déprovisionnement des nœuds est en cours.

  10. Le nœud est retiré du cluster et déprovisionné sur T40 .

Toutes les connexions au nœud sélectionné ont été drainées avant de lancer le déprovisioning du nœud. Par conséquent, la période de recharge est ignorée après la suppression de la mise en service du nœud.

Architecture Autoscale pour Microsoft Azure