News for hackers. Stuff that matters.
Re:Docker Considered Harmful (2016) by bunderbunder on Monday June 25, 2018 @03:29PM (#17395065)
> Every "Docker Considered Harmful" post I've read basically boils down to "Why would you use Docker if you can use the 10 technologies it wraps around and manage them yourself instead?" Why would I want to do that if I don't have to?

Or if you can't?

One feature driving Docker adoption that I think a lot of people miss is that it's got fairly workable (if warty in one case and obnoxious in the other) implementations for OS X and Windows. That removes a lot of friction for developers who work in companies where IT won't support Linux on employee workstations.

Sure, your ops team can put together a bunch of stuff manually. And then you can create a bunch of extra stuff that makes it easier for development to handle all of that inside virtual machines, and get the network bridging between those apps and the host machine working properly, and all that fun stuff. And by the time you've got it completed and working nicely, you'll be ready to launch your own Docker competitor onto the market.

Re:Docker Considered Harmful (2016) by ravenstine on Monday June 25, 2018 @03:43PM (#17395184)
> Sure, your ops team can put together a bunch of stuff manually. And then you can create a bunch of extra stuff that makes it easier for development to handle all of that inside virtual machines, and get the network bridging between those apps and the host machine working properly, and all that fun stuff.

I think this is one of the biggest reasons people use Docker, although they tend to forget to mention it since it's not exactly a technical advantage of Docker; in many ways, it allows developers to bypass DevOps or sometimes eliminate them all together. No more creating Jira tickets just to have a specific version of Imagemagick installed on a server.

Re:Docker Considered Harmful (2016) by bunderbunder on Monday June 25, 2018 @03:58PM (#17395318)
I think it's one of the two biggest reasons. The other, possibly bigger, reason is that it gives you a way to install fairly complex software and have it reasonably configured and running right out of the box.

I use Docker to run stuff like PostgreSQL on my dev box. Not so much because it's a technically superior option (in truth, it's slower and eats more memory than installing it directly on my machine) as much as because it reliably lets me get up and running in a few minutes, just the time it takes to download the image, really. All the other options I've tried invariably require some fiddling, especially if you need an older version.

I suspect that all the other codepoints that have ever been spilled on the subject are mostly just an attempt to get ops on board with it.

(Disclaimer: All above comments are a mix of wild speculation and Freudian projection. I tend to come down against using it in production.)

Re:Docker Considered Harmful (2016) by ravenstine on Monday June 25, 2018 @04:21PM (#17395464)
At my work, we've had mixed results using it in production. I'd still prefer to using to avoid Ops, but besides that Docker comes with its own bag of issues even though it eliminates versioning conflicts.

For development, on the other hand, I absolutely love it. Being able to have different docker-compose.yml files for each of my projects and being able to spin up isolated versions of database services(each with their own volumes!) has been a tremendous win for me.

Re:Docker Considered Harmful (2016) by jonnycoder on Monday June 25, 2018 @03:59PM (#17395323)
This right here. Can confirm, the #1 benefit of using Docker is that 98% of our "Ops" issues has gone away.
Re:Docker Considered Harmful (2016) by geggam on Monday June 25, 2018 @04:20PM (#17395458)
No they haven't. They are lurking around the corner waiting to hit you when you least expect it. The mugging you are about to get is what your ops team has had and are trying to prevent.

Enjoy the learnings...

Re:Docker Considered Harmful (2016) by bunderbunder on Monday June 25, 2018 @05:43PM (#17396073)
There is only one possible place where this can really grow to be that kind of a problem: It's when ops isn't being involved.

(And if the relationship between development and ops has broken down to the point that each one is trying to work around rather than with each other, you're already screwed. The rest is just details.)

If ops is involved, then there's no real reason they can't take charge of making sure that anything that is running in production is being built up from minimal images where they can keep track of the technology stack and all the different versions of xyz lib that are running in production. They've just got to do it using a different tool chain.

And if ops isn't involved, I'm not sure how different this really is from the typical status quo, which involves unquestioningly running whatever uberjar full of unknown (to ops) 3rd-party packages that probably have their versions being selected using Maven's default version conflict resolution strategy, so that nobody, not even dev, really knows what exactly is running in production.

Re:Docker Considered Harmful (2016) by ravenstine on Monday June 25, 2018 @06:06PM (#17396233)
Your last argument is true of any software outside of the Docker ecosystem. Are you really going to read through every single directory in node_modules/ to make sure you know exactly what you're running? I don't believe anyone who answers yes, besides in the sense that NPM will produce vulnerability reports.

If ops does their job well, that's great. A lot of people aren't that effective at their jobs, and if someone in ops is stuck in PHP Land, unwilling to learn Docker, they're going to become a huge bottleneck in short order. Some people are incompetent, but there is a lot of people who don't particularly like their jobs yet get a sadistic joy out of playing the gatekeeper role, being the ultimate decider of whether someone else gets what they want. All the worse if upper management sides with them by default since, well, they're the "webmasters".

Yeah, I'm pretty biased because I've had situations like that on a few occasions.

I'm not necessarily saying that the production situation is always improved by Docker, but what I described is not an uncommon situation and I think it often leads to teams gravitating towards Docker when their last person in ops finally leaves.

Re:Docker Considered Harmful (2016) by LoSboccacc on Monday June 25, 2018 @06:13PM (#17396284)
> Are you really going to read through every single directory in node_modules/ to make sure you know exactly what you're running?

What, you don’t? Each dependency comes with a license notice. Everything needs to be pinned. The npm mess that comes out of pinning and unbounded versioning is precisely why we steer clear of it.

Re:Docker Considered Harmful (2016) by bunderbunder on Monday June 25, 2018 @06:21PM (#17396327)
> Are you really going to read through every single directory in node_modules/ to make sure you know exactly what you're running?

Of course we are.

Not manually, of course, but we've got automated tools that generate a report of every dependency, including transitive dependencies, and its license and version, for all the platforms we use. We definitely keep an eye on these reports.

"But it's haaaaarrrrd" isn't a great excuse for letting things get out of control. We're developers. Taking obnoxious labor-intensive manual processes and making them quick and easy is the entire reason why our profession exists in the first place.

(Granted, the fact that a single import can bring in hundreds or even thousands of transitive dependencies to worry about is a big reason why I avoid the Node ecosystem like the plague. So there is that.)

Re:Docker Considered Harmful (2016) by brightball on Monday June 25, 2018 @06:31PM (#17396394)
> (And if the relationship between development and ops has broken down to the point that each one is trying to work around rather than with each other, you're already screwed. The rest is just details.)

IMO 90% boils down to that, regardless of what technology one side or other wants to use. If Ops is trying to push Dev to use a particular technology or vice versa. This happens whether you're talking Docker or a particular programming language.

Either side will see their preference as solving the problem of doing their job in the best way possible. If both sides are deaf to the problems seen by each other, it becomes a problem.

Honestly, the place where I see this stuff more than anything is when developers want tools that make them more productive, because the technological merits are harder to convey.

Re:Docker Considered Harmful (2016) by WhitneyLand on Tuesday June 26, 2018 @12:59AM (#17397961)
>>Either side will see their preference as...doing their job

And in your example they’d both be wrong. Such folks shouldn’t spend as much time worrying about their job description as about what will make the company successful?.

Companies don’t become great by everyone waiting around for only managers to decide when new roles or practices should come online. Employees at any level are allowed to consider the big picture. Why do they sometimes feel they’re not allowed to or would be discouraged from doing so?

If you carefully and thoughtfully put some time into slowly baking your opinions in a way you best guess helps your company end to end to achieve its most strategic goals with dev/ops as one part of that, your opinion will be more respected and influential.

It’s also a management test. Walk into your VP’s office, dispassionately and without self emphasis, make your case about how you should be doing xyz because it makes sense within the big picture.

Most times you can’t lose, even if the plan isn’t rolled out you’ll gain credibility. If you get your hand slapped, it’s a clear signal to switch departments or companies because leaders like that have low success rates, as well as usually not being much fun to work for.

Re:Docker Considered Harmful (2016) by brightball on Tuesday June 26, 2018 @10:00AM (#17400628)
Totally agree.
Re:Docker Considered Harmful (2016) by ravenstine on Monday June 25, 2018 @05:55PM (#17396163)
I think the "issues" they are talking about are not necessarily the ones that ops people are meant to solve, but about the issue of ops acting as "gatekeepers" that often create perceived friction in the deployment(and even development) process. By Docker putting the power of what prerequisites are made available to individual applications running on servers, it bypasses the middle-man and gets the job done faster. That's not to say there aren't trade-offs when using Docker with ops as a service, but some (usually developers) would say the trade is worth it. Let's just hope they are writing their Dockerfiles with security in mind. :)
[dead]
Re:Docker Considered Harmful (2016) by true_tuna on Monday June 25, 2018 @05:40PM (#17396043)
I’d love for this to be true. Have you had anyone come in and do an audit? I find crazy stuff when I show up at No Ops shops and poke around.
Re:Docker Considered Harmful (2016) by geggam on Monday June 25, 2018 @05:44PM (#17396080)
Last year we had a $NAME come for an audit. Well known company and they did not know how to audit inside containers.

Still not sure how a corporation who runs RHEL contractually is able to use alpine and ubuntu based containers but it happens.

I dont work there anymore and I am glad because when the containers finally do get an audit and the customer is told for X years they havent been in compliance.... well..

Re:Docker Considered Harmful (2016) by jcelerier on Tuesday June 26, 2018 @02:14AM (#17398278)
> Still not sure how a corporation who runs RHEL contractually is able to use alpine and ubuntu based containers but it happens.

... why would it be a problem ?

Re:Docker Considered Harmful (2016) by andrewguenther on Thursday June 28, 2018 @03:50AM (#17414886)
We've done two audits now, only minor items
Re:Docker Considered Harmful (2016) by mbu on Tuesday June 26, 2018 @10:03AM (#17400652)
Can you expand on the crazy stuff you've seen?
Re:Docker Considered Harmful (2016) by geggam on Monday June 25, 2018 @05:36PM (#17396020)
Curious... What is your setup ?

AWS ? GCP ? ... managed k8s or you running it ?

Outsourcing your operations and pretending the problem is cured by docker is just a bit silly.

Re:Docker Considered Harmful (2016) by andrewguenther on Thursday June 28, 2018 @03:52AM (#17414898)
Docker on EC2. We had been running bare on EC2 before Docker using a homegrown chroot solution.
Re:Docker Considered Harmful (2016) by true_tuna on Monday June 25, 2018 @05:41PM (#17396057)
Where do you run your containers?
Re:Docker Considered Harmful (2016) by w8rbt on Monday June 25, 2018 @06:04PM (#17396219)
AWS Fargate. No infrastructure to patch or worry with. Just code and Dockerfiles.
Re:Docker Considered Harmful (2016) by workinthehead on Monday June 25, 2018 @11:46PM (#17397720)
You run your containers on a hypothetical platform that hasn't been released?
Re:Docker Considered Harmful (2016) by hadlock on Tuesday June 26, 2018 @01:03AM (#17397976)
We half of all our QA processes to Fargate sometime around April, more than halved our compute costs. After the big summer milestone there is another big project to move the rest to Fargate. I prefer running my own k8s/kops cluster, but our B team got it stood up in a week and have had no issues in at least a quarter.
Re:Docker Considered Harmful (2016) by w8rbt on Tuesday June 26, 2018 @02:33PM (#17402976)
You are misinformed. Fargate is out and it works. I have containers running on it right now and they have been for several weeks now. You can select it or the old EC2 approach. Try it, you may like it.
Re:Docker Considered Harmful (2016) by gnufied on Monday June 25, 2018 @08:12PM (#17396956)
In default docker installation on most Linux boxes, communication to docker socket itself requires elevated privilege. You can't even do `docker ps`.

In jobs I held - people who can pull images and run container on servers, they also could install stuff if they wanted. Is running privileged containers blocked? It just seems something broke down in engineering process, if developers has to bypass admins to install stuff on a server. What happens if that server crashed and burned?

Re:Docker Considered Harmful (2016) by Spivak on Monday June 25, 2018 @09:28PM (#17397252)
Access vs authorization. You can use docker to get yourself local root. If you do it and admins find out you'll be in hot water.
Re:Docker Considered Harmful (2016) by ezoe on Tuesday June 26, 2018 @03:04AM (#17398477)
Seriously. Just to circumbent the silly restriction of system you don't have root on? GNU Hurd was right all along.
Re:Docker Considered Harmful (2016) by codedokode on Monday June 25, 2018 @07:29PM (#17396709)
> implementations for OS X and Windows

But they use virutal machines. For me, the disk access speed is very slow for a virtual machine. For example, elasticsearch daemon starts in 8s in Debian on real hardware and takes more than 30s in a VirtualBox. Everything that touches disk works slower.

Re:Docker Considered Harmful (2016) by geggam on Monday June 25, 2018 @03:40PM (#17395167)
It empowers developers to side step many of the best practices learned in SDLC over the last 20 years and ship code they shouldn't

The code is then running on a fault tolerant platform which masks the bugs and makes ops life hell when it comes to actual debugging.

Additionally upgrades and other assumptions about the base OS and system management are simply swept under the carpet with pretending those issues no longer exist.

Effectively it makes much much more work when things break and is great when it runs well or you run it in GCP where they take care of that part for you.

Re:Docker Considered Harmful (2016) by mmt on Monday June 25, 2018 @10:16PM (#17397415)
> you run it in GCP where they take care of that part for you

Although I'm generally inclined to agree with your positions on this thread (biased as I am due to my Ops profession), this doesn't seem like a valid criticism.

If Docker-on-GCP actually does address all the issues from the perspective of the developers/customers/users, then it's a plausible solution. The only consideration would be cost.

Re:Docker Considered Harmful (2016) by philwelch on Monday June 25, 2018 @06:44PM (#17396471)
> One feature driving Docker adoption that I think a lot of people miss is that it's got fairly workable (if warty in one case and obnoxious in the other) implementations for OS X and Windows. That removes a lot of friction for developers who work in companies where IT won't support Linux on employee workstations.

Vagrant does this, too. Sure, it runs a VM, but so does Docker.

Re:Docker Considered Harmful (2016) by shaklee3 on Tuesday June 26, 2018 @12:36AM (#17397889)
What does this mean? Docker does not run a VM. It runs cgroups, namespaces, etc.
Re:Docker Considered Harmful (2016) by rpcope1 on Tuesday June 26, 2018 @01:54AM (#17398207)
Inside of Linux, yes Docker does utilize cgroups, namespaces and some other stuff for isolation. However, the GP is almost certainly talking about "Docker for Windows" and "Docker for OS X", which do not run directly on the host OS, and need to be run inside of Linux VMs (like Vagrant).
Re:Docker Considered Harmful (2016) by philwelch on Tuesday June 26, 2018 @12:21PM (#17401881)
aye
Re:Docker Considered Harmful (2016) by zapita on Monday June 25, 2018 @07:08PM (#17396601)
Vagrant runs a VM per app. Sometimes more. Big difference.
Re:Docker Considered Harmful (2016) by paulie_a on Monday June 25, 2018 @09:27PM (#17397249)
Since when? I run multiple apps on vagrant every day. That is pretty standard.
Re:Docker Considered Harmful (2016) by zapita on Wednesday June 27, 2018 @04:11AM (#17406543)
And most likely you are running those multiple apps on multiple VMs.
Re:Docker Considered Harmful (2016) by HelloNurse on Tuesday June 26, 2018 @08:58AM (#17400182)
Well, a VM per sensible unit of configuration management the user is supposed to choose. An "app" is a very slippery concept.
Re:Docker Considered Harmful (2016) by workinthehead on Tuesday June 26, 2018 @12:06AM (#17397790)
Well, there is a big difference, but not the one you've managed to come up with. Vagrant is normally used to run full VMs (although you can use it to drive Docker), so while you might run App, Supporting App, PHP, Apache, Node, Nginx, MySQL, Mongodb, and Redis all as separate containers, you'd probably put them all on the same VM. Your comment almost makes it sound like you don't understand Vagrant or VMs.