question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

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:closed
  • Created 8 years ago
  • Reactions:1
  • Comments:9 (9 by maintainers)

github_iconTop GitHub Comments

1reaction
arikfrcommented, Mar 8, 2016

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:

  1. Finish the work on the [Ubuntu/docker deployment[(https://github.com/getredash/redash/tree/master/setup/ubuntu_docker).
  2. Have clear instructions and script for upgrading a Docker based setup. It’s going to be similar to our current Fabric file, but simpler: stop containers -> grab latest -> run migrations (if needed) -> start containers.
  3. Switch to creating cloud images with the Ubuntu/docker deployment script.

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.

0reactions
arikfrcommented, Dec 12, 2017

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.

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found