Live data from Hacker News

Why doesn’t anyone weep for Docker?

techrepublic.com

171–180 of 248 posts

Re: Why doesn’t anyone weep for Docker?

#171
post #107

Earlier quoted context omitted.

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 Clou…

I'd suggest starting with just scripts, e.g. Bash, PowerShell, anything – that's assuming you have automated builds for both your web app and its components first. (So, automate builds of your app and all of its components first if you don't already have that.)

Pick one cloud provider first and write some setup scripts, i.e. scripts to build an initial (minimal) environment, 'from scratch', for your app and its components, e.g. create a new EC2 instance for the web app, upload your build package to it, etc.. Write the scripts so that any 'secrets', e.g. your AWS API key, are provided as either environment variables or regular command line arguments.

Then, still for the first cloud provider, write some update scripts, i.e. scripts to update your web app and its components.

Assuming your app, or its deployed 'instances', are relatively small and intended to serve a modest load, I'd suggest starting out treating the cloud servers or services as 'pets', i.e. entities you distinguish by name and for which you would be 'sad' if they 'died' (crashed or shutdown). At larger scales, it's often worth treating servers as 'cattle', i.e. a mass of nameless entities, but you probably won't need that at this point or anytime soon. (You'll know better tho.)

As for "containerization and other fancy, related tools that I've been reading on HN in the past couple of years", they're just like any other software – tools that can be used but aren't ever strictly necessary.

Containers are, basically, virtualized OSes, and they can be (very) useful. In my opinion, they're most useful as a way to bundle components of an app with an OS (and other OS components). That you can run those containers in different environments and be reasonably assured they're (mostly) identical can be a big benefit. But there are associated costs too (as with anything)! But if your app and all of its components can comfortably fit on a single (virtual) server, the cost of any changes you need to make to your app to run inside them are probably not worth the (currently) modest benefits.

And all of the other "fancy ... tools" are generally even more a matter of tradeoffs you'll need to make. Once your app, or (production) instances of it, are distributed over several, or many, servers, and you start adding things like load balancers, caching, separate search services, etc., then the benefits of the other 'fancy' tools will start to make more sense.

But, like with many things, it's good experience to directly run into some of the issues that containers and the other fancy tools aim to solve, and really try to solve them yourself with DIY solutions, before committing to use yet another program or tool to do it for you.

Of course, if you just want to learn those tools, and you'd like to use your own app as a 'motivate example', that's perfectly reasonable and valid too. I would recommend tho not to lean on those tools for your own immediate needs unless you really need them.

Re: Why doesn’t anyone weep for Docker?

#172
post #160

Earlier quoted context omitted.

Just some minor clarifications: - DevOps is a peer with Agile and Lean. Scrum and XP are Agile implementations. Scrum doesn't prescribe ways to code, XP does. - 90% of what people develop or run today should be in containers, and not because containers are great, but because of the DevOps patterns of IaC, immutability, reproducibility, homogeneous environments. Whether you run them on your laptop, a VPC, AWS Fargate,…

Please do me the favor of engaging with what I wrote.

I thought I did? Also, this feels a bit passive-aggressive, did I do something wrong?

Re: Why doesn’t anyone weep for Docker?

#173

What's interesting, to me, about Docker as a company perhaps not doing well is how that'll impact Microsoft. Microsoft have done a load of work on getting containers running well on Windows servers and that work relies on Docker EE as the container runtime engine (you get a free Docker EE license to run on Windows servers AFAIK) If Docker get bought up (by someone other than Microsoft), then that would seem to possib…

Microsoft has already heavily invested in getting Kubernetes running on Windows as a fist-class citizen: https://docs.microsoft.com/en-us/virtualization/windowsconta...

Re: Why doesn’t anyone weep for Docker?

#174

Earlier quoted context omitted.

Parenthetically, Linux being an open source reincarnation of Solaris seems also an example, no?

Versions of Solaris are open source aswell (Illumos)

