1. 34
  1. 22

    The first rule of distributed systems is don’t distribute your systems.

    1. 6

      Pithy and true.

      The further step that really pushes forward computing, I think, is to realize that many of the things we think are only possible with distributed systems, can actually be achieved without making a distributed system. http://catern.com/list_singledist.html

      1. 1

        The second rule of distributed systems: Don’t distribute your transactions.

      2. 5

        I feel attacked, amused and saddened all that the same time, well done.

        To nitpick the satire, I do believe you should at least start with an understanding of how we could scale. I’ve been at the tail end of more than a few large systems where session management and single state-full processes limited not only scaling but reliability. The horrors of single process failures would eventually stop the all user actions, because there could be only one! stay with me

        1. 6

          I wish I had a good generic answer to how to scale, but it’s a “it depends” and there is no one-size fits all response.

          1. 3

            That’s not quite true…the generic answer is spewing cash into consultants until the magic happens.

            The tricky bit is the marginal cost per unit scale starts absurdly high and only gets worse. :P

          2. 3

            The horrors of single process failures would eventually stop the all user actions, because there could be only one! stay with me

            Not sure if serious but topically relevant article.

          3. 3

            I have been the person to say “Don’t” so many times…and I work for a cloud provider.

            It’s like everyone has forgotten that we got very decent uptime with a couple of physical servers back in the 1990’s. The machines don’t magically melt down.

            1. 2

              It’s kinda funny but, having worked with well-designed PHP microservices and integrated CI/CD on AWS ECS, ECR etc. among other products, I quite like them.

              1. 2

                ECS isn’t that far from “bunch of virtual servers”, they just added container runners and some helpers. ECR is just docker storage. By which I’m trying to say that those technologies are kinda thin layers, whereas I feel like this article is looking at Kubernetes where the layer is thicker than any system on or under it.

              2. 1

                (I’m not here to start a flamewar ; I know that people here are not the greatest fan of Kubernetes, I’m just trying to bring my takes on this subject)

                I completely agree with the part that microservices are an easy trap that many fall into too easily. However as an ops working on Kubernetes cluster, I sometimes feel like it has its perks and I really like to use even on small scale setup. Using it forces you to use containers, which decouples Host and applications, making machine management really easy. One of the problem usually being handling applications dependencies. (I know Nix can be a solution, but most companies I know are more accustomed to containers than Nix. Containers used are kinda “mostly reproducible” which usually is - or seems - good enough.) I know we can use containers w/o Kubernetes, it just makes working with container more bearable by “filling the gaps” between just running containers and proper setup for the rest (storage / logging / backup / network access / load balancing / …) The other is decoupling storage / network / logging. Although you need to setup a new stack for this, they are handled by the “platform” which makes applications (imo) easier to develop / work with.

                I completely agree that Kubernetes is complicated however (especially bare-metal environments since you also need to handle the storage part). But having a generic, well documented, well thought out (imo) system for handling applications, instead of a custom badly made in-house system is a good thing. It definitely isn’t for all setup as it’s a complicated system, but it makes handling a lot of machines very easy to work with. Once you have enough machines I find it has a net advantage.