Citrix Application Delivery Management service

Autoscaling of Citrix ADC VPX in Google Cloud using Citrix ADM

Autoscaling is a cloud computing method that automatically adds or removes resources depending upon the actual usage. Autoscaling is useful whenever your site or application needs an on-demand resource allocation to satisfy the fluctuating number of client requests or processing jobs.

The demand for web applications or services can vary significantly. Maintaining the correct number of Citrix ADC instances for the different traffic needs is important. You can increase or decrease the network resources on Google Cloud depending on the demand. Thus, it provides cost optimization without compromising the performance. Citrix Application Delivery Management (ADM) autoscaling maintains the exact number of Citrix ADC instances for fluctuating resource consumption. Citrix ADM determines the traffic flow based on the fluctuating resource consumption, it decides to scale out or scale in the Citrix ADC instances dynamically. Thus, it provides you the flexibility to maintain the correct number of Citrix ADC instances.

Citrix ADM monitors the resource usage of Citrix ADC instances and matches with the configured threshold value. It triggers the scale-out action if one of the configured resources exceeds the specified threshold value.

Citrix ADM triggers the scale-in action only when the usage of all the configured resources falls below the normal threshold value.

Important

Autoscaling supports Citrix ADC features along with Citrix Gateway - ICA proxy feature (TCP only). However, the following features that require a spotted configuration on cluster nodes are not supported:

  • GSLB
  • Citrix Gateway - ICA proxy (EDT) and other features
  • Telco features

For more information on spotted configuration, see Striped, partially striped, and spotted configurations.

Benefits

High availability of applications: Autoscaling ensures that your application always has the right number of Citrix ADC VPX instances to handle the traffic demands. It ensures that your application is up and running all the time irrespective of traffic demands.

Smart scaling decisions and zero-touch configuration: Autoscaling continuously monitors your application and adds or removes Citrix ADC instances dynamically depending on the demand. The instances are automatically added when demand is increased for a certain period. The instances are automatically removed when the demand is decreased for a certain period. The addition and removal of Citrix ADC instances happen automatically making it a zero-touch manual configuration.

Automatic DNS management: The Citrix ADM Autoscale feature offers an automatic DNS management. Whenever new Citrix ADC instances are added, the domain names are updated automatically.

Graceful connection termination: During a scale-in, the Citrix ADC instances are gracefully removed avoiding the loss of client connections.

Better cost management: Autoscaling dynamically increases or decreases Citrix ADC instances as needed. This method enables you to optimize the costs involved. Launching instances only when they are needed and terminate them when they are not needed reduces the operational costs. Thus, you pay only for the resources you use.

Observability: Observability is key to application dev-ops or IT personnel to monitor the health of the application. The Citrix ADM’s Autoscale dashboard enables you to visualize the threshold parameter values, Autoscale trigger time stamps, events, and the instances participating in Autoscale.

Licensing requirements

The Citrix ADC instances that are created for the Citrix Autoscale group uses Citrix ADC Advanced or Premium ADC licenses. Citrix ADC clustering feature is included in Advanced or Premium ADC licenses.

You can choose one of the following methods to license Citrix ADCs provisioned by Citrix ADM:

  • Using ADC licenses present in Citrix ADM: Configure pooled capacity, VPX licenses, or virtual CPU licenses while creating the Autoscale group. So, when a new instance is provisioned for the Autoscale group, the already configured license type is automatically applied to the provisioned instance.

    • Pooled Capacity: Allocates bandwidth to every provisioned instance in the Autoscale group. Ensure you have the necessary bandwidth available in Citrix ADM to provision new instances. For more information, see Configure Pooled Capacity.

      Each ADC instance in the Autoscale group checks out one instance license and the specified bandwidth from the pool.

    • VPX licenses: Applies the VPX licenses to newly provisioned instances. Ensure you have the necessary number of VPX licenses available in Citrix ADM to provision new instances.

      When a Citrix ADC VPX instance is provisioned, the instance checks out the license from the Citrix ADM. For more information, see Citrix ADC VPX check-in and check-out licensing.

    • Virtual CPU licenses: Applies virtual CPU licenses to newly provisioned instances. This license specifies the number of CPUs entitled to a Citrix ADC VPX instance. Ensure you have the necessary number of Virtual CPUs in Citrix ADM to provision new instances.

    When a Citrix ADC VPX instance is provisioned, the instance checks out the virtual CPU license from the Citrix ADM. For more information, see Citrix ADC virtual CPU licensing.

    When the provisioned instances are destroyed or de-provisioned, the applied licenses are automatically returned to Citrix ADM.

    To monitor the consumed licenses, navigate to the Networks > Licenses page.

  • Using Google Cloud subscription licenses: Configure Citrix ADC licenses available in Google Marketplace while creating the Autoscale group. So, when a new instance is provisioned for the Autoscale group, the license is obtained from Google Marketplace.

