Hacker News new | ask | show | jobs
by INTPenis 3859 days ago
Sorry to be frank but if you really know what you're doing and work in setting up systems all day then you know what you need.

I work with this every day, Ansible, ELK, other systems. I have no need for docker. We have a large vSphere environment where I can deploy VMs through API on demand and I can scale designs with ease.

You might need Docker containers, but only you can say if you need Docker for your deployment.

1 comments

I think he has a point, actually.

Docker, assuming you don't basterdize it, gives you a largely immutable image that will actually be the same between your environments. That's about as close as guaranteeing it'll work as you'll get.

Does your Ansible setup provide that? I suspect not.

Docker makes it pretty easy for you to run multiple apps with conflicting libraries on the same host. Does Ansible help you do that? Nope. You could make it do it but it hardly makes it any easier.

I'm not saying Docker is some sort of panacea. Actually I think it's been a buggy mess. But I do believe it or something like it is part of the future we want.

Wrapping an app in docker and throwing it at compute running a distributed scheduler just simply feels like a better solution than writing an ansible script that places it somewhere and installs all the libaries then forces you to figure out how you deal with failure.

Obviously Docker is just a small part of a bigger picture. You could quite happily use Ansible to help yourself deliver them dockers.

> Does your Ansible setup provide that? I suspect not.

My Chef and Packer one does. The deltas between a Vagrant image and an AWS image are exactly the ones I know to be there and are there because the environments are different. Those minimal differences exist because these environments are fundamentally different and I need to be mindful of them when operating at scale--something that Docker will occlude but never, by its nature, solve any better.

As does my packer + puppet repo.

The point was, start with docker, get that for mostly free. You can feel free to further manage the underlying hosts with chef, puppet, or ansible, but docker will make the systems interface to your app quite a bit neater and you'll still chef to configure the app.

Your CM now does less, which is a good thing.

Throw in mesos or kubernetes because your CM isn't really amazingly helpful at deciding where things should run and your CM will now do even less.

That doesn't mean your CM will definitely go in the bin, but if all it's doing is changing a couple of system settings during an image build, it arguably could be bash, though I personally would rather it wasn't.