Rcc vs docker: when to use

I’m new to Robot Framework. Maybe some one can tell me the pros and cons using rcc vs docker running a robot in a recurring environment. I’ve read that RobotCorp uses docker on their control room server for example and nor rcc.

RCC is part of the Robocorp workflow to ensure that the automation code can run anywhere on any platform. Think of RCC as “virtualenv on steroids”.
If you want to write an automation which should run in Robocorp Cloud, you have to use RCC locally. It’s a bit like a Dockerfile which specifies what should be inside of an image and in which version.
Once pushed to the Robocorp Cloud, Control Room can re-create exactly the same Python environment you have used on your machine. And yes, Robocorp uses Containers to run your automations in their cloud to be scalable.

The question of which is better (RCC or Docker) cannot be answered in this way because it makes no sense. RCC builds environments for you that are isolated from each other - irrespective of whether they are in VMs, Docker containers or bare metal.

Hope that helps!
Simon

rcc seems to aim at RPA specifically. If you want to setup reproducible runtimes for test automation the linux/docker container approach is the way to go I guess.

rcc seems to aim at RPA specifically.

I don’t agree with that.
It’s just the case that the RCC documentation is specifically tailored to the RPA use case because Robocorp has built the tool to run their RPA stuff on that.

But RCC can in fact be used to make arbitrary code platform independent in reproducable environments.

And even now, after the change of name to sema4.ai, their need is still there, which is why RCC continues to be maintained by sema4ai. (There were rumours that RCC would die with the rebranding - nonsense)

Regards - Simon

PS: This is also not an argument against Docker - it simply depends very much on the use case and must be considered on a case-by-case basis.

1 Like

Hi Simon, I agree. Unfortunatelly the forum does not allow to edit replys. In the first place I was confused of rcc documentation about the rcc specific robot.yaml which states the need to define at least one task. The Robot Framework User Guide uses the term “task” in the RPA context as well in the Tasks — RPA Framework documentation specific to rpaframework. For me at least the docs are a bit confusing. A task can be a test suite execution of course as well.

Kind regards, Florian (best luck with synthetic monitoring BTW :slight_smile: )

[EDIT] Now I’m able to edit replys

Yes, the need to define a task is somehow misleading.
But its completely ok to use for example rcc task shell to get a console inside the environment and start arbitrary commands. This is how we are using RCC in Checkmk Synthetic Monitoring (Robotmk).

best luck with synthetic monitoring BTW

Thanks :smiley: