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

  • thesmokingman@programming.dev
    link
    fedilink
    arrow-up
    81
    arrow-down
    3
    ·
    8 months ago

    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?

    • TexasDrunk@lemmy.world
      link
      fedilink
      arrow-up
      20
      ·
      8 months ago

      All Kubernetes usually leads to huge SRE costs for a tiny app

      Hush, I’m working as an SRE and don’t want anyone to figure this out.

    • JoYo@lemmy.ml
      link
      fedilink
      English
      arrow-up
      13
      ·
      8 months ago

      Even if what you say isn’t true I’m giving my vote of confidence so I can just shrug whenever someone disagrees with my architecture.

      Don’t like that I chose a single API server? We’re avoiding sprawling microservice deployments with tightly coupled dependencies.

      Don’t like all the docker containers? We’re avoiding bloated, tightly coupled logic that ignores business domains.

      • thesmokingman@programming.dev
        link
        fedilink
        arrow-up
        13
        ·
        8 months ago

        Monoliths are the answer to bad microservices. Microservices are the answer to bad monoliths. It’s all cyclic and four different architects are going to have fifteen different opinions on how your system should be built. Do the thing that makes sense for your team and try to stay flexible.

    • suy@programming.devOP
      link
      fedilink
      arrow-up
      9
      ·
      8 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.

  • blotz@lemmy.world
    link
    fedilink
    arrow-up
    53
    ·
    8 months ago

    xD just blocked the spammer and all his comments disappeared. Imagine working so hard to spam and it takes 2s to for someone to hide your posts.

    • LostXOR@fedia.io
      link
      fedilink
      arrow-up
      26
      ·
      8 months ago

      What’s even up with that guy? What’s he trying to accomplish? Spammers confuse me.

    • quicksand@lemm.ee
      link
      fedilink
      arrow-up
      12
      ·
      8 months ago

      Oop looks like he moved servers. I blocked them on one yesterday and just saw their post again. Oh well, another 2s wasted :p

      • BakedCatboy@lemmy.ml
        link
        fedilink
        English
        arrow-up
        17
        ·
        8 months ago

        Lemmy really needs pixelfed’s naive bayes spam detection, it would be able to easily classify the new accounts after classifying one post as spam, then it would be 0 seconds wasted.

    • slazer2au@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      8 months ago

      I thought my client was chucking a wobbly with so many removed comments be the same person.

  • Platypus@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    27
    arrow-down
    1
    ·
    8 months ago

    I’ve been migrating one of my company’s apps from microservices back to monolithic Java. It’s wonderful. I haven’t touched a line of yaml in weeks.

    • clif@lemmy.world
      link
      fedilink
      arrow-up
      29
      ·
      8 months ago

      Currently migrating a massive monolithic Java application to microservices… The circle of life continues.

      Want to just swap jobs in ~5 years to keep the cycle going? You can migrate this project back to a Java monolith and I’ll migrate your monolith back to micros :D

      • SmoothLiquidation@lemmy.world
        link
        fedilink
        English
        arrow-up
        13
        ·
        8 months ago

        Honestly this just sounds like periodically refactoring everything to remove cruft can be a good thing. Also, it helps you understand how the existing code works if you change it and not break everything.

  • 4am@lemm.ee
    link
    fedilink
    arrow-up
    10
    ·
    8 months ago

    Small app developers are all just temporarily embarrassed cloud service providers