Live data from Hacker News

Why doesn’t anyone weep for Docker?

techrepublic.com

121–130 of 248 posts

Re: Why doesn’t anyone weep for Docker?

#121

Earlier quoted context omitted.

After you accept that all these tools were built for overworked and stressed people who don't really have the time to learn things deeply, it becomes much easier. In fact, most of the programming ecosystem and systems administration works like this. Try focusing on "what do I want?", get a superficial understanding on how the tool works, then try to apply that knowledge to your search engine query. For example: Say y…

This is how you end up with low-staying-value understanding built on shaky, fragile footing.

You can but not necessarily will. It can be valuable (to an extent) to abstract certain parts of process away from new users or employees to aid in bootstrapping. That's the message that I get from GP's comment. What these tools can't do is replace experts that can get between the commands to diagnose the root cause of an issue rather than the taking stabs at the dark of a cryptic error message.

These tools for DevOps are no different than the tools and tutorials for developers. It's fine to copy-paste a tutorial that launches an entire webapp from scratch just to get your project off the ground, but if you don't eventually learn what that 10-minute autorun.sh script is doing behind the scenes, you'll fall behind.

Re: Why doesn’t anyone weep for Docker?

#122
post #94

Earlier quoted context omitted.

Sure, but saying "I won't merge this because I don't want my software to be compatible" seems to be strange. Would you not accept say changes to your Makefile to support BSD or Windows or Linux?

It depends. Trying to avoid being compatible with Systemd would be strange. Simply not valuing at all -- if it works, that's okay, but you won't add any Systemd-specific code -- is a different thing.

Simply not valuing at all -- if it works, that's okay, but you won't add any Systemd-specific code -- is a different thing.

That's a fair stance to take if you're just a group hackers hacking away on this cool open source project in you free time. It's a very bad look when you're trying to present yourself as a serious company that other serious companies can depend upon for some of their most critical infrastructure components.

Re: Why doesn’t anyone weep for Docker?

#123

Earlier quoted context omitted.

Well, systemd sucks balls, so I kind of agree with not having PRs specific to it, but I see your point that wearing that on a name tag isn't very nice.

> systemd sucks balls No it doesn't. Shell scripts in your init system sucks balls. Systemd is great.

Sigh No, it really does, and it has nothing to do with init systems.

