Hacker News new | ask | show | jobs
by threeseed 618 days ago
Kubernetes has unquestionably been a game changer.

If you look at most enterprises today you will see it deployed everywhere.

And most of the complexity has been abstracted away by the cloud providers so all you're left with is a system that can handle all manner of different applications and deployment scenarios in a consistent way.

1 comments

> Kubernetes has unquestionably been a game changer.

> If you look at most enterprises today you will see it deployed everywhere.

This doesn't mean it's a game changer. It just means it has a big cargo-cult and people keep using it regardless of whether they need it.

> most of the complexity has been abstracted away by the cloud providers

The abstractions that people add make things more complex, not less. Unless of course you don't care to understand what you're running, which is precisely the problem with the culture around most folks that use kubernetes (and more broadly the US cloud providers as an entity).

Kubernetes is one of those things that are only as complicated as you want it to be.

The problem with Kubernetes and complexity is that because it simplifies a lot of things that are a huge PITA to accomplish on a "homemade" server/container setup is that there are a huge number of products and things you can run on kubernetes to "do stuff".

And it is hard for a lot of people and organizations to resist the "oh shiny" aspect. Stuff like "Oh, look I can do network policies and service meshes!" or "Lets create this really complicated and big thing so we can configure all our AWS infrastructure with kubernetes objects! Who cares that a bad commit can destroy the infrastructure the cluster depends on along with our ability to manage any of it!" or "Look we can have lots of namespaces for all our internal orgs and departments, lets make a gigantic centrally managed Kubernetes cluster that will be managed by IT and that everybody will be forced to use at the same time! Putting all our eggs in one basket is a awesome idea!".

K8s sorta removes the barrier of entry that world normally stop people from implementing those sorts of bad ideas.

Otherwise the core vanilla Kubernetes isn't really that complicated compared to most DIY solutions that try to manage large numbers of apps on clusters of systems. Most of the time it ends up a lot more robust and simpler in the right hands.

You're not wrong about the ideal case, but I've never seen the ideal case in any real (read: paid) context. I've seen hobbyists with very solid setups that were well managed, I've made the thing that kubernetes wants to solve by hand and I understand it's not a trivial (that is to say, not a single afternoon of design and implementation) to do.

I guess I'm just really frustrated with seeing the people that get paid to use and promote it be so bad at what they do and I don't like cleaning up after them :)

> The abstractions that people add make things more complex, not less

Everything in our industry is built on abstractions.

By your logic we shouldn't be using operating systems, compilers, libraries etc and writing our own custom software to manually move applications between different hosts if they go down.

I didn't say this at all. I said you should understand what you run, and if you understand it you realise it adds complexity.

I don't really see how this is a particularly controversial statement and I will say I don't appreciate you trying to reduce it to some ridiculous extreme. You didn't add anything to the discussion and it's tragic, because you could have made a nice point about system boundaries, levels of abstraction and perhaps information overload.

That would have made a great point about why abstraction is sometimes necessary. Then we could have spoken about what makes good and bad abstractions. Perhaps someone who came upon this thread later could have learned something and we'd have made the site a better place together.

You're probably going to be downvoted to oblivion but I 100% agree with you. It seems like they tried to remove all the complexity, and just made new complexity.
Modern systems are complex generally. If it's not Kubernetes with YAML files, it's a bunch of servers in VMware which is own ball of wax followed by extensive Ansible/Puppet/Chef setup and SREs who keeping entire architecture in their head since they don't have time to write it down.

Obviously, there is exact opposite with stuff like fly.io but they can be extremely constraining.

Yeah, I really liked Heroku and I used it for so many years, but it also killed itself kinda. It could never reduce prices as all machines "was the same" and thus a reduction in price meant lose of revenue and now they're just super expensive comparably.

Now I just dump Caddyserver and install things bare metals servers. I avoid all dependencies like the plague

You will be happy to learn that it was not in fact downvoted at all. I think this may be the first time I've expressed this sentiment to (mostly) positive feedback and I'm pretty sure it's because it was explained properly this time. That is I think a good thing - the downvotes that came before gave me the impulse to improve, and I was rewarded when I did.