this post was submitted on 21 Mar 2024
355 points (96.3% liked)

Programmer Humor

18958 readers
961 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 

Transcription: a Twitter thread from Gary Bernhardt.

  • You, the one who is reading this! You don't need Kubernetes!
  • Also microservices.
  • Also queues that are separate from your primary database (for most apps).
  • Google cosplay is not business-critical.

Source: https://twitter.com/garybernhardt/status/1344341213575483399

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 90 points 5 months ago (6 children)

Absolutes in programming tend to lead to bad designs. This is more a “I’m gonna stir up some shit on Twitter” post than real wisdom.

  • No microservices usually leads to bloated, tightly coupled logic that ignores business domains
  • No monoliths usually leads to sprawling microservice deployments with tightly coupled dependencies and flavor-of-the-week new ones
  • No Kubernetes usually leads to VPS pets or crazy obstacle courses trying to get SSL termination without a million fucking dependencies in a cloud container orchestration system that isn’t as good as Kubernetes
  • All Kubernetes usually leads to huge SRE costs for a tiny app

The same shit happened last summer when AWS came out with their “we dropped microservices for a monolith and look at our speed increase” article which ignored good design principles. Sometimes you should split things over business domains so you can deploy and code independently. Sometimes Kubernetes is the best way to handle your scale needs. The stories we normally read are about people doing it wrong (eg AWS making a bunch of microservices inside a domain sending fucking gigs of data between what should have been functions in a single service). Inexperienced folks don’t always know when to move from their minimum viable solution to something that can scale. That doesn’t mean you remove these things, it means you train on when you need them.

Should we abandon design patterns because singletons or flywheels aren’t the correct solution all of the time?

[–] [email protected] 10 points 5 months ago

Precisely, Gary Bernhardt has given a talk on ideology. I don't think he's precisely someone who thinks in absolutes. It's just preaching that some stuff is (probably) used more than it should. I've seen way, way, way worse projects that over engineered things and made things slow and unmanageable, than the opposite. Of course, everyone has seen different things, and our perceptions are amplified and biased by that.

load more comments (5 replies)