Citrix ADC CPX licensing

Citrix ADC CPX is a container-based application delivery controller that can be provisioned on a Docker host to load balance microservice based applications. You need licensed CPX for better performance of application delivery. Citrix ADC CPX supports pool licensing. Citrix ADM can act as your license server to license your Citrix ADC CPX instances.

Citrix ADM is available both on-premises and a cloud service as well. You can use the Citrix ADM to manage pooled capacity licenses for all Citrix ADC form factors.

For information about Citrix ADM on-premises, see Citrix ADM on-premises. For information about Citrix ADM service, see Citrix ADM service.

Types of Citrix ADC CPX licensing

Citrix ADC CPX supports bandwidth and virtual CPU (core) pool licensing for on-prem and cloud based deployments.

Bandwidth pool: Citrix ADC CPX licenses can be allocated based on the bandwidth consumption by the instances. You can use pooled licensing to maximize the bandwidth utilization by ensuring the necessary bandwidth allocation to an instance and not more than its requirement. Currently, Citrix ADC CPX supports only premium bandwidth pool licensing. For more information about the bandwidth pool, see Bandwidth based licensing.

vCPU pool: In the virtual CPU-usage-based licensing, the license specifies the number of CPUs that a particular Citrix ADC CPX instance is entitled to. So, the Citrix ADC CPX can check out licenses for only the number of virtual CPUs from the license server. Citrix ADC CPX checks out licenses depending on the number of CPUs running in the system. For more information about the vCPU pool, see Citrix ADC virtual CPU licensing.

Supported pooled capacity for Citrix ADC CPX instances

Product Maximum bandwidth Minimum bandwidth Minimum instances Maximum instances Minimum bandwidth unit
Citrix ADC CPX 40000 Note: It depends on CPU frequency, generation, and so on. 20 Mbps 1 16 10 Mbps

Note: Citrix is currently working on a Citrix ADC CPX consumption based or pay-as-you-grow based licensing model for public cloud-based offerings. Once ready, it will be available on the public cloud market place to consume.

How does Citrix ADC CPX licensing work?

Citrix ADC CPX pooled capacity: A common license pool from which your Citrix ADC CPX instance can check out one instance license and only as much bandwidth as it needs. When the instance no longer requires these resources, it checks them back in to the common pool, making the resources available to other instances which need these licenses.

Citrix ADC CPX check-in and check-out licensing: Citrix ADM allocates licenses Citrix ADC CPX instances on demand. A Citrix ADC CPX instance can check out the license from the Citrix ADM when a Citrix ADC CPX instance is provisioned and check back in its license to Citrix ADM when an instance is destroyed.

Citrix ADC CPX behavior: A single Citrix ADC CPX instance checking-out up to 1 Gbps throughput, checks-out only from the instance pool and not from the bandwidth license pool. Citrix ADC CPX operates in this way up to the 1 Gbps of bandwidth utilization. For example, if a CPX instance consumes a 200 Mbps bandwidth, it uses the instance pool of license, instead of the bandwidth pool. However, if a Citrix ADC CPX instance consumes 1200 Mbps of throughput, the first 1000 Mbps is utilized from the instance pool and the remaining 200 Mbps is consumed from the bandwidth pool.

Citrix ADC CPX Express

Citrix ADC CPX Express is a software edition that is free-of-cost for on-premises and cloud deployments. When you download Citrix ADC CPX instance from the Quay repository, this is the default capacity available for POCs which do not require a license file and it comes with the following features:

  • 20 Mbps bandwidth
  • Maximum 250 SSL sessions
  • 20 Mbps SSL throughput

You must license your Citrix ADC CPX instance to upgrade for better performance and production deployments.

Citrix ADC CPX licensing models

Citrix offers a range of product licensing models for Citrix ADC CPX to meet your organization’s requirements. You can select options such as vCPU or bandwidth and on-premises or cloud.

Based on your requirements, you can choose any of the following models:

  • Bandwidth based licensing for Citrix ADC CPX from ADM service
  • vCPU based licensing for Citrix ADC CPX from ADM service
  • Bandwidth based licensing for Citrix ADC CPX from ADM on-premises
  • vCPU based licensing for Citrix ADC CPX from ADM on-premises

Provision bandwidth-based and vCPU-based licensing from Citrix ADM service for Citrix ADC CPX

