8

Docker has a lot of potential to solve problems in my workplace in a large team (100) of software developers and it's use to solve problems in my workplace. This includes:

The feedback came back to me:

It's great you've got this working, but understanding the docker ecosystem is a mental leap for some people. It's already been established that we won't run docker in production, so we really don't think there is a reason to invest in skilling our people up in this tooling.

My question is: What are the reasons to use docker in your software development process if you're not using it in production?

5
  • 5
    Just because you are not going to use it in production doesn't mean that it's not a useful tool for development purposes, so the argument "we're not going to use it in production, so we don't want to look at it at all" sounds invalid to me. You already have a list of things that show how it can be useful. I use it to run databases for development and testing on my development machine. – Jesper Jul 31 '17 at 11:48
  • Just one quick note: For me you either scale up (more powerful machine) or you scale horizontally (add more machines). Scale up horizontally seems weird to me. – Machado Jul 31 '17 at 12:30
  • 1
    Do yourself a favor and dedicate one machine towards replicating the conditions of production if you do decide to go that route of using Docker so that you can test the program in an environment as similar to production as possible. Aside from that, go Docker crazy, have fun. – Neil Jul 31 '17 at 12:37
  • Another quick tip: Source Control servers, Build Servers and CI Servers ARE PRODUCTION SERVERS for your developers. Your org may be using IT as means to a final objective (meaning you're not in the Tech business), but if you have developers they expect to have an environment they can rely upon to do some work. That means all the servers above must be treated as critical as everything else in your infra, or else you get a team without resources to work and deliver. Even if IT is a support side of your operation, you don't want them to just hang around waiting servers to be back online. – Machado Jul 31 '17 at 12:42
  • The problem with the feedback you got is: it is translated to »Go away with docker. We don't want it.« Of course there were many reasons one could give for using docker, but in this case, it seems the feedback is only a polite excuse. – Thomas Junk Jul 31 '17 at 14:46
9

Here are some reasons why we use docker as part of our software development process (we don't use it in production yet):

  • Consistent and version controlled local deployment environment - we check our docker builds into version control, and we can collaborate on the stack. We can get a completely clean environment by stopping and starting a stack.
  • Ease of distribution of environments to teammates - recently we had a completely new stack of software that we had to start maintaining. We only had to produce the stack once in Docker and distribute it among the team instead of documenting the tools and process to install the multitude of software. Documents are often forgotten about and only tested when a new member joins the team--often the instructions don't work anymore.
  • Used in CI builds and automated testing - The same images we're using to deploy and test the software locally is used by CI to build and test the software. This makes it less likely of bugs specific to the quirks in somebody's local environment.
  • Easier than virtual machines to manage, change, build, and distribute.
  • Gives the ability to extend existing images so we don't have to build images from scratch. Usually there are open source images available for popular software packages.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.