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
- 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
-
- Modify the existing containers by running the
kubectl apply
command on thecustom_resources.yaml
file.
- Modify the existing containers by running the
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 toDESIRED
state.AVAILABLE
The number of replicas that are available to the users.