Standardize on Docker as the primary deployment option
See original GitHub issue@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?
- Heroku procfiles.
- Vagrant box - I’m unsure whether this is still helpful for dev or not. It’s quick to rebuild the docker container, but it might be a pain to debug what’s happening inside the docker container, I’m not sure.
- Google Cloud Images
- AWS image
- Fabric script - this seems to do a fair bit, when all it should be handling is DB migrations. Could switch to using
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.
Issue Analytics
- State:
- Created 8 years ago
- Reactions:1
- Comments:9 (9 by maintainers)
Top Results From Across the Web
Docker overview
Docker streamlines the development lifecycle by allowing developers to work in standardized environments using local containers which provide your applications ...
Read more >Deploying a scalable web application with Docker and ...
Docker takes over the responsibility of configuring the environment and standardising the deployment pipeline.
Read more >Best practices for building containers | Cloud Architecture Center
Best practices for building containers · Package a single app per container · Properly handle PID 1, signal handling, and zombie processes.
Read more >What is Docker? - Amazon AWS
Docker is a software platform that allows you to build, test, and deploy applications quickly. Docker packages software into standardized units called ...
Read more >A Docker Tutorial for Beginners
The key benefit of Docker is that it allows users to package an application with all of its dependencies into a standardized unit...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub 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.
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.