Illumos and friends are effectively dead, except as hobbies for enthusiasts. Sun Microsystems, now Oracle, didn't like the reception Open Solaris got so they packed up their source code and went home.

Which is really a shame.

All 'True' Unixes are just closed source versions of what originally were open source operating systems. By taking copyright seriously and having the misconception that there is intrinsic value in 'IP' they effectively sentenced their operating systems and investors to a long term grave.

But I doubt most of them feel bad about it. They got their millions and their nice fat retirements. It doesn't matter now if customers now view their once dominate systems as a sort of technical debt cancer.

If it wasn't for the destructive power that copyright has on technology and the demands of board members to monetize Unix.. we would all be using BSD right now. Unfortunately the tech people from 30 years ago didn't understand the power of 'letting go' and thus allowed them to destroy Unix.

As far as docker goes it has a lot of momentum as a daemon and it'll probably stay that way for a long time despite some technically superior solutions for running containers that have cropped up in the past few years. The newer container solutions just don't have the community backing them and that matters.

Re: Why doesn’t anyone weep for Docker?

#175
post #36
post #15

The problem i have with cubernetes is the following: I as a small developer and small server owner don't have the ressources to even get started. The first thing i see at cubernetes is a cluster. Why a cluster. Do i need to cluster my Raspberry pi's to get something out of it? Do i need to buy 3 servers just to run 5 containers? In docker its easy. Download Docker. Start container. Install container manager like plat…

Why bother with containers at all at that scale then? We keep on using plain old VMs, while watching everyone rush into containers fashion.

Deployment and transfer of environments between people.

Using docker images means that we can take the thing that developer A built and that "runs on their machine" (without necessarily having that developer on hand) and have developer B easily launch it on their machine without having any dependency or isolation or reproducibility issues, and after making some trivial changes put it in a new, fresh production server without having to ask the original dev how it was/should be configured.

Re: Why doesn’t anyone weep for Docker?

#176
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.

What most enterprises think is DevOps is different from what dsr_ wrote.

They have admins that maintain their pool of servers.

They have developers that are fluent in the stack of their application.

They decide they need to have some of that cloud, containers, CI/CD stuff.

Turns out they need people who can write code that builds their programs, tests their programs, packages their programs, provisions cloud infrastructure, sets up that infrastructure, deploys the packaged program on their infrastructure and finally monitors its health and performance.

Most of their admins say they are not programmers, so it's not their job.

Most of their programmers say they are there to write Java/C#/Python/JS, so it's not their job either.

They find some people who don't mind learning all these things and call them their DevOps team.

In a not perfect, but generally just world this team disseminates their knowledge across both programmers and admins, making both aware of each other. Programmers now think about the infrastructure they need, admins now think about the workloads their infrastructure runs.

In an unjust world, you end up with three silos. Programmers say their code compiles on their machine, admins say they have installed the new server, devops frantically try to build some pipeline that deploys that code on that server.

Re: Why doesn’t anyone weep for Docker?

#177
post #130

Earlier quoted context omitted.

> 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 -…

Containers aren't a magic bullet either. Surely the core of container systems is also "manual work in a for loop". You're right that the default 'ephemerality' of containers is (or can be) a plus but config management tools don't require one to treat one's servers as 'pets'.

> No config management is all-encompassing and so without extreme diligence you will lose the state of your servers over time.

