Production deployment best practices

Hello Redash people,

I wanted to know if there any guidelines for distributed production deployments? specifically I want to know:

  • can you have more than one scheduler per deployment?
  • would it be possible to have two web servers behind a load balancer without causing conflicts?

Any information you can share will help a lot!



Not sure about the scheduler but I have hosted redash on multiple servers.
Redash is inherently stateless. It depends on the database that it uses and the workers that are spun up.

So if you have 2 machines running redash and celery workers running on both the machines, when a request is sent it will be sent to one of the machines and the task will be performed by celery. Then state will be stored in redis which I advice you host on a separate instance or use elasticcache. This setup means that redash is just like an API hosted on machines with a UI. As all processing and storage is decoupled and no state is shared, it’s pretty easy to scale out and use a load balancer.

Scheduler is needed to run scheduled queries if I’m right. I think having 2 schedulers may run the queries twice if they are in the same queue. Not sure about this though