Architecture

Citrix ADM handles the client traffic distribution using Google Network Load Balancer. The following diagram illustrates how the autoscaling occurs using the Google Network Load Balancer as the traffic distributor:

Google Cloud architecture for Autoscaling

Google Network Load Balancer is the distribution tier to the cluster nodes. Network Load Balancer manages the client traffic and distributes it to Citrix ADC VPX clusters. Network Load Balancer sends the client traffic to Citrix ADC VPX cluster nodes that are available in the Citrix ADM autoscaling group across zones.

Citrix ADM triggers the scale-out or scale-in action at the cluster level. When a scale-out is triggered the registered virtual machines are provisioned and added to the cluster. Similarly, when a scale-in is triggered, the nodes are removed and de-provisioned from the Citrix ADC VPX clusters.

Citrix ADM Autoscale group is a group of Citrix ADC instances that load balance applications as a single entity and trigger autoscaling based on the configured threshold parameter values.

How the autoscaling works

The following flowchart illustrates the autoscaling workflow:

Citrix Autoscale flowchart

The Citrix ADM collects the statistics (CPU, Memory, and throughput) from the Autoscale provisioned clusters for every minute.

The statistics are evaluated against the configuration thresholds. Depending on the statistics, scale out or scale in is triggered. Scale-out is triggered when the statistics exceed the maximum threshold. Scale-in is triggered when the statistics are operating below the minimum threshold.

If a scale-out is triggered:

  1. New node is provisioned.

  2. The node is attached to the cluster and the configuration is synchronized from the cluster to the new node.

  3. The node is registered with Citrix ADM.

  4. The new node IP addresses are updated in the Google Network Load Balancer.

If a scale-in is triggered:

  1. The node is identified to remove.

  2. Stop new connections to the selected node.

  3. The node is detached from the cluster, deregistered from Citrix ADM, and then de-provisioned from Google Cloud.

Note

When the application is deployed, an IP set is created on clusters in every availability zone. Then, the domain and instance IP addresses are registered with the Google Network Load Balancer. When the application is removed, the domain and instance IP addresses are deregistered from the Google Network Load Balancer. Then, the IP set is deleted.

Example autoscaling scenario

Consider that you have created an Autoscale group named asg_arn in a single availability zone with the following configuration.

  • Selected threshold parameters – Memory usage.

  • Threshold limit set to memory:

    • Minimum limit: 40

    • Maximum limit: 85

  • Watch time – 2 minutes.

  • Cooldown period – 10 minutes.

  • Time to wait during de-provision – 10 minutes.

  • DNS time to live – 10 seconds.

After the Autoscale group is created, statistics are collected from the Autoscale group. The Autoscale policy also evaluates if any an Autoscale event is in progress. If the autoscaling is in progress, wait for that event to complete before collecting the statistics.

Line graph Citrix Autoscale

The sequence of events

  1. Memory usage exceeds the threshold limit at T2. However, the scale-out is not triggered because it did not breach for the specified watch time.

  2. Scale-out is triggered at T5 after a maximum threshold is breached for 2 minutes (watch time) continuously.

  3. No action was taken for the breach between T5-T10 because the node provisioning is in progress.

  4. Node is provisioned at T10 and added to the cluster. Cooldown period started.

  5. No action was taken for the breach between T10-T20 because of the cooldown period. This period ensures the organic growing of instances of an Autoscale group. Before triggering the next scaling decision, it waits for the current traffic to stabilize and average out on the current set of instances.

  6. Memory usage drops below the minimum threshold limit at T23. However, the scale-in is not triggered because it did not breach for the specified watch time.

  7. Scale-in is triggered at T26 after the minimum threshold is breached for 2 minutes (watch time) continuously. A node in the cluster is identified for de-provisioning.

  8. No action was taken for the breach between T26-T36 because Citrix ADM is waiting to drain existing connections. For DNS based autoscaling, TTL is in effect.

    Note

    For DNS based autoscaling, Citrix ADM waits for the specified Time-To-Live (TTL) period. Then, it waits for existing connections to drain before initiating node de-provisioning.

  9. No action was taken for the breach between T37-T39 because the node de-provisioning is in progress.

  10. Node is removed and de-provisioned at T40 from the cluster.

All the connections to the selected node were drained before initiating node de-provisioning. Therefore, the cooldown period is skipped after the node de-provision.

Autoscaling of Citrix ADC VPX in Google Cloud using Citrix ADM