Sharing some lessons I learned from 10 years/millions of users in production. I’ll be in the comments if anyone has any questions!

  • Illecors@lemmy.cafe
    link
    fedilink
    English
    arrow-up
    36
    ·
    1 month ago

    Fully agree with the sentiment, but the blog post itself is kinda crap. All it really says is - hey, we’re overcomplicating things, but subscribe to my rss for when I actually start talking about it!

    • something_random_tho@lemmy.worldOP
      link
      fedilink
      arrow-up
      11
      arrow-down
      3
      ·
      1 month ago

      Fair criticism. I wanted to lay the groundwork as I intend for it to be a pretty large resource for people over time. Like starting with chapter one before I write the whole book. I hope you can find some value in some of the stuff to come.

  • MajorHavoc@programming.dev
    link
    fedilink
    arrow-up
    17
    arrow-down
    1
    ·
    edit-2
    1 month ago

    You make some great points, but I’m concerned that your preferred solutions may ignore the needs of working with peers. When I’ve worked with similar solutions before, we had a lot of on call, and it all went to the same person, regardless of who actually answered the phone.

    There’s nuance to be had in the middle ground:

    • The CI/CD pipeline should deliver releases, but shouldn’t be the only way to put them into production. People often get this wrong and have to invoke CI/CD to even do a roll back. Putting something into production without CI/CD should be possible, but it should be loud, to avoid nasty surprises, later.
    • Infrastructure as code is great. It just happens to be backwards, today. We could all go back to point and click changes, if the infrastructure had full journaling (including who made the change) of changes and full rollback capability. Ironically, I expect k8s (or a fork of it) to finally deliver this.
    • the only nice thing I have to say about K8s today is that it’s not locking myself into a proprietary cloud, or worse, VMWare. Today, K8s is towering mere centimeters above even worse solutions, all of them objectively awful. I’m not mad at anyone using any of these. We all know we want the freedom of K8s, but no one wants the bullshit interfaces it currently comes with. It will get better.

    Anyway, interesting read. Thank you. The only way the current awful state of hosting is going to improve is by having this conversation.

    I keep hearing “most people aren’t ready for K8S”. But there’s no such thing. There’s just whether K8S (or whatever replaces it) is ready for most people’s use cases.

    • something_random_tho@lemmy.worldOP
      link
      fedilink
      arrow-up
      11
      ·
      edit-2
      1 month ago

      I’m concerned that your preferred solutions may ignore the needs of working with peers. When I’ve worked with similar solutions before, we had a lot of on call, and it all went to the same person, regardless of who actually answered the phone.

      Totally hear you and have the same experience myself. The approach I’m advocating for is simply running a binary on a server with rsync to deploy, and architecting your product around that limitation. Teaching a team the basics of Linux sysadmin will be incredibly useful for their careers, and it’s something that the whole team can easily learn. Then you don’t need to hire a k8s team – any engineer can do some basic debugging when things go sideways.

      • MajorHavoc@programming.dev
        link
        fedilink
        arrow-up
        7
        ·
        1 month ago

        The approach I’m advocating for is simply running a binary on a server with rsync to deploy, and architecting your product around that limitation.

        Intriguing!

        I’m looking forward to your blog series on this.

  • Kissaki@programming.dev
    link
    fedilink
    English
    arrow-up
    12
    arrow-down
    2
    ·
    1 month ago

    learned from 10 years/millions of users in production

    10 years per millions of users is an interesting metric :P

    • ilega_dh@feddit.nl
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 month ago

      In addition to this I like YAGNI: you ain’t gonna need it

      Don’t implement features you don’t need because you think it might/could/should be useful in the future. YAGNI

      • robinm@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        1 month ago

        DRY and YAGNI are awesome iif you also practice YNIRN (You Need It Right Now)! Otherwise you just get boilerplate of spaghetti