Autoscaling of Citrix ADC in AWS using Citrix ADM
Efficient hosting of applications in a cloud involves easy and cost-effective management of resources depending on the application demand. For example, consider that you have an e-commerce web portal running on AWS. This portal sometimes offers enormous discounts during which there is a spike in the application traffic. When application traffic increases during these offers, the applications must be scaled out dynamically and accordingly network resources might also need to be increased.
The Citrix ADM autoscaling feature supports provisioning and autoscaling of Citrix ADC instances in AWS. The Citrix ADM autoscaling feature constantly monitors the threshold parameters such as memory usage, CPU usage, and throughput. You can select one of these parameters or more than one parameter for monitoring. These parameter values are then compared to the user configured values. If the parameter values breach the limits, then scale-out or scale-in is triggered accordingly.
The Citrix ADM autoscale feature architecture is designed in such a way that you can configure the minimum and maximum number of instances for each of the autoscale group. Pre-setting these numbers ensures that your application is always up and running.
Benefits of autoscaling
High availability of applications. Autoscaling ensures that your application always has the right number of Citrix ADC VPX instances to handle the traffic demands. This is to ensure 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. When demand spikes upward, the instances are automatically added. When the demand spikes downward, the instances are automatically removed. The addition and removal of Citrix ADC instances happens automatically making it a zero-touch manual configuration.
Automatic DNS management. The Citrix ADM autoscale feature offers 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 enables you to optimize the costs involved. You save money by launching instances only when they are needed and terminate them when they are not needed. 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.
Currently, autoscale feature is supported only for Citrix ADC instances deployed in AWS.
Using Citrix ADC release 12.1 build 50.28 image for creating autoscale groups in AWS is not supported.
Citrix ADCs provisioned by Citrix ADM use AWS subscription licenses.
Advanced or Premium ADC licenses are used for licensing Citrix ADC instances created as part of Citrix autoscale group. Citrix ADC clustering feature is part of Advanced or Premium ADC licenses.
The following table provides a brief description of some of the autoscaling terms used in this document.
|AWS auto scaling group||AWS auto scaling group is a collection of EC2 instances that share similar characteristics and are treated as a logical grouping for the purposes of instance scaling and management.|
|Amazon Machine Image (AMI)||A machine image, which provides the information required to launch an instance, which is a virtual server in the cloud.|
|Elastic Compute Cloud (EC2)||A web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers.|
|Elastic IP (EIP) addresses||An Elastic IP address is a static, public IPv4 address designed for dynamic cloud computing. You can associate an Elastic IP address with any instance or network interface for any VPC in your account.|
|Elastic network interface (ENI)||A virtual network interface that you can attach to an instance in a VPC.|
|Instance type||Amazon EC2 provides a wide selection of instance types optimized to fit different use cases. Instance types comprise varying combinations of CPU, memory, storage, and networking capacity and give you the flexibility to choose the appropriate mix of resources for your applications.|
|Identity and Access Management (IAM) role||An AWS identity with permission policies that determine what the identity can and cannot do in AWS. You can use an IAM role to enable applications running on an EC2 instance to securely access your AWS resources.|
|IAM-instance-profile||An identity provided to the Citrix ADC instances provisioned in a cluster in AWS. The profile allows the instances to access AWS services when it starts to load balance the client requests.|
|Listener||A listener is a process that checks for connection requests, using the protocol and port that you configure. The rules that you define for a listener determine how the load balancer routes requests to the targets in one or more target groups.|
|NLB||Network load balancer. NLB is an L4 load balancer available in the AWS environment.|
|Route 53||Route 53 is Amazon’s highly available and scalable cloud domain name system (DNS) web service.|
|Security groups||A named set of allowed inbound network connections for an instance.|
|Subnets||A segment of the IP address range of a VPC that EC2 instances can be attached to. You can create subnets to group instances according to security and operational needs.|
|Virtual Private Cloud (VPC)||A web service for provisioning a logically isolated section of the AWS cloud where you can launch AWS resources in a virtual network that you define.|
Citrix ADC VPX autoscale terminology
The following table provides a brief description of some of the Citrix ADC VPX autoscaling terms used in this document.
|Autoscale groups||Autoscale group is a group of Citrix ADC instances that load balance applications as a single entity and trigger autoscaling when the threshold parameters breach the limits. Citrix ADC instances scale-out or scale-in dynamically based on the autoscale groups configuration. Note: Citrix autoscale group is called autoscale group throughout this document whereas the AWS autoscale group is explicitly called AWS autoscale group.|
|Citrix ADC clusters||A Citrix ADC cluster is a group of Citrix ADC VPX instances and each instance is called a node. The client traffic is distributed across the nodes to provide high availability, high throughput, and scalability.|
|Drain connection timeout||During scale-in, once an instance is selected for deprovisioning, Citrix ADM removes the instance from processing new connections to autoscale group and waits until the specified drain connection timeout period expires before deprovisioning. This allows existing connections to this instance be drained out before it gets deprovisioned. If the connections are drained before the drain connection timeout expires, even then the Citrix ADM waits for the drain connection timeout period to expire before starting a new evaluation. Note: If the connections are not drained even after the drain connection timeout expires, the Citrix ADM removes the instances which might impact the application. Default value is 5 minutes and is configurable.|
|Cooldown period||After a scale-out, cooldown period is the time for which evaluation of the statistics has to be stopped. This ensures organic growing of an autoscale group by allowing current traffic to stabilize and average out on the current set of instances before the next scaling decision is made. Default cooldown period value is 10 minutes and is configurable. Note: Default value is determined based on the time required for the system to stabilize after a scale-out (approximately 4 minutes) plus Citrix ADC configuration and DNS advertisement time.|
|Tags||Each autoscale group is assigned a tag which is a key and value pair. You can apply tags to the resources that enable you to organize and identify resources easily. The tags are applied to both AWS and Citrix ADM. Example: Key= name, Value = webserver. It is recommended to use a consistent set of tags to easily track the autoscale groups that might belong to various groups such as development, production, testing.|
|Threshold parameters||Parameters that are monitored for triggering scale-out or scale-in. The parameters are CPU usage, memory usage, and throughput. You can select one parameter or more than one parameter for monitoring.|
|Time to Live (TTL)||Specifies the time interval that the DNS resource record may be cached before the source of the information should again be consulted. Default TTL value is 30 seconds and is configurable.|
|Watch time||The time for which the scale parameter’s threshold has to stay breached for a scaling to happen. If the threshold is breached on all the samples collected in this specified time then a scaling happens. If the threshold parameters remain at a value higher than the maximum threshold value throughout this duration, a scale-out is triggered. If the threshold parameters operate at a value lower than the minimum threshold value, a scale-in is triggered. Default value is 3 minutes and is configurable.|