Hacker News new | ask | show | jobs
by starttoaster 804 days ago
Yeah, the way I read it, it boils down to "I worked on Docker. Kubernetes is great but too complex for developers to actually use." Which yes, is something that everyone who isn't fooling themselves has been saying since its inception. I've been managing on prem kubernetes clusters for the better part of a decade, a lot of it makes sense to me now, but was absolutely painful to learn. In my opinion the article would be better if it had a clear goal for the future, but I couldn't find one.
3 comments

Disclosure I work for a company, Noop [1], which is the picture of the steak.

As someone working on the marketing side of the endeavor, I see the shift the author describes. there are a handful of PaaS companies picking up where Heroku left off and in the enterprise world devops is evolving toward "platform engineering". Platform engineering suffers from being poorly defined, but there appears to be growing demand within large enterprises for something like internal-heroku. But there's still a problem.

To me, the problem is not kubernetes. The problem is that tooling has become so specialized that the focus of work has become integration between tools. And that cumulative integration work complicates the operational responsibilities of software developers. Even if you have a dedicated devops team, the complexity of those integrations flows down to developers in the form of different systems for logging, monitoring, firewall, cdn, ci/cd, secrets, etc.

1. https://noop.dev

My take is DevOps and SRE didn't take off how big companies thought they would and the outcome is platform engineering which used to be more a combination of infrastructure engineering and sysadmin roles
Noop actually looks cool, I’ll give it a spin sometime. I’m using Fly.io for all my stuff at the moment but recognize at some point my infra my outgrow it…
Kubernetes is a generalized solution to the problem - hence the complexity. Tools such as Docker Swarm were tailor fit to solve a particular application deployment and scaling problem - hence the simplicity.

I haven't looked in a while, but I recall at one time there being a utility that could take a Docker Swarm yaml and convert it to Kubernetes - Kompose? Has that matured into something useful?

On the subject of Kompose, frankly, I think a person looking to get into Kubernetes either knows how to convert what is essentially a docker-compose file to kubernetes manifests themselves, or they're going to struggle working with kubernetes to the point that no amount of "this is how you convert to this" tooling will save them. At the end of the day, you're working on kubernetes, so you need to know how to work with kubernetes. That might come off as gatekeeping to some, but it is an honest estimation of how much effort goes into productionizing workloads for kubernetes.
That's fair. It's usually worthwhile to suck it up and learn the basics of what it is you need to do.
Exactly. And I did a poor job of mentioning this in my previous message. But that perspective comes from trying to rely on Kompose to migrate my apps over to Kubernetes for me, and then falling utterly short in every aspect that makes Kubernetes inherently more powerful but also more complex than Swarm, such as in the domains of networking and storage. I ended up having to circle back to Kubernetes learning courses on Udemy, setting up a playground, making tons of mistakes, and accidentally becoming more proficient in Kubernetes than I had anticipated, just to get decent at deploying things to Kubernetes. And to be quite honest, I'm still learning about 6 years later. Lately less about storage and networking, and more with securing my workloads using securityContexts, runtime image scanners, etc etc. I'm at a point where I've written my own and helped contribute to Kubernetes operators, but I'm still learning how to effectively use all the tools Kubernetes gives you. So this took a bit of a tangent from the topic of Kompose, but it's all to basically say, "you'd be doing yourself a disservice to blindly rely on Kompose to get you into Kubernetes." In my opinion, of course.
Yeah exactly.

There is no good solution here as in order to have a SIMPLE platform, you need to really reduce the amount of use-case you support to a couple options only. The reality is that every single company I have worked for has a ton of different services with different requirements. Those choices end up being reflected on the platform that now needs to be able to run all of them. If you have a single simple use-case then you should just run that simple use-case on a boring EC2 instance with a boring dockerd and a boring NLB in front (as an example) but the reality is that this is almost never the case.

If you have a lot of different workloads to run at scale there is no better tool than Kubernetes. The complexity comes from its power to run almost anything you want