-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Standardize on Docker as the primary deployment option #896
Comments
Just to clarify what I meant by standardizing on Docker for deployment: we will still have AWS/Google Cloud images, but they will use the Docker images, which will simplify their maintenance. The cloud images had been a great help with adoption, and having just Docker images won't serve the same audience. The Vagrant box is still used for development environments, and probably will only be replaced by Docker when Docker is more adopted (and has better support for OS/X). The Fabric script is used to upgrade the cloud images. I'm cool with dropping Procfile and Procfile.heroku as Heroku is not supported anymore (although I'm thinking of supporting it again). So the path forward should be:
The upgrade process is the main reason I didn't move forward with the Docker deployment yet. I didn't have the time to invest in researching a good way to run the upgrade process with Docker images. |
Would love to see Heroku support keeping with the theme. "Run where you run - Easily launch Re:dash on-premise in your environment." which is Heroku |
Heroku supports docker container deployments, although you have to use their base image for the Dockerfile. Not sure if @arikfr has the time to support Heroku, but if so he may use those instead of the procfiles used previously. In my opinion, there's currently too many deployment options in the core repo leading to a combination of user confusion and outdated deployment scripts. I'd rather see Heroku, along with the AWS and GCE images, moved out of core and into a sister repo(s) that are dedicated to alternative deployment options. |
Anyone requiring Heroku support can use my branch until a Heroku Docker deployment process is made. |
@adamlwgriffiths it's a good start and I'm open to merging this in, if you willing to do the extra work required --
Although the biggest challenge is offering people simple upgrade path. It's a challenge for Docker deployments as well, and requires us adding real migrations mechanism. There is related discussion in #876. |
I'm not sure if I am confused however. I thought Heroku support was specifically removed (#903)? |
We can either reproduce what the official build pack does in the post compile step or just include
What was removed are leftovers of previous support for Heroku. As you found out yourself supporting Heroku is more than just having the
Basically you need to add the following file in #!/bin/bash
pip install requirements_all_ds.txt |
FYI: Rackspace is also demoing a very nifty docker-based PAAS called Carina here at Pycon, and playing with it reminded me a lot of the simplicity of heroku... they've done a good job with it, but using dockerfiles etc that we already have for redash and not having to fiddle with maintaing as much provider-specific config like heroku's current process. Still in beta, but something worth watching |
I've been experimenting with using Docker Compose for running Redash as an alternative for our complicated images setup and it seems to work quite nicely. If time allows, v4's images will use Docker. |
@arikfr mentioned that he'd like to standardize on Docker as the primary deployment option. Supporting multiple options requires either spending already-stretched maintainer time keeping them updated, or letting them get outdated and having users complain. Similarly, having a single primarily deployment path means we need less documentation.
As part of this, what do you think about removing the following?
flask-alembic
to handle migrations.While removing options seems like it'd make it more difficult for users to get started, it'd actually make it less confusing because there'd be a single "officially-blessed" path for getting up and running.
The text was updated successfully, but these errors were encountered: