Can I use Dash Plotly in Production environment


Dash Plotly can quickly help me to build Factsheet website.
I am not sure about its performance. Can we scale out the application? For example, launch more instances of this web app so that we can handle more requests.


I am currently employed in a production company and have made a Dash app which is showing an overview of our production to our production; (current machine status, current production, planned production etc etc.), and an app which includes some analysis of our production to our engineers and production officers.
Worth to mention, the app is updating either when a user is selection something new from dropdowns or tabs, or when they are looking at the production overview which updates every 10 seconds using dcc.Interval component.

Let me share my experience. :man_technologist:

I am using Flask to deploy the app. There are some examples on how to do this in the Dash documentation, let me know if you are unable to find it yourself.
My apps are located on a virtual windows server in the company and I found that the server was struggling to keep up when the apps where running and users where accessing whatever I had made (mainly the CPU usage of the server was juggling around 80-100% usage, which is a lot for a rather simple Dash webapp.

As you deploy stuff through Flask you will get a message in your terminal:

What I thought of this message was something like “Oh, we need to use something mightier/smarter than Flask to handle requests from multiple users on the apps”

The solution I found to this was to install an IIS service on my virtual server and let it handle the web apps. How to do this is a little technical and I am far from an expert on this topic, but I somehow made it work.

This drastically made the CPU usage on the server drop and I suppose this is due to a smarter request handling (a better waitress/server) of my apps.

Final remark: I am still not 100% sure if I still need to “bottle up my app in a Flask” before I deploy through my IIS service, I will look into this Soon™ when I have time (prioritizing time and company stuff, blah blah blah…).

I hope this will help you judge whether or not you should use plotly Dash. :slightly_smiling_face: