Skip to content

Common deployment properties

Several workflow components share the deployment properties described below. The blocks of components with these properties become Kubernetes pods when the workflow is published. With the exception of Consumer Number and Timeout, that affect the inner workings of the block, all of the other properties determine the characteristics of those pods.

Affinity

This property determines the pod-node affinity.
The value of the property is interpreted as a portion of the pod specification YAML and must begin with the line affinity:. Similar properties include Node selector and Tolerations.

Consumer Number

In asynchronous workflows, this is the number of threads that, for each replica of the block, draw concurrently from the input queue. Having more that one consumer may speed up processing depending on the degree of parallelism of the processing itself. For example, if the block is a symbolic model, processing is done one input at a time, but having two consumers instead of one can help keeping the processor as busy as possible, because a new input can be retrieved from the queue while the previous is being processed. When the processing finishes, the new input is immediately available inside the replica. In this scenario, more than two consumers do not make sense. The script interpreter shared service, instead, can process more scripts in parallel so it can benefit from an higher number of consumers.

CPU

This is a mandatory property and determines the maximum quantity of CPU, expressed in milli (m), that is thousands (e.g., 500m = half CPU), that is assigned to each replica of the block. Based on the load, Kubernetes will give to the pod corresponding to the replica an amount of CPU variable between CPU request (see below) and CPU.

CPU request

This is an optional property and determines the minimum quantity of CPU assigned to each replica of the block. It must be lower than or equal to CPU (see above). When not set explicitly, it gets implicitly set to the same value of CPU, so the minimum and the maximum coincide and each replica always has a fixed amount of CPU dedicated to it.

Memory

This is a mandatory property and determines the maximum quantity of memory, expressed in binary (IEC) units, assigned to each replica of the block. Based on the load, Kubernetes will give to the pod corresponding to the replica an amount of memory variable between Memory request (see below) and Memory.

Memory request

This is an optional property and determines the minimum quantity of memory assigned to each replica of the block. It must lower than or equal to Memory (see above). When not set explicitly, it gets implicitly set to the same value of Memory, so the minimum and the maximum coincide and each replica always has a fixed amount of memory dedicated to it.

Node selector

This property determines node selection criteria.
This is a portion of the pod specification YAML that, if set, must begin with the line nodeSelector:. Similar properties include Affinity and Tolerations.

Replicas

This property determines the number of replicas of the block. Having replicas gives a workflow parallel processing capacity. Every replica corresponds to a distinct Kubernetes pod which requires an amount of resources regulated by the CPU and memory properties (see above). If the workflow is published in synchronous mode, all the replicas are started at publishing time and remain available while the workflow is published. In asynchronous mode, if autoscaling is enabled, the number of replicas can oscillate between a minimum and this value, where the minimum is set by the user at publish time and can even be zero.

Storage

By default, each pod corresponding to a replica of the block has an unlimited ephemeral storage. If this property is set, it determines the upper limit of the ephemeral storage. The value is expressed in binary (IEC) units.

Storage request

Minimum quantity of ephemeral storage to be given to each replica of the block. It must be lower than or equal to Storage (see above).

Timeout

Maximum time, expressed in minutes (m) or seconds (s), within which processing of any input by a replica of the block must finish. If processing takes longer, an error is generated.

Tolerations

This property determines pod-node tolerations.
This is a portion of the pod specification YAML that, if set, must begin with the line tolerations:. Similar properties include Affinity and Node selector.