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
- Set
spec.config.ace.integrationRuntimes[].horizontalScalingEnabledto 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- Set
spec.config.scaling.vpa.enabledtotrue. - Set
spec.config.scaling.vpa.applyToAllEligibleResourcestotrueto retrieve recommended resource limits and requests for all ACE IntegrationRuntime pods. - Configure VPA in
ace.integrationRuntimes[]to automatically apply the recommendations for theace-common-miscpod.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- Set
spec.config.mq.metricsAgent.enabledtotrueto enable the IBM MQ metrics agent. - Set
spec.config.scaling.customMetricsAutoscalerEnabledtotrueto 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
- Set
config.ace.integrationRuntimes[].replicasto the required number of pods.config: ace: integrationRuntimes: - name: ace-common-misc horizontalScalingEnabled: true replicas: 2