Live data from Hacker News

Ask HN: Docker vs simple DLLs?

news.ycombinator.com

61–65 of 65 posts

Re: Ask HN: Docker vs simple DLLs?

#61

Earlier quoted context omitted.

Not really; if you have a few servers vs. a few containers the patch is the same with the difference that the server one is probably "live" patching on a running system and the docker one is patching it in the docker file and re-deploying which makes it an atomic change. It also really makes a difference if you are combining some tasks and ownership in a DevOps concept where it's not just developers handing off some…

The problem is, most ops-focused people don't have much knowledge of the boatload of different application-side tooling, and most devs (especially those out of "coding bootcamps" or practical academia) don't have a single ounce of knowledge about OS management or even how basic UNIXoid fundamentals work. DevOps has always been more about companies attempting to "save" money by shoe-horning together roles that require…

That hasn't been my experience in the last decade or so, and new people or people with different specialisations are indeed unlikely to be good at everything on the first day.

Before the overlap between development and operations there were multiple teams involved in every step, everything was slow and expensive and you'd be lucky to deploy once a week. After making sure that where overlap exists the people that have the skills to work in that area can do what they need to do (i.e. build, verify, release and instrument the systems they are responsible for) we get every team releasing every system multiple times per day in small increments. This is both faster, easier for everyone, and worth the ROI on people and tech far more than trying to invent borders and fiefdoms between hyper-specialised teams.

Re: Ask HN: Docker vs simple DLLs?

#62
post #5

Docker helps with two problems DLLs dont: 1) what if I want to run your app on my Linux server and I dont have dotnet set up. I dont want to deal with installing and maintaining dontnet. And I dont trust your setup script 2) You want run a database and message as part of your application, and they aren't dotnet.

There are also more considerations. For instance, a QR code library I use in .NET has a few Debian packages as dependencies for Linux (like Imagemagick). With Docker, these installed packages ship with the product as well.

Re: Ask HN: Docker vs simple DLLs?

#63
- Your DLLs, assets, etc comprise a complete application you can deploy anywhere.

- But that anywhere needs to be a consistent environment for you to be sure your application behaves as expected (OS versions, system libraries, file system layouts etc).

- Docker (actually containers generally) goes one step lower and provides that consistent environment by effectively running your application inside a precisely defined virtual OS that is always the same regardless of the actual hardware.

---

That's all moderately simplified, so not 100% precise terminology, but in effect you can think of Docker as a lightweight virtual machine to run your app in, that always behaves the same, and that can in turn be hosted inside most 'real' servers regardless of what they themselves are running.

A bit like running a PS1 game in a PS1 emulator on Windows, but running a .Net Core app in Debian on an Azure VM (for example).

The same config can be used to run the app in Debian on a local Windows box, or your designers Mac, without changes and with guaranteed identical behaviour as all your app sees is the Debian host.

(in reality it's more lightweight and faster launching than a VM is, and it's not actually using emulation, but that's all technical detail)

Re: Ask HN: Docker vs simple DLLs?

#64
The very very short? It’s fully isolated (as much as cgroups can be) and, more importantly, disposable. Cattle, not pets.

Runs funny? Shoot it in the head, process it, and replace it. Wrong version (hide color) today? Shoot it in the head and…

Re: Ask HN: Docker vs simple DLLs?

#65
> what is an idiot-proof explanation for the need of docker in light of dlls?

I think the key thing is it's not a need. What you are doing is fine if your team can hire the talent they need to maintain (and grow) the product/software to match the companies needs.

OCI standards (what Docker uses) to some extent are trying to make a uniform ecosystem so engineers and architects know what to expect before digging into a project. That should not be compulsory though; other systems that work only make 'bigger' systems from places like the open container initiative better by showing what works in the wild.

Post reply on HN