Production deployment a la Flask/Gunicorn

I am getting ready to deploy a simple Streamlit app to my company web server. I am coming from the Flask world where we use gunicorn or Nginx to serve production-ready apps. What is the equivalent (if any) in Streamlit world? What are best practices for production deployment?

Hi @fredzannarbor -

Streamlit is built on Tornado, and per their opening paragraph:

By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.

In that sense, it feels like “production-quality” to me. The biggest thing before moving an app into production is understanding the performance characteristics of the app, having auto-restarting capabilities set up, load balancing, etc., same as you might have with a Flask app.