Systemd was never necessary. An init system just has to run a couple of steps once a system starts or stops. Bash is fine for that, or a tiny C wrapper. Look at every freaking Docker container in the world - they all use tini (https://github.com/krallin/tini), the tiniest, most dinky init tool ever made, because it's totally fine to use something small and stupid to initialize some system calls and execute a program. Once you've "started up", you can choose to use a dedicated service manager to manage various applications.

There's a reason we use K8s, Nomad, or Docker for container scheduling even on a single host: Systemd is not good at it, and we'd have to replace it to scale up to over 1 host anyway. We use distributed decentralized services on modern systems. Systemd isn't intended to work for modern services; it's intended to just be a "faster desktop system", iterating on what we had before, rather than being redesigned for modern workloads and applications.

Anyone who used Systemd purely because they didn't like Bash scripts had no idea how to manage a system. There were already replacements that managed services well, and you'd just install those and use them, with very minimal change to the rest of your system. I mean, if developers need to write a new microservice, they don't say, "I know, I'll use Systemd!" They say, "I know, I'll use minikube!" Because it actually gives them everything they'll need to run their application locally, and on a globally distributed decentralized fault-tolerant service coordinator. Their application can then opt-in to all of K8s' myriad customizations and complexities, but the rest of their operating system doesn't have to!!

But furthermore, as a system itself, Systemd actually just sucks. The user interfaces are totally clunky and not standard to anything else we have in Linux. The binary format makes it much more annoying to use with other tools without having to learn how the wrappers work, and managing the binary files from a systems perspective is annoying. The filesystem structure is fucking atrocious; who the fuck puts config files in /lib ??? Why do I have to re-run 3 commands just to reload a daemon after I've edited its service file?? Why do I need to now learn an entirely new DNS resolver setup that I never asked for?? Then there's the bugs and security issues and generally arrogant, dickish way Systemd works with other open source projects. It sucks balls. You can't tell me it doesn't, because I have to use the damn thing every day, and work around its dumb issues.

To people who manage systems for a living, and regular users just trying to get on the 'Net, Systemd was not some revelation from the gods because "oh no, bash scripts". Bash scripts may have been annoying, but Systemd is annoying in a whole new, more complicated way.

Re: Why doesn’t anyone weep for Docker?

#124

My experience agrees with this. I'm a huge fan of Docker, I've actively taken part since the early days, attending meetups and using it actively day to day. Unfortunately, when I brought several issues to GitHub, or +1'd other people's issues that were affecting the usability within our company, the attitude was very much "f* you and your problems" because Docker want things to be one way and that's how it'll be. The…

Docker has had a surprisingly quick turn from "new community software that's worth supporting" to "clearly sabotaged for 'enterprise' sales".

Re: Why doesn’t anyone weep for Docker?

#125

Earlier quoted context omitted.

> For me containerization was always about deterministic environments and ease of deployment instead of performance and clustering. But even with these advantages I am currently not using any solution for that. You can get 99% of the way using a stable distribution and a configuration management system (ansible, chef and the like). It's much much simpler than running an orchestration service. I feel most people don't…

To be honest I only very recently got to know ansible and related techs so I maybe missing an opportunity to learn something. Even so I think you are forgetting the DEV part. With ansible and chef you can make a deployment to the real infra. With containers you can have infra locally in your DEV environment and have clean slates. The similitude of the DEV environment and the production are crucial for devops. There i…

> With containers you can have infra locally in your DEV environment and have clean slates.

True, but you can do that with plain system containers such as with lxd, rather than having that bundled with the huge paradigm shift that Docker comes with.

Re: Why doesn’t anyone weep for Docker?

#127
post #107
post #73

Can anyone offer a good guide to DevOps for people who don't directly use these tools but work with engineers who do and would like to learn more? The whole ecosystem of servers, cloud infrastructure (and all of the different offerings there), Docker, Kubernetes, CICD tools etc is a bit overwhelming to get into.

I'm currently in the process of developing a video training course that teaches Terraform, Ansible, Packer and GitLab (CI) as a set of interwoven, dependent tools. Is this something you feel would scratch your itch? Would you be willing to have a quick chat? I'd pay for your time, of course. I need to gather feed back from people looking to develop their skills into the CloudOps space and understand what it is they'r…

I have been looking for a entry point to start learning containerization and other fancy, related tools that I've been reading on HN in the past couple of years. I mostly write backend code/scripts, so I'm very new to dev ops stuff.

The immediate need for me is to package up a C#/.NET web app and its components (DB, etc.) into a container so that I can deploy it on any big-name cloud provider (Azure, AWS, Google Cloud). Now after reading through the comments in this HN post, I am not sure if I should choose Docker or something else. If you have any suggestion, I would love to learn. I'm more than happy to provide you with feedback and such (even for free) if I can learn from your tutorials. Thank you.

Re: Why doesn’t anyone weep for Docker?

#128

My experience agrees with this. I'm a huge fan of Docker, I've actively taken part since the early days, attending meetups and using it actively day to day. Unfortunately, when I brought several issues to GitHub, or +1'd other people's issues that were affecting the usability within our company, the attitude was very much "f* you and your problems" because Docker want things to be one way and that's how it'll be. The…

I wonder how much of that attitude was caused by an overstretched team with no effective scaling mechanism in place. No, "open source" does not automatically mean "scalable team". Part of Kubernetes success is its ability to scale up the community, empowering multiple entities to meaningfully contribute.

Re: Why doesn’t anyone weep for Docker?

#129

Earlier quoted context omitted.

LXC feels more UNIXy. Docker command line tools and formats feel awkward in that regard (which helped to popularize the thing by pushing this one specific view).

I agree. I had some VMs that I wanted to turn into containers. With LXC it was a breeze, and the result is very much like a "lightweight VM". Docker seems more like putting a single application process in a container, which is a very different thing. And if I want to do that, I'll seriously consider running the application in a unikernel (e.g. OSv) instead.

If you are trying to use docker to build lightweight VMs you are really swimming upstream. In the (docker, etc) container world they use the phrase "pets not cattle". Containers are designed to be stateless (nothing is stored in the container) and to be spun up and down as demand changes.

https://devops.stackexchange.com/questions/653/what-is-the-d...

If you want to build a mini-VM using containers, LXC is a great choice. If you want to deploy software, easily, with CI/CD and [auto-]scaling, then containers are what you want.

Re: Why doesn’t anyone weep for Docker?

#130
post #54

Earlier quoted context omitted.

I like the tooling better and suspect that many other developers feel the same. Docker is more like managing and configuring software libraries and dependencies. You just declare what type of environment you want and it's there. If you change the version number of a dependency the old image is discarded and a fresh one is created. The Dockerfile is managed with the source code. VirtualBox feels like installing a regu…

> VirtualBox feels like installing a regular computer. It takes a long time and is a lot of manual work. If you want to change something you login on the existing VM until you reach a point where you no longer remember all the changes you've made over the years. The machine is unclean. Unfair comparison. People running on VMs usually rely on configuration management to do the install+config part. Think of stuff like…

Config management isn't a magic bullet. At the core every config management platform is manual work in a for loop. Lot's of layers in the case of Salt/Puppet to make it a bit more ergonomic but you're ultimately still on the hook for all the server maintenance. No config management is all-encompassing and so without extreme diligence you will lose the state of your servers over time.

I use Ansible all day every day -- it's not comparable container tooling in the slightest.

Post reply on HN