What do you understand about distributed systems?
Table of Contents
What do you understand about distributed systems?
A distributed system is a computing environment in which various components are spread across multiple computers (or other computing devices) on a network. These devices split up the work, coordinating their efforts to complete the job more efficiently than if a single device had been responsible for the task.
Why is distributed system important to us?
An important goal of a distributed system is to make it easy for users (and applications) to access and share remote resources. Resources can be virtually anything, but typical examples include peripherals, storage facilities, data, files, services, and networks, to name just a few.
How do you practice distributed computing?
Learning to build distributed systems
- Learn through the work of others. This is the most obvious answer, but still one worth paying attention to.
- Get hands-on. Learning the theory is great, but I find that building systems is the best way to cement knowledge.
- Go broad.
- Become an owner.
- It takes time.
What are the advantages of distributed systems?
Reliability —Most distributed systems are fault-tolerant as they can be made up of hundreds of nodes that work together. The system generally doesn’t experience any disruptions if a single machine fails. Performance —Distributed systems are extremely efficient because work loads can be broken up and sent to multiple machines.
What is the difference between distributed and idempotent systems?
With distributed systems, things can go wrong, such as connections could drop midway or requests can time out. Clients will often retry these requests. An idempotent system ensures that no matter, how many times a specific request is executed, the actual execution on this request only happens once.
What machines are part of a distributed system?
The machines that are a part of a distributed system may be computers, physical servers, virtual machines, containers, or any other node that can connect to the network, have local memory, and communicate by passing messages. There are two general ways that distributed systems function:
What is the best way to scale distributed systems?
Horizontal scaling is the most popular way to scale distributed systems, especially, as adding (virtual) machines to a cluster is often as easy as a click of a button. Vertical scaling is basically “buying a bigger/stronger machine” – either a (virtual) machine with more cores, more processing, more memory.