4 ms·
I find this kinda insane. The days before docker I would spend a lot of time trying to reproduce environments. Docker isn’t hard to use and doesn’t add much com
by mountainriver 5y ago
I find this kinda insane. The days before docker I would spend a lot of time trying to reproduce environments. Docker isn’t hard to use and doesn’t add much complexity, but the payoff is huge in terms of having portable environments.
- slindz 5y agoSome languages definitely benefit from portable environments, others don't really need it. My anecdata is that horsing around with Docker was still needed and when things went wrong, they went REALLY wrong. As with all things, figure out what you need, pick the right tool for the job, and all that good stuff.
- hughrr 5y agoTry producing two kubernetes clusters with exactly the same configuration with full management and monitoring stack and you will discover how difficult it is to scale this complexity up. Docker works for most trivial cases but for complex systems it becomes a shit show very quickly which is hard to reason about when you need to, which is whenever it is inevitably broken.
- xupybd 5y agoYes but a legacy app with no need for kubernetes scale gains huge benefits from docker. When you have to compile your libs from source because they are so old no packages exist anymore, then docker greatly aids both development and deployment.
- meowface 5y agoA lot of Docker criticism I've seen on HN and elsewhere equivocates between Docker and Kubernetes. I've never used Kubernetes, but I use Docker very frequently and find it a massive improvement over the previous state of affairs. Kubernetes does seem complex and difficult to learn, but Docker doesn't.
- mountainriver 5y agoI do this every day and have done it for the last 5 years. It’s far more sane than any alternatives I’ve seen
- tkiolp4 5y agoBut Docker is not the only way to provide reproducible environments. I find Terraform + Ansible enough for such purposes.
- fomine3 5y agoEnough, but is it easier than simple Docker setup is different.
- cpach 5y agoJust out of curiosity: What does Terraform provide when you already have Ansible running?
- TheCapeGreek 5y agoTerraform focuses on creating/managing the machines you'll be using, less so provisioning them (though you can somewhat). Ansible focuses on provisioning systems, with not much (any? not sure) capability for actually creating/managing the machines it'll provision. I've also seen it recommended to use Ansible + Packer to provision an image, then use Terraform to create machines from the image. Saves you some troubles with connecting to your cloud machines.
- xorcist 5y agoAnsible has pretty much the same capabilities for managing machines as Terraform have. The fact that it reads the actual state instead of keeping it locally makes for one less headache.
- Frost1x 5y agoI spend significantly more time dealing with messes of Docker containers that were thrown together ad-hoc with a slew of bad practices than I ever did having to hunt down and resolve dependencies. Docker really makes it easy to create messes by bad or less experienced developers yet ultimately have something functional, for awhile. Setting up environments used to act as a filter to clear out these sort of messy systems. If you put together a system of distributed services, you were probably competent enough to make something that wasn't horrible and considered maintainability. Now, with a few days Googling, anyone can spin up a distributed system of services with every bad practice known to man as to how those services are initialized, modified (yes, I rarely see stateless containers), and interconnected. With a sizable team of developers that aren't under time pressures incentivized to build tech debt and pass it along, Docker (or rather container systems, not necessarily Docker) have a lot of useful purposes. I rarely see it used this way in the wild, I instead see it as a way to build tech debt. I'll take the need to resolve a couple dependencies over that any-day of the week.
- runawaybottle 5y agoDocker really makes it easy to create messes by bad or less experienced developers yet ultimately have something functional I would like to see a ‘foot-gun index’ where we rank technologies and determine how likely someone is to fucking things up if not careful.
- mountainriver 5y agoI haven’t seen a tech debt problem with containers, we mostly use infra as code and have PR reviews so that doesn’t happen. Junior engineers can make a mess with anything, it’s a senior engineers job to prevent that
- Frost1x 5y agoWell it's often my job to come in and fix these messes after both of those fail or there's no one senior and competent to handhold and prevent these messes from forming until they've become unmanageable yet mission critical.
- hsn915 5y agoI find it insane that you think configuring environments is the right way to program. I write my web programs in Go and there's nothing to configure once a build is complete. I just get a binary and I can ship it / deploy it anywhere. I never found any use for Docker.
- mountainriver 5y agoI also write a lot of Go, while ago has less issues it’s still a great way to package it up