Foreman Tasks with new Redis support

Hello, i’m using a cluster with 4 foreman servers (2.1) and foreman-tasks plugin enabled.
By default, each server deploys and uses a local redis instance and remote executions seem to work fine. But i was wondering as i’m in cluster mode, should i use a common external redis instance/database for the 4 servers ?

Yes, that’s probably needed. We didn’t really document this, but we do have --foreman-jobs-sidekiq-redis-url which can point to a shared instance.

Hopefully @aruzicka or @ezr-ondrej can say more about this since they worked on this.

Well, yes and no.

What you currently have is roughly an equvivalent of setting EXECUTORS_COUNT=4 in the pre-sidekiq dynflow. You have 4 independent executors. If you let them use the same redis instance, you would get a single executor with many workers. Both ways should work, but it is hard to say which one would perform better since we haven’t really compared the two approaches and we don’t know your workload.

In general, having a single executor with many workers should be a better choice up to the point where the dynflow-sidekiq@orchestrator stops being able to handle to load. When you reach this point, switching to multiple executors should help with handling the load.

And of course if connectivity between workers and the shared redis instance is limited/flaky then having local redis per executor would be better.

We will be grateful for any observations you’ll make