Live data from Hacker News

Will Kubernetes Collapse Under the Weight of Its Complexity?

influxdata.com

121–130 of 213 posts

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#121
post #79

This whole image, to me, represents a big problem with software engineering today: https://twitter.com/dankohn1/status/989956137603747840 The industry is full of engineers who are experts in weirdly named "technologies" (which are really just products and libraries) but have no idea how the actual technologies (e.g. TCP/IP, file systems, memory hierarchy etc.) work. I don't know what to think when I meet engineers wh…

I have a mixed feeling about this. On one hand I definitely agree that it's good to know lower level technologies and that's something I always ask people in the interviews. I think it's important because I know it. On the other hand there is no end on how low you can go in the technology stack. Do you need to know how sockets works underneath? Low level network protocols? Do you need to know how hardware works becau…

I agree that it's not necessary, but:

Sockets are generally accepted as the standard. If you want to stream data to another computer, that's pretty much the only way to do it. The solution has been decided already.

A lot of these frameworks live in a space that's still evolving. We, as a community of developers, haven't agreed on the 1 best way to do it. As such, there are multiple offerings. In these cases, I feel it is definitely necessary to now what's underneath, in order to better evaluate ones options.

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#122
post #103

Earlier quoted context omitted.

You need a real understanding of the problem and possible solutions to actually solve something. Tools (regardless of complexity) only help you solve it once you understand. People tend to say Kubernetes is complicated because they don't understand the problems it's solving in the first place. If they did, it would be rather straightforward or they would recognize they don't need it in the first place.

Actually, my point was not that Kubernetes (and other "technologies" like it) is complicated, but that people tend to make it a be all and end all without actually understanding how it works under the hood. You're right about one thing: I've seen plenty of people proposing Kubernetes (or Docker Swarm or whatever) for simple systems that clearly don't need it.

> for simple systems that clearly don't need it.

unless you have a single server with no availability your system is probably not "simple".

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#123
post #105
post #79

This whole image, to me, represents a big problem with software engineering today: https://twitter.com/dankohn1/status/989956137603747840 The industry is full of engineers who are experts in weirdly named "technologies" (which are really just products and libraries) but have no idea how the actual technologies (e.g. TCP/IP, file systems, memory hierarchy etc.) work. I don't know what to think when I meet engineers wh…

I don't know what to think when I meet engineers who know how to setup an ELB on AWS but don't quite understand what a socket is... I keep meeting people who list say Postgres as a skill and when probed they admit they just clicked a button in Amazon RDS and that’s all they know about it. At some point it crosses the line into outright deception. This is the other side of the coin on why interviewing is so broken too…

I'd say this goes both ways. You have companies asking for the impossible that won't interview you otherwise, this will create an incentive to deceive. I'd say HR is at fault here for asking for 10 years experience in everything, instead of just looking for software engineers that have good fundamentals and can learn.

I once applied for a job writing tools for embedded programmers that said they want experience in Angular, React, SPAs whatever. I'm working in embedded systems, so obviously 99.9% of people haven't even touched web apps, never mind the modern technologies. I actually got to the interview (despite no deception), because I knew someone working there. They said they actually don't have a single web app and are doing everything in C# (on desktop), and were thinking about making some web apps.

They still don't have any web apps.

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#124

Earlier quoted context omitted.

Everything should be as simple as possible. It's the mark of good design

Minikube—and by extension, basing all the starting tutorials off minikube—is approaching this ideal, IMHO. A year ago, the first time I tried it, it was frustrating to even get up and running. This year I was actually able to get some examples running locally... and that's progress :)

As someone who uses minikube every day to work on an aggregated apiserver, my impression is that minikube is incredibly fragile. I have to reset the VM more than a few times a week. Which isn't that bad considering getting back up and running is pushing one big yaml file down kubectl, but still. It could be much better.

Same with kubeadm. It's pretty okay for a test cluster, but it can't even do a HA setup out of the box. That's an absolute must-have if you have a project big and serious enough to warrant using kubernetes.

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#125
post #79

This whole image, to me, represents a big problem with software engineering today: https://twitter.com/dankohn1/status/989956137603747840 The industry is full of engineers who are experts in weirdly named "technologies" (which are really just products and libraries) but have no idea how the actual technologies (e.g. TCP/IP, file systems, memory hierarchy etc.) work. I don't know what to think when I meet engineers wh…

I expect people said this about developers that just knew about TCP/IP and not how the PHY worked.

At every level of abstraction they is a boundary that people may not choose (or have time) to pass.