Perform the following steps to provision bandwidth-based license and vCPU-based license for Citrix ADC CPX from Citrix ADM service.

  1. Set up Citrix ADM.

    Ensure that the Citrix ADM service setup is operational with the Citrix ADM agent. You must have a Citrix ADM service and Citrix ADM agent account for Citrix ADC CPX licensing to be functional. For information about setting up Citrix ADM service and Citrix ADM agent, see Citrix ADM service.

    Note: In this procedure, a hypervisor (on-premises) Citrix ADM agent setup is used. In the following image, 10.106.102.199 is the on-premises agent used for licensing Citrix ADC CPX.

    ADM on-prem agent

  2. Add Citrix ADC instance license pool to Citrix ADM service.

    It is assumed that you have a pool of bandwidth licenses available for ADM service. For information about uploading a license file to Citrix ADM, see Configure pooled capacity. In the following image, CNS_INST_200CC_Retail.lic is used as the bandwidth and instance license pool.

    ADM license files

  3. Deploy Citrix ADC CPX instance in Kubernetes cluster. Ensure that the following environment variables are added to the Citrix ADC CPX YAML file to license the Citrix ADC CPX instance.

    For the bandwidth-based licensing from the Citrix ADM service, specify the following environment variables in the YAML file:

    • name: “LS_IP” value: “10.105.158.166” //ADM agent IP as mentioned in step 1
    • name: “LS_PORT” value: “27000” // port on which ADM license server listens
    • name: “BANDWIDTH” value: “3000” //capacity in Mbps wants to allocate to CPX
    • name: “EDITION” value: “Standard” or “Enterprise” //to choose a particular license edition that includes Standard, Platinum, and Enterprise. By default, Platinum is selected.

    For the vCPU-based licensing from the Citrix ADM service, specify the following environment variables in the YAML file:

    • name: “LS_IP” value: “10.102.216.173” //ADM agent IP as mentioned in step 1
    • name: “LS_PORT” value: “27000” // port on which ADM license server listens to
    • name: “CPX_CORES” value: “4” // number of core you want to allocate
    • name: “PLATFORM” value: “CP1000” // number of cores. Check-out count is equal to the number of cores.
  4. Download the cpx-bandwidth-license-adm-service.yaml file using the following command:

     kubectl create namespace bandwidth
     wget https://raw.githubusercontent.com/citrix/cloud-native-getting-started/master/cpx-licensing/manifest/cpx-bandwidth-license-adm-service.yaml
    
  5. Deploy the edited YAML in the Kubernetes cluster using the following command:

     kubectl create -f cpx-bandwidth-license-adm-service.yaml -n bandwidth
    
  6. Log in to Citrix ADC CPX for verifying instancing information by using the following command:

    kubectl exec -it 'cpx-pod-ip-name' bash -n bandwidth
    
  7. To view the licensing information for the given Citrix ADC CPX instance, run the following commands:

     cli_script.sh “show licenseserver”
     cli_script.sh “show capacity”
    

    You can track the allocated bandwidth and vCPU capacity in the ADM service portal.

Provision Bandwidth based licensing and vCPU based licensing for Citrix ADC CPX from Citrix ADM on-premises

Perform the following steps to provision bandwidth-based and vCPU-based to Citrix ADC CPX from Citrix ADM on-premises.

  1. Set up Citrix ADM.

    Ensure that the ADM on-premises setup is ready. Make sure that Citrix ADM on-premises with or without ADM agent deployment for Citrix ADC CPX licensing is functioning.

    For information about setting up Citrix ADM on-premises and Citrix ADM agent, see Citrix ADM service.

    Note: In this example, an in-built ADM agent with ADM on-premises is used. In the following image, you can see that there is no agent deployed.

    ADM agent on-prem

  2. Add Citrix ADC instance license pool to ADM on-premises.

    It is assumed that you have a pool of bandwidth license available for ADM on-premises. To know about uploading a license file to Citrix ADM, see Licensing. In the following image, CNS_INST_200CC_Retail.lic is used as the bandwidth and instance license pool.

    ADM license files

    In the following image, CP1000 is used as the vCPU license pool.

    vCPU license pool

  3. Deploy Citrix ADC CPX instance in Kubernetes cluster. Ensure that the following environment variables are added to the Citrix ADC CPX YAML file to license the Citrix ADC CPX instance.

    For the bandwidth-based licensing from Citrix ADM on-premises, specify the following environment variables in the YAML file:

    • name: “LS_IP” value: “10.105.158.144” // ADM on-prem instance IP, If you have deployed ADM agent, then this is your agent IP address as described in the step 1
    • name: “LS_PORT” value: “27000” // port on which ADM license server listens
    • name: “BANDWIDTH” value: “3000” //capacity in Mbps wants to allocate to CPX

    For the vCPU-based licensing from Citrix ADM on-premises, specify the following environment variables in the YAML file:

    • name: “LS_IP” value: “10.105.158.144” // ADM on-prem instance IP, If you have ADM agent deployment then this will be your agent IP as described in step 1
    • name: “LS_PORT” value: “27000” // port on which ADM license server listens to
    • name: “CPX_CORES” value: “4” // the number of cores that you want to allocate
    • name: “PLATFORM” value: “CP1000” // number of cores. Check-out count is equal to the number of cores.
  4. Download the cpx-bandwidth-license-adm-onprem.yaml file using the following command:

     kubectl create namespace bandwidth
     wget https://raw.githubusercontent.com/citrix/cloud-native-getting-started/master/cpx-licensing/manifest/cpx-bandwidth-license-adm-onprem.yaml
    
  5. Deploy the edited YAML in the Kubernetes cluster using the following command:

     kubectl create -f cpx-bandwidth-license-adm-onprem.yaml -n bandwidth
    
  6. Log in to Citrix ADC CPX for verifying instancing information by using the following command:

    kubectl exec -it <cpx-pod-ip-name> bash -n bandwidth
    
  7. To view the licensing information for the Citrix ADC CPX instance, run the following commands:

     cli_script.sh “show licenseserver”
     cli_script.sh “show capacity”
    

    You can track the allocated bandwidth and vCPU capacity in the ADM on-premises portal.

Commands for cleaning the deployments

You can use the following commands to clean the various YAML deployments:

kubectl delete -f cpx-bandwidth-license-adm-service.yaml -n bandwidth
kubectl delete -f cpx-core-license-adm-service.yaml -n core
kubectl delete -f cpx-bandwidth-license-adm-onprem.yaml -n bandwidth
kubectl delete -f cpx-core-license-adm-onprem.yaml -n core
kubectl delete namespace bandwidth
kubectl delete namespace core
Citrix ADC CPX licensing