I'm not sure exactly what you mean by "all-encompassing". Surely all of the popular config management systems have 'escape hatches' to let you do anything you could do from a shell, which seems pretty "all-encompassing" to me. But if you mean the config management system don't completely enforce a specific 'state' for managed servers then of course you're correct. Containers don't do that either, beyond periodically replacing running containers with new ones created from a base image (and even that's almost certainly not perfect either).

Unless your container hosts are entirely managed by someone else (and probably even not then, in the fullness of time), you're always going to "lose the state of your servers over time". There's (almost always?) some state somewhere that has to be explicitly managed and thus requires, generally, "extreme diligence".

I do agree that containerization and config management are very different but, like everything, it's 'just' another set of tradeoffs to be made, hopefully depending on one's actual or expected needs and wants.

Re: Why doesn’t anyone weep for Docker?

#178

Earlier quoted context omitted.

Parenthetically, Linux being an open source reincarnation of Solaris seems also an example, no?

It would surprise me if Linus even knew about Solaris when he worked on the first release of Linux. Solaris’ first release was in June 1992, with first use of the name in marketing materials in September 1991 ( https://en.wikipedia.org/wiki/Solaris_(operating_system)#His... ) Linus’ famous message was from the same time (September 17, 1991) Calling Linux an open source version of Minix is more appropriate, but it sti…

I think that, once you're going that far back in history, it's pretty critical to keep track of the GNU/Linux distinction. Linus just wrote a kernel. And then the GNU userland, which had already been in development since the mid 80s, but was still somewhat lacking a workable kernel, was adopted as the official userland to use with the Linux kernel.

And at roughly the same time, IIRC, when Sun decided to migrate their Unix from a BSD flavor to a SysV flavor, which came to be called Solaris, they also used some GNU bits. Which might explain some similarities between the two.

Re: Why doesn’t anyone weep for Docker?

#179

Earlier quoted context omitted.

Parenthetically, Linux being an open source reincarnation of Solaris seems also an example, no?

It would surprise me if Linus even knew about Solaris when he worked on the first release of Linux. Solaris’ first release was in June 1992, with first use of the name in marketing materials in September 1991 ( https://en.wikipedia.org/wiki/Solaris_(operating_system)#His... ) Linus’ famous message was from the same time (September 17, 1991) Calling Linux an open source version of Minix is more appropriate, but it sti…

Linus literally means "Linus' Unix".

Solaris, Minix, etc., were but a number of Unix's goin' on at that time. There were others.

I believe Linus was doing a kernel for his comp-sci adventures in a Finnish uni, well-known for such capers ..

Re: Why doesn’t anyone weep for Docker?

#180

Earlier quoted context omitted.

> For me containerization was always about deterministic environments and ease of deployment instead of performance and clusterin This! I come from the embedded world with a bit of webui and having yocto for the embedded reproducibility and docker for the infrastructure, I am so happy. No more uncertainty when moving to another machine or upgrading my DEV machine. Nope Everything running right everywhere. Some script…

Am also an embedded dev. What toolchains do you use and how do you set them up using docker? Can you provide some sort of guide, because you already said. First investment is pretty high.

I use embedded Linux, not rtos chips. The tool chain is generated by yocto. Yocto is an embedded Linux from scratch distro creator. It creates images and environment for cross development. My connection with the docker was not so toolchain related, but system component test related. I modified the testing harnesses of yocto to start docker containers that serve a kernel zImage(over tftp) and a copy of the pristine ext4 image over nfs. With some program scriptology I made in python I was able to have serial boot log expects as well as boot time monitoring. I made a write up about it but it seems not many people dabble in such topics as SCTs for embedded devices[1]. I must say that embedded developing is a kind of a lonely experience,compared with for example the docker and web developer communities.

Regarding the investment it is an embedded industry problem. There is very little re-use. My experience is that we are an industry of wheel reinvention, where all of us are deep experts so we roll everything on our own. Maybe against myself I speak as I indeed developed this harnesses even though other solutions exist. My quip with what exists is that Intel absolutely owns, or used to own yocto and embedded tooling open source projects. This lead to very crappy code that was Intel specific being half merged into upstream. Mind you their featues are really not working,and were accepted because Intel is a gold yocto project sponsor. When you try to remove the broken code to a more sane one, you cannot because then the actual good rules of making small changes will bite you back and your changes will not be accepted. So you need to wait for Intel to cave in to remove their broken features. I digress sorry :). Even so Yocto project is a great step towards embedded projects productivity and knowledge re-use. https://www.reddit.com/r/embeddedlinux/comments/bk8a8k/yocto...

Post reply on HN