I'm not saying everyone should be forced to learn about every layer, but these knowledge boundaries exist everywhere, and I'm not sure what can be done to improve the situation...

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#126
I'm a sysadmin and I attended KubeCon recently. I came back with a similar thought flow in mind. This one anecdote nailed the problem in my opinion - "Kubernetes makes simple things hard, and hard things possible." So, if you dont have things that you think are impossible, just don't pay the complexity tax.

Real-life example : https://www.reddit.com/r/devops/comments/8byasq/is_kubernete...

Paraphrasing for discussion: Poster: A rails project with deployed to 6 servers running in production currently.

Poster: During the asset compilation process, the servers often freeze.

Poster: I need to manually remove servers from the load balancer and deploy one by one.

Poster:I looked a lot into kubernetes and production containerization lately, and as far as I read it, it should solve the deployment and uptime issues. I imagine it'd be a lot easier to just switch containers instead of deploying with capistrano. I also really like the self-healing capabilities a lot.

So, he/she hopes that Kubernetes will magically solve his problem(asset compilation freezes the server). I suppose in his/her mind, Kubernetes is the snake oil.

Things that he/she failed to put thought into (and rather got revved up about Kubernetes):

* Could I setup CI with a script that will perform the asset compilation once on one server and just rsync the final result to the prod servers?

* Could I spend a couple of hours understanding the asset compilation process and find out why it freezes the server?

* Could I learn more about load balancing, rolling deploys?

I think this is the real problem in the tech field. People are running after shiny tools and hope to through tools at their problems all the while ignoring the basics.

In this particular case, I think if they had a grey beard sysadmin who was grumpy to the devs, and enforced a strict release process, everyone would've been happier.

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#127
I think people misunderstand why Kubernetes exists. It is the reverse OpenStack. Kubernetes has the potential to be the one unified API of the cloud. A middleware for proprietary cloud APIs. A few resources, like load balancers, are already at a point where you barely have to care about the underlying cloud provider. With operators and aggregated API servers (especially if they'll be offered as a service) provisioning resources could follow one well-known standard. Calling it now, within the next 2 years cloud database providers like Compose will offer a way to CRUD resources via CRD/apimachinery-compatible services. Few more years and we'll have a generic yaml spec for these resources that work out of the box on multiple providers (probably with a bunch of annotations that are vendor specific).

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#128
Exactly what I'm always saying. It's also nearly impossible in an Enterprise IT environment to get Kubernetes working on your laptop. Minikube and Docker Edge both seem to fail way too often.

As a developer one wants to spin up a system to work on, then work on it, then push results to some repo. And this loop simply isn't possible (yet?).

Also what the author didn't mention is that even the vanilla k8s stuff is already super complex. Let's assume you manage to setup a cluster somewhere and it continues to work for more than 2 days (rarely seen in real world work environments). Then you are faced with deploying your hello world app to work on. Just for a simple single-server nginx deployment with no files and no config, you already need to understand mutliple objects: deployments, replicasets, pods, containers, nodes, hosts, services, nodePorts, port-forwards, maybe even ingresses and controllers.

That means until you feel well, even in a perfect environment, you need several days or weeks. And the documentation is not really helping you there. Yes, it's better than most enterprise grade documentation out there, but still it assumes a lot of stuff upfront. For instance, why should a developer even know what an ingress is and that it might be something he needs?

Combine that huge learning overhead with nearly impossible network debugging, beta level stability, and the low possibility to "just use it", then you have a system that most developers will never touch.

Docker itself might survive though, and one of the good things of this CNCF world is that other alternatives to docker also get a chance to improve on the existing system.

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#129
post #111

Earlier quoted context omitted.

You skip over setting up Kubernetes. And keeping it running.

If we're talking about the actual installation of a distributed system, then installing a distributed database isn't "easy" either, and also requires knowing the concepts so you know what you're doing. Kubernetes is not going to be simpler or easier than the software that it's designed to run on top of itself, but it's not that hard anymore either. The installers work well, there are several distros with varying capa…

Compare to setting up a Lambda application with a DynamoDB or Aurora database. Very simple, has limitations but you get a scalable distributed system for (almost) no time investment.

Re: Will Kubernetes Collapse Under the Weight of Its Complexity?

#130
post #128

Exactly what I'm always saying. It's also nearly impossible in an Enterprise IT environment to get Kubernetes working on your laptop. Minikube and Docker Edge both seem to fail way too often. As a developer one wants to spin up a system to work on, then work on it, then push results to some repo. And this loop simply isn't possible (yet?). Also what the author didn't mention is that even the vanilla k8s stuff is alre…

it's been extremely easy with Docker for desktop. Just 1 click a way from "enable kubernetes"... in Docker preferences.
Post reply on HN