Ask HN: Why do you prefer Docker over a non-Docker approach?

2 points by michannne ↗ HN
This is regarding situations in which both Docker and a non-Docker solution would both have satisfied your use case.

I work at an organization following a microservice architecture via Azure - we create API services and have all of the Azure tools to handle things such as load-balancing. We have four environments, Development, Testing, Staging and Production. I've found that if we're working on a feature, we run 1 service and point it to Development environment, which in the Development configuration is pointing to the other required Development services, so we have no need to run multiple different services simulataneously unless we need to work on those specific services. Additionally, we build web apps, so there's no need to build for different PC architectures. Ultimately, there is no need for us to use Docker, but as I suspect many web app developers are using Docker for...something.

So, what is Docker doing for you that isn't solved by a non-Docker solution?

4 comments

[ 3.9 ms ] story [ 23.6 ms ] thread
I think for your setup, I'd want to know how you ensure that your local development environment matches what you use elsewhere. Docker does a good job of defining what environment your code runs in. You could also do this with VMs and something like Ansible, or even manual instructions for configuring a clean os install. Each requires various setup time vs maintenance cost.

Do you ever find that a bug presents itself in production that doesn't locally, then when you debug do you find that your local system was setup differently?

The only thing different between local and cloud is the configuration files, so if there is a difference, it comes to checking the configuration files first, and they don't have to navigate for changes, they can check the git history for any changes to the production configuration file
How long does it take to onboard a developer at your company to start developing?
It depends, but it's not dependent on the number of microservices. They are usually tasked with fixing some bug in a specific service, maybe 2, so they open those services and point any URLs being referenced to Dev services so they don't have to run everything on their machine