Scaling deployments

The following sections describe the options available for managing IBM Process Mining and IBM Task Mining scaling to satisfy many concurrent requests in a heavily loaded environment.

Horizontal scaling is accomplished by changing the number of replicas in the IBM Process Mining and IBM Task Mining component's instance. A replica is a copy of a pod that already contains a running service. By having multiple replicas of a pod, you can ensure that your instance has the available resources to handle increasing load

About this task

All of the IBM Process Mining and IBM Task Mining services can be scaled up or down in a cluster, except for the database pods (<instance name>-mongo). MongoDB pods are not replicable since it isn't for production environment.

To allow web sessions to work properly, Application Services (<instance name>-service-analytics, <instance name>-service-bpa, <instance name>-service-dr, <instance name>-service-engine, <instance name>-service-um, <instance name>-service-web, <instance name>-service-tm-nginx) have a configured session affinity = ClientIP. It is necessary to ensure that the network infrastructure commits the correct propagation of the browser workstation's IP address to the services.

If a deployment is shown publicly when you change the number of replicas, the service distributes the traffic to the available pods during the update. An available pod is an instance that can be accessed by users.

Procedure

  1. Set the scale value by using the replicas parameter in the custom resources.yaml file that the operator used to install IBM Process Mining and IBM Task Mining. For example, to change the scaling, use the following yaml:
apiVersion: processmining.ibm.com/v1beta1
kind: ProcessMining
metadata:
  name: pm1
  namespace: processmining
spec:
  version : 1.12.0.4
  license:
    accept: true
    cloudPak: IBM Cloud Pak for Business Automation
  defaultStorageClassName: rook-cephfs
  processmining:
    replicas:
      nginx : 1
      discovery: 2
      analytics: 2
      bpa: 2
      dr: 1
      usermanagement: 1
  taskmining: 
    install: true
    replicas:
      nginx: 1
      webapp: 2
      taskbuilder: 1
      taskprocessor: 1
    1. Modify the existing containers by running the kubectl apply command on the custom_resources.yaml file.
kubectl apply -f custom_resources.yaml

Results

The following values are updated after the deployment was scaled.

  • DESIRED The number of wanted replicas of a pod, which you define when you create the deployment.
  • CURRENT The number of replicas currently running.
  • READY The number of replicas that are available to the users compared to DESIRED state.
  • AVAILABLE The number of replicas that are available to the users.