Hacker News new | ask | show | jobs
by 0xbadcafebee 1152 days ago
> the general "zeitgeist" of the software developer community has enthusiastically moved towards fully distributed, eventually consistent systems

For their sake, as well as of the rest of us, I really hope they turn back from the cliff.

As far as general uses of network topologies and system architectures are concerned, there is no advancement I am aware of in the past 10+ years that has become a "better" topology or system design than the rest. There is "newer", there is "different", but not "better". Fundamentally all the designs we have are from the early 2000s or before, with some newer algorithmic pixie dust that hasn't changed the end result substantively. In the end you still need to pick a design based on the purpose and use case.

Plan9 was an excellent beginning design, and I would argue it's due to its combination of simplicity and loosely-coupled interfaces. Distributed or not, consistent or not, its beauty was in how it made certain functionality easier. You could do some things that used to be crazy hard, in a much easier and simpler way. It's that end result, not some theoretical design principle, that made it so interesting.

Containers are an overcomplicated abstraction (and they're not even really "one thing", they're more an idea). The operating system should provide primitives and first class features that make it easier to run what we today call a containerized application. Kernel devs want everything pushed into user space, and that has worked okay, but it has also made a bit of a mess. The Kubernetes ecosystem only exists because the kernel and core system utilities won't do what we want it to do out of the box. We are still living in a world of virtualized hot-rods, cars that have been chopped up and had new parts bolted on to turn it into a Frankenstein that approximates what we really want.

It would be nice to go back to something like Plan9; something so stupid simple and universal that everything becomes easier. But it doesn't look like that will happen anytime soon. Maybe in another 30 years we will have rewritten all the code so many times people forget about Plan9 and then accidentally reinvent it, and it will hit HN, people will think it's new and cool, and the hype cycle will begin. I'll be 70 years old. Maybe the kid who'll create it was born today.

(also, mods: please add (2020) to the title)

1 comments

The defining featureset of K8s is orchestration/provisioning/control, not mere containerization or even distribution over a network. Plan9 addresses the latter in a rather clean and elegant way but says nothing specifically about the former. The Linux kernel has grown namespacing features and user-space implementations of kernel-side API's that are, on the whole, quite reminiscent of Plan9 already. Of course, this has been done in a rather ad hoc, inelegant and arguably incomplete fashion.