Build scalable solution

We have a robot which last year we have utilized it successfully as a back office robot to perform multiple tasks. Currently the user sends an email to the virtual machine where the robot is installed, the robot identifies the task requested and performs the job. The robot is not doing a single job (as there is not high volume), rather multiple different little jobs.

We what to build on having additional robots but I’m wondering which is the best setup to have a scalable solution.

I’m thinking on having a gate keeper robot that will receive request from users and build on the job queues. The jobs will then be sent to available robots. The robots will be connected to the orchestrator to administer the robots, etc. Basically something as the diagram below.

image

My initial though is that each robot would have their own individual virtual machine and also the orchestrator will have its own virtual machine. The orchestrator will be managed by the development team, but some user will be able to access to start/schedule some jobs based on permissions.

Is it correct to have a virtual machine for each robot/orchestrator? or is there a better setup? The infrastructure team have suggested that maybe a could solution might be be easier to setup/scale. I’m guessing that for each robot we would need a virtual machine in the cloud any way. Does UiPath offers a cloud solution or is up to us to define where the virtual machines are based (cloud or infrastructure)?

Do you know about the High-Density robots setup? Basically, you can add multiple robots on the same machine running Windows Server OS. Each robot will run under its own user account. But if that setup is better than having individual VMs for each robot is for your organisation (Infrastructure team) to decide.

Thanks @Silviu. I didn’t know about High-Density robots. For what you are saying then we just need one machine (or virtual machine). That sounds somehow much easier. What about the Orchestrator? Would the Orchestrator needs to be in a separate machine or can it be in the same one also?

@ Silviu, looking at @Ovidiu_Bestea it seems like on a server machine you might have a limitation on the number of users/robots that you can have running at the same time. @Ovidiu_Bestea mentions a maximum of 6 users for a server machine with 16Gb of RAM.

Therefore, in this way we can not really scale much with High-Density robots.

In theory you can have also the Orchestrator on the same machine, and multiple robots, but not recommended because the performance will be poor. The same with the limit of 6 users for a machine with 15 GB of RAM. You can have more, but the performance will be poor.
If you want to start with, let’s say 3 robots and to be able to scale to 100, maybe it’s better to have Orchestrator on it’s own, with a separate machine for the SQL Server and VMs for robots. It’s up to you where you want to define the VMs, in cloud or local infrastructure.

Thanks @Silviu. I’ll try to start a test environment and try different configurations to see how it work best.

I’ll post the final setup so that other users can follow up.

HI @selrac, Have you managed to do it? Will be interesting to see findings from you!

Guarav,

I have followed Silviu approach. I have 4 robots and studio in a high density server. One of the robots is the gatekeeper which loads jobs into the queue. The other robots check the queue and pick up the jobs and execute them. The gatekeeper does also some short jobs. Works very well.

c.