4 ms·
> K8s is a great example of a "tech jobs program" No, it is not. K8s is an example of how it's impossible to be a jack of all trades and retain simplicity. If
by sangnoir 3y ago
> K8s is a great example of a "tech jobs program"
No, it is not. K8s is an example of how it's impossible to be a jack of all trades and retain simplicity. If a tool seeks to be all things to everyone, then there's no sweeping the inherent complexity under the carpet.
Full-coverage solutions to complex domains are themselves complex by necessity - see SAP, Salesforce, Oracle, Windows backwards compatibility, or try writing a parser/stemmer for a spoken language that evolved naturally :)
- deleted 3y ago[deleted]
- 0xbadcafebee 3y agoThe complexity of an implementation is a different thing than the complexity of a design, and each determines things like how frequently it needs maintenance or how difficult it is to use. As usual, the devil's in the details. You can make something that has complexity without making it complicated or expensive to maintain. Take cars for example. There are many cars today that have a barrage of complex features, yet don't have costly maintenance bills and aren't difficult to use. That's because they have been engineered purposefully to reduce that complexity, and because the people that make them are masters of their craft, trying to create a premium product. Materials engineers, structural engineers, sound engineers, mechanical engineers, and more, all work toward the best design possible, to implement the most functionality with the minimum number of defects. They can tell you how likely it is for the paint to begin chipping on a new tailgate due to potential contamination in an alloy. And they'll use that knowledge to make it less likely that you'll have to take your car in for repair. The software world today - especially where customers are an afterthought (such as backend software) - does not make attempts to improve its design or implementation to reduce the need for repairs. Instead they just "manage" it for you, doing constant maintenance on the constantly breaking vehicle they drive for you, while charging you a subscription fee. (the auto industry noticed how profitable this is, and is now doing the same wherever it can) K8s is a great example of terrible design and half-assed implementation. It was not designed to be easy to install, configure, operate, upgrade, or maintain. It was designed the way a company designs software for its own internal use: start with some "opinions" that are more about inflated intellectual ego than practicality, throw some shit together that "basically works", and keep introducing breaking changes so it can never be operated continuously without requiring constant reworking and changing how it's run. If a car were produced like this, nobody would buy it. But it's handed out "for free", so we all just accept it and end up driving this janky-ass school bus that constantly needs its components changed while the bus is running. But you can't ask a regular person to change the parts on a bus mid-cross-country-tour, so you have to hire a mechanic to sit there on the bus. It doesn't have to be that way, it just is because the people who made that bus don't give a shit about hiring a mechanic, they have 10,000 mechanics already.
- sangnoir 3y ago> Take cars for example. IF K8s were a vehicle, it wouldn't be a car; it would be a multipurpose monster that could be used by some for getting groceries, or configurable into an 18-wheeler for interstate trucking, or as a off-road missile launch platform and somehow also amphibious/submersible. That.... thing will be complex because it has to be able to achieve a variety of tasks. Also, cars are still complex beasts that have achieved economies of scale (I've had "repairs" where they just replaced an entire assembly instead of fixing a smaller component that was broken). I'm sure there are repair forums were mechanics complain about cars more than HN complains about K8s. > K8s is a great example of terrible design and half-assed implementation So where are the superior competitors by the master craftsmen with good taste, then? People willingly choose Kubernetes because the alternatives (third-party, homegrown or manual processes) are worse. Ops, configuration and orchestration management has been steadily getting better over the last few decades, but there is no silver bullet. If you know of one, I'd be happy to try it out and save a lot of money.
- 0xbadcafebee 3y agoI agree that the monolithic nature of K8s is a bad idea and will always lead to more problems. The competitors don't exist because incumbency prevents progress. Nobody wants to write a competitor to K8s, because it would be impossible to get people to switch away from K8s, because K8s is a billion-dollar ecosystem. Thousands of companies now exist solely to service it and build parts for it. None of them want to support two such systems, and none of them want to completely reinvent themselves for some other platform. And from the user's perspective, it's not like getting into a different car, it's like learning to drive an entirely different vehicle, so they have no incentive to switch. This isn't just a tech thing, this is a universal thing. Incumbents suppress innovation and competition without even trying to.
- guiambros 3y agoAren't you describing the perfect scenario of innovator's dilemma? Entrenched incumbents with a legacy and expensive technology, just waiting until a more nimble player comes along and disrupts the entire ecosystem from the bottom up. See the microcomputer, the PC, digital cameras, iPhone, Android, and so on. Except, we haven't seen any of these nimble players gaining any traction. Maybe they're out there, or maybe they're yet to be created. Or maybe the complexity is an integral part of the problem they're supposed to be solving. I guess we'll know in a few years.