Distributed systems (advantages and disadvantages)

Asked

Viewed 4,350 times

4

What are the advantages and disadvantages of a distributed system?

1 answer

9


The biggest advantages:

  • Scalability - you can "easily" grow service capacity by adding new execution nodes, and this makes meeting big demands within the set time frame. Contrary to popular belief, it doesn’t get any faster. You have more trucks carrying a cargo not deliver the cargo faster, just deliver more cargo in the same time frame.
  • Resilience - if one node has problems others continue to operate and the system as a whole does not stop.

All other advantages are derived from these or unimportant.

Main disadvantages:

  • Complexity - this is one of the most difficult problems to solve in all computation, coordinating everything is complicated, expensive in every way and the chance of something going wrong in the process is great. Here I include security problems that appear, although not insoluble, are only complex.
  • Waste - it is common to use much more resources to operate in this mode since there is a coordination cost.

There are also disadvantages derived from these or possible.

Depends:

  • Cost - there are cases where the cost can be lower using one or the other. What many people don’t realize is that what seems cheap can become expensive. There are very specific situations that don’t make distributed becomes unfeasible, and that’s the good news. The problem comes when it seems that it can be done without distribution, and then the hardware will be very expensive, or even the software has to be done in very detailed terms with a lot of optimization and this can be absurdly expensive.

The opposite seems to be more frequent. People choose to distribute because of the advantages, and they don’t even care about the cost, it will cost more, but the person thinks they need it anyway. It turns out that very few problems really need the distribution, at least the real distribution, the one that needs coordination and not just simple portioning of completely independent workload (this is not distribution).

Some people may find that it doesn’t have to be complex, and it’s true, if you give up the reliability, security and other features that are usually needed. Where you can give up partially can become simpler. So the people who use the most distribution have characteristics in their problem that are too simple or they can give up some of these things. The problem is when a person has something to work out that’s not the case, but they think distribution is good for their case, and they don’t even realize the amount of money they’re getting into.

I’m talking about the traditional distribution with multiple computers, but more or less goes for any kind of distribution.

It’s about the same thing as having a person or a team working on a project. Think in terms of people. Which one do you choose? When you decide to switch to the other way?

  • Thank you very much for the answer, it will help me a lot.

  • @Maniero: In this concept of distribution and scalability we can use methodologies such as Agile and Devops?

  • 1

    @Yes, I don’t see why not. Some would say it can only be like this :) Of course it is exaggerated, but distribution needs to automate a lot, have a formal control and Devops can help well in the operation. Agile I don’t know, until yes, but orthogonally. I don’t know, Agile for me is something so much simpler than what people say around, it’s something so simple that you don’t have to think much about, you just do.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.