Deploy RPA
General overview

Task distribution
Control Tower sends Bot Tasks to RabbitMQ, where they are distributed to queues.
In case of the robotics_flow plugin, the tasks are submitted to RPA Queues according to their fleet attribute. For example, you can route SAP RPA Bot Tasks to SAP RPA Queue by defining SAP as a fleet attribute.
Depending on their fleet attributes, the tasks are distributed further to corresponding RPA Units.
Control Tower sends Bot Tasks to RabbitMQ where they are distributed to queues.
tip
For more details on the distribution mechanism, see Distribute tasks.
Mutual TLS authentication is used for communication between the RPA server and the Application one. Certificate exchange ensures highly secured traffic between RPA components—Control Tower, Bot Manager, Bot Agent, RPA Worker. RPA Server gets commands from the Application server only—so that no one can access RPA data or connect to any of the components without authentication, even from the customer intranet and with Control Tower credentials.
RPA infrastructure deployment
There are two scenarios of RPA infrastructure deployment:
- Multiple RPA Units per server, or RDP-in-RDP
- 1 RPA Unit per Windows machine, or VDI
To trigger RPA Units, establish an active RDP session:
- For RDP-in-RDP deployment, the Bot Master User starts an RDP session allowing Master Bot Agent to initiate RPA Units. For that, Bot Manager retrieves Bot Master credentials from Secrets Vault.
- For VDI deployment, the Bot Agent startup is scheduled, and an RDP session is automatially started by Bot Manager.
RDP-in-RDP
The RDP-in-RDP approach allows you to run RPA Units in isolated sessions. On the deployment scheme above, look for RPA Server.
When the RDP-in-RDP deployment type is used, the following conditions are created:
- All processes cannot be accessed remotely as they are executed on local interfaces. Thus, other processes cannot influence your Bot Task execution.
- You can have remote access from your workstation only to the necessary RDP session and check what task is in progress at that particular time.
With the credentials rotation mechanism on, the RDP timeout no longer affects task execution due to automatic reconnection. If an RPA Unit is inactive for some time, for example, 15 minutes, an RDP session is locked. A new logic requires the RPA Worker to automatically refer to Secrets Vault for credentials before executing each Bot Task. Thus, the RPA Worker closes the current RDP window, gets new credentials from Secrets Vault, and connects again.
VDI
In the VDI deployment approach, there are two possible scenarios:
- RPA VDI refers to a Windows machine having all RPA components in a single active console session. No additional RDP connections are created. All services are run by one user, for example, Administrator. On the deployment scheme above, look for RPA VDI.
- Master Session VDI is responsible for opening multiple RDP sessions and keeping them active on several Windows machines. The number of RDP connections corresponds to that of Windows machines.
GUI active session support
Bot Manager maintains active RDP sessions. As soon as the RDP session is started, RPA Units are triggered to perform task execution.
Each RPA Unit contains two specific Java applications: Bot Agent and an RPA Worker.
- Bot Agent is used to start the RPA Worker and is also responsible for sending data to ZooKeeper.
- The RPA Worker connects to the assigned RPA Queue, retrieves tasks, and sends results to the Result Queue as soon as Bot Tasks are successfully executed.
RPA Units are managed via the Bot Manager UI. The communication between RPA Units and Bot Manager is established via the secured Nginx connection.
tip
To learn more about Bot Manager, refer to Work with Bot Manager.
Data flow
The data flow is as follows:
- As soon as RPA Units are started, Filebeat and Metricbeat are initiated to send logs and metrics to Logstash—the service used to ingest them, transform, and transfer to Elasticsearch.
- Bot Manager gets RPA Unit statuses and performance data from Bot Agent and sends it to MS SQL Server to store.
- ZooKeeper stores information on RPA Unit configuration and queue addresses transferred from Bot Agent, the RPA Worker, and Bot Master.
- Secrets Vault is used as a storage to hold all the RPA-related credentials and not to request the credentials on the RPA machine (in Windows Credential Manager). When credentials rotation is configured in Control Tower, new credentials automatically apply to all RPA Units.