[OT] Is the IT Crowd re-inventing Unix with Virtualization, Docker and Microservices?
aimass at yabarana.com
Tue Sep 11 19:10:19 UTC 2018
I guess it's time for another food for thought email of like-minded
FreeBSDers, as I am coming to a new conclusion about this whole enterprise
crap world of which I am so evermore fed up of...
For me it all started with a comment about Theo de Raadt's visionary
comment here, brought to light by Ian Smith in 2017:
At the time I was going through Java / AWS hell so I posted this rant which
was followed up by interesting and diverse commentary:
And now I have been recently exposed to the pinnacle of enterprise crap:
Not saying that they are not a good idea, on the contrary, they are! But is
this all really that new??
So modern-day microservices rely heavily on virtualization (Linux on AWS),
pseudo-virtualization (Docker), and well, the microservices themselves.
They bring on a whole new set of challenges such as log unification
(usually through something like Elastic Search, Log Stash, Kibana, Beats,
etc.), and IPC (through an MQ su as Apache Kafka). Plus a whole new pile of
shit that they are throwing at this microservices "architectures" such as
Hystrix and of course, everyone needs to be "streaming" so they throw in
stuff like Spring Reactor or RxJava, "new" Actor design patterns like Akka
(actually invented in 1973) and well, whatever other thing that Netflix or
Amazon use, then everyone else has got to use them too.
Read any book on the subject and well, cry. Talk about layers and layers,
upon layers and layers of crap, basically to achieve something like, well:
Unix, TCP/IP and HTTP.
So let me breakdown a few of these things so you get what I'm saying:
Reactive Streams: a new FAD designed to handle "back pressure" and vertical
scaling by taking advantage of multi-core CPU's and low-level caching
issues etc. Well, guess what, enterprise idiots: that's EXACTY why you want
a solid Operating System that sits on, and it's fined tuned to that
specific real hardware! and with regards to back-pressure, old school
protocols such as HTTP have had things like 503 and RetryAfter header from
their original design!!
It's so funny that most of these things are for multi-core optimizations
that are not even running on real hardware!
Log Unification: well how about a little education on RFC 3164 and Log
Virtualization: isn't this what Unix basically is? I mean the concept of
processes that are running and sharing resources is that not virtualization
Pseudo-Virtuzalization: Isn't this what chroot and BSD Jails do? Oh you
want an easy interface like Docker, well how about EzJail?
IPC: Isn't that what pipes and SYS 5 IPC provide: an MQ, Shared Mem and
Semaphores? Oh too slow? (really? compared to what?).
And finally the crown jewel: microservices. Well, isn't this one of the
basic design principles of Unix? I mean tiny little things that talk well
to each other to build big things with?
Honestly I could go on but I thing you get the idea. It seems that this
whole "enterprise" industry has been hell-bent on re-inventing a big, bad,
ugly and expensive version of Unix, just because they don't want to tie
their design to Unix? For portability? to what?, well to another flavour of
Unix called Linux, running on Xen and well, Linux.
Is there are real proof that all this microservices crap is really that
much better than individual processes (e.g. built with sh, Perl and/or C)
running on a fined-tuned Unix system on real hardware?
Oh yeah, that's right, high-level guys are too expensive? really? compared
to what? to the dozens and dozens of mediocre "coders", "devops",
"techops"and whatever other "ops". Yeah, we are way more expensive but we
are 50:1, maybe 100:1 compared the median in the "enterprise" side of
Steve Jobs was so right about the "dynamic range"of A players:
Anyway, that's my rant of the year ;-)
Thanks so much for FreeBSD!!
More information about the freebsd-questions