Scaling for ACE IntegrationRuntime pods

The IBM® App Connect deployment topology is dynamically scalable and supports the following scaling methods:
  • Auto scaling of ACE IntegrationRuntimes Pods based on load:
    • Horizontal Pod Autoscaler (HPA)
    • Vertical Pod Autoscaler (VPA)
    • Scaling based on IBM MQ queue depth
  • Manual scaling through updating replica count.

Horizontal Pod Autoscaler (HPA)

Use the Horizontal Pod Autoscaler (HPA) to scale FTM ACE IntegrationRuntime pods based on CPU and memory usage.

Procedure
  1. Set spec.config.ace.integrationRuntimes[].horizontalScalingEnabled to true.
config:
  ace:
    integrationRuntimes:
      - name: ace-common-misc
        replicas: 1
        maxReplicas: 5
        horizontalScalingEnabled: true
        hpa:
          averageUtilizationCPU: 70
          averageUtilizationMemory: 80

Vertical Pod Autoscaler (VPA)

Use the Vertical Pod Autoscaler (VPA) to adjust resource requests and limits automatically.

Procedure
  1. Set spec.config.scaling.vpa.enabled to true.
  2. Set spec.config.scaling.vpa.applyToAllEligibleResources to true to retrieve recommended resource limits and requests for all ACE IntegrationRuntime pods.
  3. Configure VPA in ace.integrationRuntimes[] to automatically apply the recommendations for the ace-common-misc pod.
    Note: Do not enable horizontal scaling for a pod when you use VPA.
    config:
      ace:
        integrationRuntimes:
        - name: ace-common-misc
          vpa:
            enabled: true
            updateMode: Auto
            resourcePolicy:
              containerPolicies:
                - containerName: runtime
                  minAllowed:
                    cpu: 200m
                    memory: 512Mi
                  maxAllowed:
                    cpu: '4'
                    memory: 8Gi
    

Scaling based on IBM MQ Queue depth

Scale ACE IntegrationRuntime pods based on IBM MQ queue depth by using KEDA.

Procedure
  1. Set spec.config.mq.metricsAgent.enabled to true to enable the IBM MQ metrics agent.
  2. Set spec.config.scaling.customMetricsAutoscalerEnabled to true to enable KEDA-based scaling.
    config:
      ace:
        integrationRuntimes:
        - name: ace-common-misc
          horizontalScalingEnabled: true
          replicas: 1
          maxReplicas: 5
          hpa:
            queueDepth:
              enabled: true
              queue: <Queue Name>
              threshold: "50"
    

    For more information, see Configuration parameters for IBM App Connect reference applications

Manual scaling

Use manual scaling to set a fixed number of pods.

Procedure
  1. Set config.ace.integrationRuntimes[].replicas to the required number of pods.
    config:
      ace:
        integrationRuntimes:
        - name: ace-common-misc
          horizontalScalingEnabled: true
          replicas: 2