Arquitectura de escalabilidad automática para Google Cloud

NetScaler Console gestiona la distribución del tráfico del cliente mediante Google Network Load Balancer. El siguiente diagrama ilustra cómo se realiza el escalado automático utilizando el equilibrador de carga de red de Google como distribuidor de tráfico:

Arquitectura de Google Cloud para el escalado automático

El equilibrador de carga de red de Google es el nivel de distribución de los nodos del clúster. El equilibrador de carga de red administra el tráfico del cliente y lo distribuye a los clústeres de NetScaler VPX. Network Load Balancer envía el tráfico del cliente a los nodos del clúster de NetScaler VPX que están disponibles en el grupo de escalado automático de la consola de NetScaler en todas las zonas.

NetScaler Console desencadena la acción de escalado horizontal o horizontal a nivel de clúster. Cuando se activa una ampliación, las máquinas virtuales registradas se aprovisionan y se agregan al clúster. Del mismo modo, cuando se activa una escalación, los nodos se eliminan y se desaprovisionan de los clústeres NetScaler VPX.

El grupo Autoscale de NetScaler Console es un grupo de instancias de NetScaler que equilibran la carga de las aplicaciones como una sola entidad y activan el escalado automático en función de los valores de los parámetros de umbral configurados.

Cómo funciona el escalado automático

El siguiente diagrama de flujo ilustra el flujo de trabajo de Autoscale:

Diagrama de flujo de Autoscale de Citrix

La consola de NetScaler recopila las estadísticas (CPU, memoria y rendimiento) de los clústeres aprovisionados de Autoscale para cada minuto.

Las estadísticas se evalúan con respecto a los umbrales de configuración. En función de las estadísticas, se activa la opción de escalado horizontal o vertical. El escalamiento horizontal se activa cuando las estadísticas superan el umbral máximo. La escalabilidad se activa cuando las estadísticas funcionan por debajo del umbral mínimo.

Si se activa un escalamiento horizontal:

  1. Se aprovisiona el nuevo nodo.

  2. El nodo está conectado al clúster y la configuración se sincroniza desde el clúster al nuevo nodo.

  3. El nodo está registrado en NetScaler Console.

  4. Las nuevas direcciones IP del nodo se actualizan en el equilibrador de carga de red de Google.

Si se activa una escala en escala:

  1. Se identifica el nodo que se va a eliminar.

  2. Detener nuevas conexiones al nodo seleccionado.

  3. El nodo se separa del clúster, se cancela el registro en NetScaler Console y, a continuación, se desaprovisiona de Google Cloud.

Nota

Cuando se implementa la aplicación, se crea un conjunto de IP en clústeres de cada zona de disponibilidad. A continuación, las direcciones IP de dominio e instancia se registran con el equilibrador de carga de red de Google. Cuando se quita la aplicación, las direcciones IP del dominio y de la instancia se anulan en el Balanceador de carga de red de Google. A continuación, se elimina el conjunto de IP.

Ejemplo de escenario de escalado automático

Tenga en cuenta que ha creado un grupo de Autoscale denominado asg_arn en una sola zona de disponibilidad con la siguiente configuración.

  • Parámetros de umbral seleccionados: Uso de memoria.

  • Límite de umbral establecido para la memoria:

    • Límite mínimo: 40

    • Límite máximo: 85

  • Tiempo de visualización: 2 minutos.

  • Período de enfriamiento: 10 minutos.

  • Tiempo de espera durante la retirada del aprovisionamiento: 10 minutos.

  • Tiempo de vida DNS: 10 segundos.

Una vez creado el grupo de Autoscale, las estadísticas se recopilan del grupo de Autoscale. La directiva Autoscale también evalúa si hay algún evento de Autoscale en curso. Si el escalado automático está en curso, espere a que se complete el evento antes de recopilar las estadísticas.

Gráfico de líneas Citrix Autoscale

La secuencia de eventos

  1. El uso de memoria supera el límite en la T2. Sin embargo, la escala horizontal no se activa porque no se ha infringido durante el tiempo de visualización especificado.

  2. El escalamiento horizontal se activa en T5 después de superar un umbral máximo durante 2 minutos (tiempo de visualización) de forma continua.

  3. No se tomó ninguna medida por la brecha entre la T5-T10 porque el aprovisionamiento del nodo está en curso.

  4. El nodo se aprovisiona en T10 y se agrega al clúster. Se ha iniciado el periodo de enfriamiento.

  5. No se ha tomado ninguna medida por la brecha entre T10-T20 debido al período de tiempo de reutilización. Este período asegura el crecimiento orgánico de instancias de un grupo de Autoscale. Antes de activar la siguiente decisión de escalado, espera a que el tráfico actual se estabilice y promedie en el conjunto actual de instancias.

  6. El uso de memoria cae por debajo del límite mínimo en el T23. Sin embargo, la escala-in no se activa porque no se incumplió durante el tiempo de visualización especificado.

  7. La escalabilidad se activa en el T26 después de superar el umbral mínimo durante 2 minutos (tiempo de visualización) de forma continua. Se identifica un nodo en el clúster para el desaprovisionamiento.

  8. No se tomó ninguna medida en relación con la brecha entre el T26 y el T36 porque la consola NetScaler está esperando para agotar las conexiones existentes. Para el escalado automático basado en DNS, TTL está en vigor.

    Nota

    Para el escalado automático basado en DNS, NetScaler Console espera el período de vida (TTL) especificado. A continuación, espera a que las conexiones existentes se agoten antes de iniciar el desaprovisionamiento de nodos.

  9. No se tomó ninguna medida por la violación entre el T37-T39 porque el desaprovisionamiento del nodo está en curso.

  10. El nodo se elimina y se desaprovisiona en el T40 del clúster.

Todas las conexiones al nodo seleccionado se drenaron antes de iniciar el desaprovisionamiento del nodo. Por lo tanto, el período de reutilización se omite después de que se desaprovisione el nodo.

Arquitectura de escalabilidad automática para Google Cloud