SlideShare a Scribd company logo
Distributed Systems and
why you should care!
Ahmed Soliman
â€«Ű§Ù†â€Źâ€«Ù…â€Źâ€«ÙŠâ€Źâ€«ŰłÙ„â€Źâ€«ŰŻâ€Źâ€«Ű­Ù…â€Źâ€«ŰŁâ€Ź
Intro to distributed systems
Why the hassle?
Wrestling With Capacity
Constraints
Cannot add more (CPU Cores, RAM, Disk, Network
Bandwidth, etc.) to a single box
Wrestling With Availability
Constraints
Dealing with failures of (Network, Power, Hard-drives,
Faulty Ram, etc.)
Wrestling With Latency/
Performance Constraints
Not the entire world is wired with Optical Fibers.
Sometimes even the speed of light is not fast
enough*
it takes 39ms for light to reach from Cairo to Dallas.
Welcome to Distributed
Systems
The world is a mesh of very large and very small computers
with a utterly sophisticated networking medium in between
it’s everywhere!
The web is currently the world’s largest distributed
system, mobile is getting even larger, wearables will
make the web-scale look like ant to an elephant!
Computing was never that
sophisticated
and it’s getting even more sophisticated every single
day.
Some Challenges
‱ Heterogeneity and Abstractions
‱ Transparency and Abstractions
‱ Concurrency and Coordination
‱ Scalability
‱ Resilience to Failures
‱ Security
Intro to distributed systems
Heterogeneity
‱ Different systems will be written in different
languages, running on different operating systems,
network characteristics, computer architectures,
etc.
‱ Clear boundaries and a set of abstractions must be
deïŹned. Think of Micro-service/SOA architecture,
RESTful APIs, Thrift/Protobuf/Avro/msgpack/etc. for
efïŹcient binary message serialization across
systems
Heterogeneity and
Abstractions
‱ Abstractions through interfaces exposed through the network
(think of sockets as low-level abstraction)
‱ Higher-level abstractions of data formats (json/thrift/protobuf/
avro/etc.), protocols like HTTP, XMLRPC, Thrift-RPC,
‱ Effective separation offers great ïŹ‚exibility for large-scale
development teams and allows the use of the right-tool for the
right-job
‱ Generates a new set of challenges, think of protocols and
versioning, cascading failures that are hard to trace,
congestion/malfunction traceability is order of magnitude higher
Transparency
‱ Systems need to know how to reach other systems
‱ Central Registry, discovery protocols, gossip protocols
‱ Components living in the same process vs. inter-process
communication (mobility)
‱ shared-memory or IPC/Unix Sockets/TCP Sockets/etc?
‱ Higher-level abstraction means that there is no conceptual
difference between scaling vertically on multicore or horizontally on
the cluster
‱ Think of failures, restarts, commute of components and their effect
on consumers.
Concurrency
‱ a multi-user system means that users will be competing
against system resources.
‱ Don’t confuse concurrency and parallelism.
‱ A tricky business, if you think that threading is the best
way to handle concurrency you will pay for the cost for
that
a lot!
‱ heisenbugsℱ everywhere
‱ Please welcome, race conditions, dead-locks, locking,
barriers, compilers reordering, compiler optimizations, etc.
Concurrency
‱ Mutable shared state is the root of most evilℱ
‱ Low-level abstractions (threading)
‱ Higher-level abstractions in programming
languages (co-routines, async in C#, etc.)
‱ Actor Model (Erlang OTP, Scala/Java Akka, etc.)
‱ Concurrent but not Parallel using Async IO
(NodeJS)
Coordination
‱ Low-level coordination primitives from the operating
system like mutex, readwrite-locks,
reentrant-locks, flock, etc.
‱ across-systems coordination is sometimes needed
‱ central registry with atomic semantics
‱ consensus protocols (paxos, raft, etc.)
Coordination
‱ Classical master-writer, slave-reader clustering is
an easy ïŹx but proven to scale poorly in write-
intensive environments (e.g., social networks)
‱ Sharding/Partitioning may help in avoiding
coordination altogether, still rebalancing, healing is
extra work needed.
‱ CRDT (ConïŹ‚ict-free Data Types) maybe one
potential solution too.
Scalability
‱ Horizontal Scalability vs Vertical Scalability
‱ Optimization of per-node capacity (req/s) is a third
dimension of your scalability design plan
‱ Single Point of Failures
‱ Performance Bottlenecks
‱ Commutative Operations
‱ Consistency Levels (Strong, Weak, Eventual)
Resilience
‱ Ability to sustain high-loads without crashing
‱ Ability to recover from partial crashes
‱ Failures should be properly reported to the
operation team and gracefully delivered to the
client
‱ Avoidance of cascading failures as possible
Security
‱ Authentication and authorization across different
systems
‱ Central authorization vs. state-less authorization
‱ data conïŹdentiality across different systems
‱ JWT (Json Web Tokens) as one solution to
decentralized authenticity veriïŹcation
In Short

‱ Distributed Systems are much more fun than you
think
‱ It’s a mixture between science and art
‱ It’s about putting the right tradeoffs in place
‱ It has an immediate business impact, be careful.
Thank You!

More Related Content

PPT
Distributed Processing
PPTX
Lec 6 (distributed processing )
PDF
Design issues of dos
PPT
Distributed Systems
 
PPTX
Introduction to Distributed System
PPTX
Distributed Systems Real Life Applications
ODP
Distributed Computing
PPTX
Operating system 09 distributed operating system
Distributed Processing
Lec 6 (distributed processing )
Design issues of dos
Distributed Systems
 
Introduction to Distributed System
Distributed Systems Real Life Applications
Distributed Computing
Operating system 09 distributed operating system

What's hot (20)

PPTX
distributed Computing system model
PPTX
Distributed computing
PPTX
Distributed Computing
PPT
Distributed computing
PPTX
Distributed and clustered systems
PPTX
Operating system 20 threads
PPTX
Cluster computing
PDF
Distributed Operating System_4
PDF
istributed system
PPTX
Distributed computing
PDF
Lightning talk: highly scalable databases and the PACELC theorem
PPT
Distributed Systems
PPT
Intro (Distributed computing)
PPT
Distributed Systems
PPTX
Distribution transparency and Distributed transaction
PPTX
Distributed Computing system
DOC
Centralized vs distrbution system
 
PDF
Back-End application for Distributed systems
PPTX
Distributed Computing ppt
distributed Computing system model
Distributed computing
Distributed Computing
Distributed computing
Distributed and clustered systems
Operating system 20 threads
Cluster computing
Distributed Operating System_4
istributed system
Distributed computing
Lightning talk: highly scalable databases and the PACELC theorem
Distributed Systems
Intro (Distributed computing)
Distributed Systems
Distribution transparency and Distributed transaction
Distributed Computing system
Centralized vs distrbution system
 
Back-End application for Distributed systems
Distributed Computing ppt
Ad

Viewers also liked (19)

KEY
NoSQL Introduction
PPT
ćŠ‚äœ•æ‘˜äž‹æ‡‰ćŸ”è€…çš„éąć…·
PDF
Mediafolder Valdresmagasinet PÄSken 2010
 
PDF
Ű§Ù„ŰčŰšŰ§Ù‚Ű±Ű© ÙŠŰ”Ù†Űčون Ù„Ű§ ÙŠÙˆÙ„ŰŻÙˆÙ†
PDF
Introduction to Cloud Computing
PPT
çžŸæ•ˆçźĄç†ç‚ș䜕什äșș抓狂
PDF
Introduction to Really.io
PDF
Lego bricks of cloud applications
PDF
Geniuses are made not born 2
PDF
Castrum Novum Emisjon V2 04
 
PDF
çžŸæ•ˆçźĄç† ≠ 考栞
PPTX
English immersion at CIL Sobradinho
 
PPTX
Latin american security.pptx real
PPT
What Is Economics
PDF
Geniuses are made, not born
KEY
Design Patterns Course
PPT
Maggi marketing mix
PDF
Fb Salgs Presentasjon Qpongpdf
 
PDF
A Journey to Reactive Function Programming
NoSQL Introduction
ćŠ‚äœ•æ‘˜äž‹æ‡‰ćŸ”è€…çš„éąć…·
Mediafolder Valdresmagasinet PÄSken 2010
 
Ű§Ù„ŰčŰšŰ§Ù‚Ű±Ű© ÙŠŰ”Ù†Űčون Ù„Ű§ ÙŠÙˆÙ„ŰŻÙˆÙ†
Introduction to Cloud Computing
çžŸæ•ˆçźĄç†ç‚ș䜕什äșș抓狂
Introduction to Really.io
Lego bricks of cloud applications
Geniuses are made not born 2
Castrum Novum Emisjon V2 04
 
çžŸæ•ˆçźĄç† ≠ 考栞
English immersion at CIL Sobradinho
 
Latin american security.pptx real
What Is Economics
Geniuses are made, not born
Design Patterns Course
Maggi marketing mix
Fb Salgs Presentasjon Qpongpdf
 
A Journey to Reactive Function Programming
Ad

Similar to Intro to distributed systems (20)

PPTX
Distributed systems and scalability rules
PPTX
Introduction
PPTX
Overview of Distributed Systems
PPTX
Apos week 1 4
PPT
Fundamentals Of Transaction Systems - Part 1: Causality banishes Acausality ...
PPTX
Cluster computing
PPT
4.Hardware concepts, Software Concept & Middleware.ppt
PPT
An Introduction to Cloud Computing and Lates Developments.ppt
PPT
Intorduction Distributed and Parallel Computing.ppt
PPT
Lecture 3 - Types of Distributed Systems.ppt
PDF
Sharing-akka-pub
ODP
Everything you always wanted to know about Distributed databases, at devoxx l...
PPT
chap-0 .ppt
PPT
chapter 1 Introduction Distributed System
PDF
What's inside the black box? Using ML to tune and manage Kafka. (Matthew Stum...
PPTX
Chapter Introductionn to distributed system .pptx
PDF
CCUnit1.pdf
PPT
Unit 2(oss) (1)
PDF
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
PDF
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Distributed systems and scalability rules
Introduction
Overview of Distributed Systems
Apos week 1 4
Fundamentals Of Transaction Systems - Part 1: Causality banishes Acausality ...
Cluster computing
4.Hardware concepts, Software Concept & Middleware.ppt
An Introduction to Cloud Computing and Lates Developments.ppt
Intorduction Distributed and Parallel Computing.ppt
Lecture 3 - Types of Distributed Systems.ppt
Sharing-akka-pub
Everything you always wanted to know about Distributed databases, at devoxx l...
chap-0 .ppt
chapter 1 Introduction Distributed System
What's inside the black box? Using ML to tune and manage Kafka. (Matthew Stum...
Chapter Introductionn to distributed system .pptx
CCUnit1.pdf
Unit 2(oss) (1)
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn

Recently uploaded (20)

PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
top salesforce developer skills in 2025.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
System and Network Administration Chapter 2
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
AI in Product Development-omnex systems
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
medical staffing services at VALiNTRY
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
L1 - Introduction to python Backend.pptx
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
Adobe Illustrator 28.6 Crack My Vision of Vector Design
top salesforce developer skills in 2025.pdf
Understanding Forklifts - TECH EHS Solution
Softaken Excel to vCard Converter Software.pdf
System and Network Administration Chapter 2
Odoo Companies in India – Driving Business Transformation.pdf
AI in Product Development-omnex systems
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PTS Company Brochure 2025 (1).pdf.......
medical staffing services at VALiNTRY
Navsoft: AI-Powered Business Solutions & Custom Software Development
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Design an Analysis of Algorithms I-SECS-1021-03
L1 - Introduction to python Backend.pptx
How to Migrate SBCGlobal Email to Yahoo Easily

Intro to distributed systems

  • 1. Distributed Systems and why you should care! Ahmed Soliman â€«Ű§Ù†â€Źâ€«Ù…â€Źâ€«ÙŠâ€Źâ€«ŰłÙ„â€Źâ€«ŰŻâ€Źâ€«Ű­Ù…â€Źâ€«ŰŁâ€Ź
  • 4. Wrestling With Capacity Constraints Cannot add more (CPU Cores, RAM, Disk, Network Bandwidth, etc.) to a single box
  • 5. Wrestling With Availability Constraints Dealing with failures of (Network, Power, Hard-drives, Faulty Ram, etc.)
  • 6. Wrestling With Latency/ Performance Constraints Not the entire world is wired with Optical Fibers. Sometimes even the speed of light is not fast enough* it takes 39ms for light to reach from Cairo to Dallas.
  • 7. Welcome to Distributed Systems The world is a mesh of very large and very small computers with a utterly sophisticated networking medium in between
  • 8. it’s everywhere! The web is currently the world’s largest distributed system, mobile is getting even larger, wearables will make the web-scale look like ant to an elephant!
  • 9. Computing was never that sophisticated and it’s getting even more sophisticated every single day.
  • 10. Some Challenges ‱ Heterogeneity and Abstractions ‱ Transparency and Abstractions ‱ Concurrency and Coordination ‱ Scalability ‱ Resilience to Failures ‱ Security
  • 12. Heterogeneity ‱ Different systems will be written in different languages, running on different operating systems, network characteristics, computer architectures, etc. ‱ Clear boundaries and a set of abstractions must be deïŹned. Think of Micro-service/SOA architecture, RESTful APIs, Thrift/Protobuf/Avro/msgpack/etc. for efïŹcient binary message serialization across systems
  • 13. Heterogeneity and Abstractions ‱ Abstractions through interfaces exposed through the network (think of sockets as low-level abstraction) ‱ Higher-level abstractions of data formats (json/thrift/protobuf/ avro/etc.), protocols like HTTP, XMLRPC, Thrift-RPC, ‱ Effective separation offers great ïŹ‚exibility for large-scale development teams and allows the use of the right-tool for the right-job ‱ Generates a new set of challenges, think of protocols and versioning, cascading failures that are hard to trace, congestion/malfunction traceability is order of magnitude higher
  • 14. Transparency ‱ Systems need to know how to reach other systems ‱ Central Registry, discovery protocols, gossip protocols ‱ Components living in the same process vs. inter-process communication (mobility) ‱ shared-memory or IPC/Unix Sockets/TCP Sockets/etc? ‱ Higher-level abstraction means that there is no conceptual difference between scaling vertically on multicore or horizontally on the cluster ‱ Think of failures, restarts, commute of components and their effect on consumers.
  • 15. Concurrency ‱ a multi-user system means that users will be competing against system resources. ‱ Don’t confuse concurrency and parallelism. ‱ A tricky business, if you think that threading is the best way to handle concurrency you will pay for the cost for that
a lot! ‱ heisenbugsℱ everywhere ‱ Please welcome, race conditions, dead-locks, locking, barriers, compilers reordering, compiler optimizations, etc.
  • 16. Concurrency ‱ Mutable shared state is the root of most evilℱ ‱ Low-level abstractions (threading) ‱ Higher-level abstractions in programming languages (co-routines, async in C#, etc.) ‱ Actor Model (Erlang OTP, Scala/Java Akka, etc.) ‱ Concurrent but not Parallel using Async IO (NodeJS)
  • 17. Coordination ‱ Low-level coordination primitives from the operating system like mutex, readwrite-locks, reentrant-locks, flock, etc. ‱ across-systems coordination is sometimes needed ‱ central registry with atomic semantics ‱ consensus protocols (paxos, raft, etc.)
  • 18. Coordination ‱ Classical master-writer, slave-reader clustering is an easy ïŹx but proven to scale poorly in write- intensive environments (e.g., social networks) ‱ Sharding/Partitioning may help in avoiding coordination altogether, still rebalancing, healing is extra work needed. ‱ CRDT (ConïŹ‚ict-free Data Types) maybe one potential solution too.
  • 19. Scalability ‱ Horizontal Scalability vs Vertical Scalability ‱ Optimization of per-node capacity (req/s) is a third dimension of your scalability design plan ‱ Single Point of Failures ‱ Performance Bottlenecks ‱ Commutative Operations ‱ Consistency Levels (Strong, Weak, Eventual)
  • 20. Resilience ‱ Ability to sustain high-loads without crashing ‱ Ability to recover from partial crashes ‱ Failures should be properly reported to the operation team and gracefully delivered to the client ‱ Avoidance of cascading failures as possible
  • 21. Security ‱ Authentication and authorization across different systems ‱ Central authorization vs. state-less authorization ‱ data conïŹdentiality across different systems ‱ JWT (Json Web Tokens) as one solution to decentralized authenticity veriïŹcation
  • 22. In Short
 ‱ Distributed Systems are much more fun than you think ‱ It’s a mixture between science and art ‱ It’s about putting the right tradeoffs in place ‱ It has an immediate business impact, be careful.