News for hackers. Stuff that matters.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by sagichmal on Wednesday November 13, 2019 @06:05PM (#21530749)
> Docker is the single best thing to happen to software deployment in 20 years

Something like Docker may eventually hold this title, but Docker itself? Certainly not. It was simply too poorly executed, both strategically but especially technically.

Running production workloads in Docker containers was, is, and will be remembered as nothing short of professional negligence. Often expedient, sometimes worth the risk, but always a liability.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by gerbilly on Wednesday November 13, 2019 @06:47PM (#21531118)
Yeah, totally agree. Most uses of Docker are of the "Junk Drawer" variety.

A bunch of disorganized unpinned dependencies get thrown into a container that will work in a reproducible manner only until one of the upstream deps changes.

This approach also allows people to get away with deploying an app without truly understanding it. That's always been a good recipe for success.

Another poster claimed that it's mainstream practise, so what? So was running your web-server on 90s era IIS. Not that that was good idea either.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by senderista on Wednesday November 13, 2019 @08:10PM (#21531754)
The biggest issue I've had with Docker is that Dockerfiles aren't designed to be reproducible, so regressions are practically guaranteed. If there were tooling around pinning versions of Linux distro packages, and maybe a few select PL package managers like Go, Node, Python, Ruby, it would make a huge difference. I tried to do this by hand and finally gave up.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by manigandham on Wednesday November 13, 2019 @09:02PM (#21532080)
You can stack layers (where you install exactly what you want) and create an image that is deterministic.

Even if you install from repos in the dockerfile, they should have version numbers.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by imtringued on Wednesday November 13, 2019 @07:11PM (#21531305)
How is this different compared to creating a new VM for every single application?
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by gerbilly on Wednesday November 13, 2019 @07:17PM (#21531341)
IDK, I don't use docker or a separate VM per application.

I guess I'm old school but I install the stuff on my linux instance or server and work out the dependencies so they don't clash.

I haven't found it that difficult.

Just cos the devs want to throw some ill conceived container over the fence onto my systems, doesn't mean I let them. ( I mean I guess they can, but only if they get the support calls instead of me.)

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by acdha on Wednesday November 13, 2019 @07:33PM (#21531475)
This can work for simple projects where the dependencies are all similar but it doesn’t scale well and, if you’ll forgive the unsolicited career advice, I would be worried that the breaking point is “We switched to the cloud and told your boss’s boss’s boss that you had been holding us back”. I much prefer finding some balance which doesn’t position you as the Department of No.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by kortilla on Wednesday November 13, 2019 @07:55PM (#21531642)
“We switched to the cloud” isn’t a decision made by development orgs in any non-software company. In most businesses, supportability by IT and boring bureaucratic processes are king.

“Adopt whatever buzzword shit developers are into” is about the worst career advice you can actually give sysadmins that work in non-cutting edge companies.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by acdha on Wednesday November 13, 2019 @09:13PM (#21532157)
> “We switched to the cloud” isn’t a decision made by development orgs in any non-software company. In most businesses, supportability by IT and boring bureaucratic processes are king.

This might have been true in your experience but it hasn’t been in mine (.com, .edu, .gov). There’s common term (shadow IT) for what inevitably happens: someone hires their own staff, gets their own servers, arranges their contractors to host it, architects their application requirements so it can’t be run by central IT, etc. The reason it happens is that the IT department is not listening to its users and thus giving them a strong incentive to find alternatives to accomplish their jobs — and they’ll almost always win unless the CIO is politically untouchable and has an iron hand on the budget.

This is especially true in these cases: using the cloud or containers is what senior management are hearing from all of their consultants, and likely many peers. If you’re trying to hold that back without a really good reason, it is unlikely to end well for you unless you’re related to the CEO, especially since it’s easy to find people with equivalent or greater experience who can point to good results from having adopted what are now relatively mature technologies with plenty of case studies.

> “Adopt whatever buzzword shit developers are into” is about the worst career advice you can actually give sysadmins that work in non-cutting edge companies.

If you think that’s true, I would suggest you reread my comment and ask whether that’s a fair reading of my suggestion about finding a way to balance concerns. There is a huge amount of space between “no” and “you can run whatever you want”.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by gerbilly on Wednesday November 13, 2019 @09:17PM (#21532192)
I deploy big complex projects this way.

I've built sophisticated automation to achieve this, so it's all reproducible.

I just don't use Docker that's all. It doesn't bring anything to the able that I can't achieve more simply some other way. And it has it's own problems.

I've been a sysadmin for 25+ years and I've administered production DNS server, mailservers, web server, app servers, routers, switches ...

I think stuff like docker and k8 appeals to people today because it promises that you don't have t understand any of that old stuff.

But to me it just makes my life harder because I don't need the underlying tech abstracted away. If anything it makes my life harder to add an unfamiliar layer on top.

I'm not worried, there will always be market for guys like me. When the fancy new stuff stops working, someone has to fix it.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by acdha on Thursday November 14, 2019 @09:29AM (#21535592)
I've also been doing that for about 25 years, with a similar list, and full automation since ~2001 or so. I haven't found that approach to scale very well because it requires a much higher level of sysadmin skill & application-level knowledge, maintaining a somewhat extensive list of backports or custom builds, and the ability to customize each application to work with a filesystem layout which avoids the conflicts which inevitably arise. Automation is important to making that work at all but it still means that any time things change hands there's a non-trivial amount of code to review before you are confident about making changes and it tends to require elevated privileges or greater levels of coordination between the developers and operators.

The reason why containers are popular is that you get a simple way to manage all of that and it's completely standard on every project. App A doesn't need to be modified to coexist with App B because they're running in an isolated environment, the sysadmin doesn't need to learn how the container was built just to manage services or deploy new instances, builds are much faster because of the layering model, you can deploy a single tested image with no chance of differences creeping into your automated deployments in testing & production, etc. All of that is something which you can achieve with other tools but there's a huge win to not having to reinvent each wheel when you encounter it and being able to reuse other people's work easily.

Note also that I said “containers” instead of Docker — some people might prefer, say, podman / buildah but the key concepts of having a clear support boundary with an isolated-by-default filesystem model are really more important than the implementation.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by gerbilly on Thursday November 14, 2019 @10:17AM (#21535992)
> the sysadmin doesn't need to learn how the container was built just to manage services or deploy new instances

I disagree on that point.

Just taking a docker image from a developer and deploying that to production does not work to well in my experience, and guess who gets the support calls when things break?

If a sysadmin gets a say in how the container images are configured, it usually works out much better.

Also partitioning the filesystem to avoid dependency clashes used to be more important when I used rack mounted servers. Now it's easy enough to deploy separate cloud instances to partition things. And it's a real VM with real tools on it so I can diagnose problems if they arise.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by acdha on Thursday November 14, 2019 @11:42AM (#21536849)
> Just taking a docker image from a developer and deploying that to production does not work to well in my experience, and guess who gets the support calls when things break?

In my experience, that's been about the same for any mode of deployment by a developer without ops experience. The main thing Docker added was standardizing the mechanics and avoiding certain classes of errors like not having reproducible builds or deploying local artifacts inconsistently.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by Xelbair on Thursday November 14, 2019 @02:52AM (#21533607)
You know why docker is being used instead of this approach?

Because your automation is made by you, and for you, no one else can take it over if you leave. And even if they can take it over, they will have way higher salary - compared to the container based system.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by scaryclam on Thursday November 14, 2019 @03:48AM (#21533871)
To be fair, pretty much every single place I've seen docker in use there have been custom automation systems in place. Docker creates artifacts, not automation, so it really doesn't help solve that problem. Kubernetes on the other hand, does help, though you'll never get away from some custom parts in a delivery system, as all systems are different. That's not a bad thing.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by vasco on Wednesday November 13, 2019 @07:26PM (#21531410)
This sounds like an immature attitude to take towards the people that work with you and just makes you sound like the stereotypical basement sysadmin that needs to control everything and knows better than everyone else.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by kortilla on Wednesday November 13, 2019 @07:59PM (#21531672)
Containers are terrible for bureaucratic institutions. It moves security patch management to the development org that builds the containers and development orgs typically don’t have the tooling/process to do this.

Source: consulted for a company that got bitten by allowing containers without a patch management process for vulnerabilities.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by gerbilly on Thursday November 14, 2019 @07:55AM (#21534998)
Perhaps but they are happy with the results.

They tried it their way for a couple of years, and there were performance problems and outages.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by jensvdh on Thursday November 21, 2019 @10:29PM (#21602175)
Good luck doing something like that at scale with thousands of instances.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by hodgesrm on Thursday November 14, 2019 @02:32PM (#21538546)
I think you just pinpointed what Docker should have been focused on from the beginning to monetize their creation. There are so many obvious ways to make Docker work for enterprises.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by asadlionpk on Wednesday November 13, 2019 @06:12PM (#21530822)
Sure docker is not perfect but isn't running docker containers mainstream practice now? I think your response is a bit of exaggeration.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by wokwokwok on Wednesday November 13, 2019 @07:12PM (#21531315)
Haha... for production workloads?

Definitely not.

Docker is a lovely developer tool, but it’s not, in my experience, ever been (even with swarm when that was a thing) suitable for production workloads.

Containers: yes.

Docker: that’s a container runtime, and definitely not mainstream for production workloads.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by raesene9 on Thursday November 14, 2019 @04:06AM (#21533946)
you're kidding right?

Docker runs as the Container Runtime under most Kubernetes clusters (in fact every Kubernetes cluster I've seen). The only other CRIs that are commonly used are CRI-O and ContainerD (which Docker already uses), and last I saw CRI-O was < 10% of the Container runtime market.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by bsaul on Thursday November 14, 2019 @03:43AM (#21533849)
just to make sure i understand what you’re saying : running containers created with the docker tool is ok, and running it with kubernetes is also ok, but actually deploying docker tool on a server to run the container is not. Am i correct ?

Care to explain what makes that docker tool/runtime unsuitable for production ?

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by derefr on Wednesday November 13, 2019 @08:15PM (#21531792)
I think, when people are talking about "using Docker", they're talking about using Docker tooling to build and push/update/pull Docker images (actually OCI images) around. They're not really talking about running OCI images "on the Docker daemon container runtime." But to most people, OCI images are "Docker" and if your cloud scheduler/hypervisor can run them then it's "a Docker runtime."
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by jjeaff on Wednesday November 13, 2019 @11:21PM (#21532753)
Docker daemon is the default runtime for k8s and k8s is most definitely being used in lots of production environments.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by wokwokwok on Wednesday November 13, 2019 @11:20PM (#21532750)
I like to believe most people are sufficiently with-the-plot to appreciate that there is a difference between a "container", "container runtime", "container orchestration" and "docker".

No one is seriously confused about "using docker" meaning, oh hey, I run my containers on kubernetes. I have literally never met someone who was confused about this. I suppose some people just stop at "I use docker" and don't know what that means when it hits production... but I'm skeptical they actually think a copy of docker is running out there in prod.

...but to be fair, the parent comment did say that running "docker containers" was mainstream; and fair enough.

My point was running containers using docker most certainly is not.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by asadlionpk on Thursday November 14, 2019 @04:30PM (#21539640)
I don't get your point. Isn't docker the default runtime everywhere? k8s uses docker internally, by default.

So containers are most certainly run in prod using docker (to be specific docker daemon), are they not?

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by manigandham on Wednesday November 13, 2019 @09:00PM (#21532073)
For many people, Docker = container, created using a Dockerfile and deployed to kubernetes or elsewhere, regardless of the actual runtime underneath.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by MagicWishMonkey on Thursday November 14, 2019 @01:27PM (#21537918)
What is the problem with using a container based approach for production workloads?
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by marktangotango on Wednesday November 13, 2019 @07:57PM (#21531660)
I’ve wondered about this myself. What is the solution? On premise cloud like openstack?
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by jensvdh on Thursday November 21, 2019 @10:32PM (#21602185)
Most of the industry runs Docker containers in production my dude.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by hermanradtke on Wednesday November 13, 2019 @09:57PM (#21532389)
Pretty sure Google App Engine runs Docker under the hood. It has been a while since I logged into a GAE machine.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by pjmlp on Thursday November 14, 2019 @04:18PM (#21539541)
Around here it is still plain old VMs, thank you very much.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by asadlionpk on Thursday November 14, 2019 @04:32PM (#21539668)
Both have their usecases. It just doesn't make sense to carry around a VM image (or build a new VM image on each push) for a fairly simple web app (which is what many work on).
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by pjmlp on Thursday November 14, 2019 @04:39PM (#21539745)
Well, that is what application servers are for.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by sargun on Wednesday November 13, 2019 @06:18PM (#21530868)
There are a non-zero number of deployments that run Docker at considerable scale with pretty good success. I think their software has made considerable strides.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by tarsinge on Thursday November 14, 2019 @04:06AM (#21533950)
We are a small agency. Before Docker you can’t imagine the pain of managing Python, Ruby or whatever environments and dependencies especially on designers laptops for running dev environments. Now on a fresh laptop it’s just install the Mac desktop client and docker-compose up. Seriously it was a blessing for us.
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by sagichmal on Thursday November 14, 2019 @12:03PM (#21537040)
If working at your org requires me to spin up Docker containers to write, test, and commit code, I'm changing jobs ASAP. Docker is a tool for CI environments, not for developer laptops (or production, for that matter).
Re:Mirantis acquires Docker Enterprise and Docker raises $35M by tarsinge on Friday November 15, 2019 @04:14AM (#21543452)
I should have been more clear that it’s mostly for non developers (designers) or front-end developers for running the back-end, without the hassle of installing and maintint the related development environment. The same as if it was a third party program.

If you still install a full ecosystem every time you want to try a piece of code in any language in Github instead of doing docker run I think you are missing something.

With that said I too use it in my dev machine and don’t really see the downsides for the kind of projects I work on, so I’m curious if you can explain your opinion.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by sagichmal on Friday November 15, 2019 @10:50AM (#21545781)
Most programmers bring value to an organization by creating and maintaining code.

Code should therefore be organized so that programmers have to interact with the fewest possible artifacts (repos, compilation units, deployment artifacts, processes) to deliver that value, ideally 1. (This is symmetric with Conway's Law.)

Delivering value on that single artifact should be possible in isolation, meaning (after cloning) without internet access, or any other service running on the development environment. Concretely, all services should have a "development mode" that allows them to exercise their business logic against mock or stub dependent services, in-process/in-mem databases, etc.

So,

> If you still install a full ecosystem every time you want to try a piece of code in any language in Github instead of doing docker run I think you are missing something.

If I'm working at a company, I expect that delivering business value means checking out, compiling, running, and testing a single process with no external dependencies. If this isn't the case, I will make it the case, before starting any value-delivering work.

If delivering business value requires me to spin up the entire universe of services on my laptop, creating a miniature staging or production environment, that's a problem that needs to be fixed. This means that docker-compose, in fact Docker at all (unless the business value involves e.g. Linux-specific features), Kubernetes, etc. in my build/test/run cycle are all red flags.

Exceptions exist, but they are and should be rare.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by tarsinge on Saturday November 16, 2019 @04:05AM (#21551719)
I think we are talking about different contexts: I do not disagree if this is a big org and you are engineer N (> 100). With that said:

The previous company I worked in and others I’ve heard of were dysfunctional because organized like what you describe compared to their size. Backend engineers working on their API in isolation, without a good contact with end users, their business, and the UI, is the huge red flag in my case.

> Concretely, all services should have a "development mode" that allows them to exercise their business logic against mock or stub dependent services, in-process/in-mem databases, etc.

This brings only complexity and additional code in our case without any clear advantage (except code that’s easy to test but that’s circular reasoning). If your code is in the chain between a user action and the database, then the sooner you test the whole chain for side effects the better, without complex integration testing processes (with subs that will never be as accurate as the real thing). Bonus for being in the user’s shoes.

> If I'm working at a company, I expect that delivering business value means checking out, compiling, running, and testing a single process with no external dependencies.

Given the complexity and the number of dependencies of an OS running a browser and your editor/IDE, I don’t really see the point here.

> If this isn't the case, I will make it the case, before starting any value-delivering work.

That’s exactly the kind of issues I experienced at previous companies: engineers endlessly reworking the architecture until it’s perfect in their view with no rationale regarding real value (« it’s best practices » is not).

> spin up the entire universe of services on my laptop, creating a miniature staging or production environment, that's a problem that needs to be fixed.

This nicely summarize our different point of view: that’s a killer feature for me.

Again it really depends on the context and I’m not disagreeing with your experience, I disagree with how you state this like it’s universal rules of good software development without taking the context into consideration.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by nine_k on Wednesday November 13, 2019 @11:30PM (#21532798)
Without Docker being so convenient for developers, it would be hard to containerize production.

One should not miss the importance of running Docker under Windows or OSX natively, with a VM running Linux tucked behind the scenes. It makes developers' experience so much nicer, and compatible across platforms. This helps adoptions a lot.

Time and again, path to mass adoption is not technical excellence, but making an important thing stupidly easy, when one has no excuses not to try.

Re:Mirantis acquires Docker Enterprise and Docker raises $35M by empath75 on Wednesday November 13, 2019 @06:07PM (#21530775)
What do you base this on?