Introduction To Distributed Computing


What’s Distributed Computing and How Does It Work?

What Is Distributed Computing?

Image Source: Link

The practice of connecting numerous computer servers via a network into a cluster to share data and coordinate processing capacity is known as cloud applications (or distributed processing). A “distributed system” is the name given to such a cluster. Scalability (through a “scale-out design”), performance (via parallelism), robustness (by redundancy), and cost-effectiveness are all advantages of distributed computing.

Cloud technology has become highly widespread in application and database design as data volumes have ballooned and application performance expectations have risen. This is why scaling is important because as data volumes expand, the extra burden can be managed by adding more equipment to a system.

In contrast, typical “big iron” setups made mainly of good computer servers must deal with load growth by upgrading & replacing hardware.

Cloud Computing Distributed Computing

What Are Distributed Systems? Architecture Types, Key Components, and Examples | Spiceworks It Security

Image Source: Link

Distributed computing has become even more accessible because of the proliferation of cloud computing choices and suppliers. While cloud computing instances do not inherently enable cloud applications, numerous forms of distributed software may be run in the cloud to take full advantage of the available computing resources.

To be able to share, organizations formerly relied upon (DBAs) or technology providers to link computational power across the networks within and beyond data centers. Leading cloud companies are now making it easier to add computers to the cluster for increased storage capacity or performance.

Distributed computing allows for better agility when dealing with expanding workloads due to the ease and speed with which additional computing resources may be deployed. This allows for “elasticity,” where a cluster of machines may readily expand or contract in response to changing workload demands.

Key Benefits

Let's build a simple distributed computing system, for modern cloud | by Tharindu Bandara | Towards Data Science

Image Source: Link

Distributed computing allows all of the computers in a cluster to function as if they were one. While this multi-computer architecture has some complexity, it also has several significant advantages:

Performance. Through a divide-and-conquer technique, the cluster can reach high-performance levels by using parallelism, in which each device handles a portion of an overall task simultaneously.

Resilience. To ensure no point of failure, distributed computing clusters often copy or “replicate” data across all data centers. If a computer fails, copies of its data are kept elsewhere to ensure no information is lost.

Cost-effectiveness. Distributed computing often uses low-cost commodity hardware, making both initial deployments and cluster expansions relatively cost-effective.

Scalability. Scaling distributed computing clusters is simple thanks to a “scale-out architecture,” allowing bigger loads to be managed by simply adding more hardware.

Why would you want to spread a system?

Distributed computing | AP CSP (article) | Khan Academy

Image Source: Link

By necessity, systems are constantly scattered. The truth is that operating systems are a difficult topic fraught with pitfalls and landmines. Deploying, maintaining, and debugging distributed systems is a pain, so why bother?

Scaling horizontally is possible with a distributed system. Returning to our single database server example, the only method to manage increased traffic is to improve the system’s hardware. This is referred to as vertical scaling.

After a certain level, it is substantially less expensive than vertical scaling. However, this is not the primary reason for the choice.

Scalability can only bring your efficiency up to par with the latest gear. For technology enterprises with moderate to large workloads, these capabilities are insufficient.

The nicest part of scalability is that there is no limit to what you can grow — if performance decreases, add more machines, potentially indefinitely.

The ability to scale easily isn’t the only advantage of distributed systems. Fault tolerance and reduced latency are other essential considerations.

Fault Tolerance – a cluster of 10 machines spread across two data centers is more fault-tolerant than a single system. Your application would continue to function even if one of the data centers caught fire.

Low Latency – The light speed physically limits the time it takes for a data link to travel across the planet. For example, in an optic fiber connecting New York and Sydney, the shortest time shaped time (the time it takes for a request to travel back and forth) is 160ms. With distributed systems, you can have a node in each city, allowing traffic to the closest node.

However, for a dispersed system to work, the program operating on those machines must be particularly developed for running on several devices at the same time while dealing with the issues that entail. This proves to be a difficult task. Vertical scaling is great while it lasts, and after a certain point, even the best technology will be insufficient to handle sufficient traffic, not to say prohibitive to the host.

Installing more machines rather than increasing the architecture of a single machine is what horizontal scaling entails. Some important points are mentioned underneath:

  • Distributed Systems are difficult to understand.
  • They are chosen because of scale and cost considerations.
  • They are more difficult to work with.
  • The CAP Theorem entails a trade-off between consistency and availability.

Leave a Reply

Your email address will not be published. Required fields are marked *