53
Hopelessness and Confidence in Distributed Systems Design Camille Fournier, Senior Thinker and Raconteur @skamille

Hopelessness and Confidence in Distributed Systems Design

Embed Size (px)

Citation preview

Page 1: Hopelessness and Confidence in Distributed Systems Design

Hopelessness and Confidence in Distributed Systems Design Camille Fournier, Senior Thinker and

Raconteur @skamille

Page 2: Hopelessness and Confidence in Distributed Systems Design

The easiest way to scale!

Hassle-free scaling!

Easiest. Database. Ever.

Sync state in a cinch at a distributed system scale.

Real-time data

Real-time Analytics

Real-time Decisions

Page 3: Hopelessness and Confidence in Distributed Systems Design

@aphyr  

Page 4: Hopelessness and Confidence in Distributed Systems Design

Distributed Systems: Ugly, Hard, and Here to Stay

Page 5: Hopelessness and Confidence in Distributed Systems Design
Page 6: Hopelessness and Confidence in Distributed Systems Design
Page 7: Hopelessness and Confidence in Distributed Systems Design

TRADE/OFF�

Page 8: Hopelessness and Confidence in Distributed Systems Design

TRADE/OFF�

Page 9: Hopelessness and Confidence in Distributed Systems Design

Embrace Hopelessness Gain Confidence

Page 10: Hopelessness and Confidence in Distributed Systems Design
Page 11: Hopelessness and Confidence in Distributed Systems Design

A brief interlude: The goals of Distributed Systems

Page 12: Hopelessness and Confidence in Distributed Systems Design

SCALE �

Page 13: Hopelessness and Confidence in Distributed Systems Design

FAILURE TOLERANCE �

Page 14: Hopelessness and Confidence in Distributed Systems Design
Page 15: Hopelessness and Confidence in Distributed Systems Design

A DISTRIBUTED CACHE FOR RISK ANALYSIS�

Page 16: Hopelessness and Confidence in Distributed Systems Design
Page 17: Hopelessness and Confidence in Distributed Systems Design
Page 18: Hopelessness and Confidence in Distributed Systems Design

Scaling �

/�

Page 19: Hopelessness and Confidence in Distributed Systems Design

"DSM  FIGURE"  by  Mehrnazzhian  -­‐  Own  work.  Licensed  under  CC  BY-­‐SA  4.0  via  Commons  

Page 20: Hopelessness and Confidence in Distributed Systems Design

Azul

Page 21: Hopelessness and Confidence in Distributed Systems Design
Page 22: Hopelessness and Confidence in Distributed Systems Design

SYNCHRONIZATION � PERFORMANCE�/�

Page 23: Hopelessness and Confidence in Distributed Systems Design

REWRITING� MODIFICATION �/�

Page 24: Hopelessness and Confidence in Distributed Systems Design

BEST practice: TESTING

Page 25: Hopelessness and Confidence in Distributed Systems Design

GLOBAL SERVICE DISCOVERY USING ZOOKEEPER�

Page 26: Hopelessness and Confidence in Distributed Systems Design

GLOBAL service discovery system

Page 27: Hopelessness and Confidence in Distributed Systems Design

Failure Tolerance�Scaling �

/�

Page 28: Hopelessness and Confidence in Distributed Systems Design

Naïve approach: Central Coordinator!

•  Should all data be in one system? That would be easy!

•  But then…

DISTANCE� PERFOMANCE �/�

Page 29: Hopelessness and Confidence in Distributed Systems Design

•  Speed of light •  Limitations of bandwidth and latency

DISTANCE� PERFOMANCE �/�

Page 30: Hopelessness and Confidence in Distributed Systems Design

Fallacies of Distributed Computing Deutsch et al, Sun Microsystems

1.  The network is reliable. 2.  Latency is zero. 3.  Bandwidth is infinite. 4.  The network is secure. 5.  Topology doesn't change. 6.  There is one administrator. 7.  Transport cost is zero. 8.  The network is homogeneous.

Page 31: Hopelessness and Confidence in Distributed Systems Design

Wide Area Networks Add Complexity

Page 32: Hopelessness and Confidence in Distributed Systems Design

FEATURES � CONTROL�/�

Page 33: Hopelessness and Confidence in Distributed Systems Design

BEST PRACTICE: Remember that clients are part of your system

Page 34: Hopelessness and Confidence in Distributed Systems Design

A second brief interlude…

Page 35: Hopelessness and Confidence in Distributed Systems Design
Page 36: Hopelessness and Confidence in Distributed Systems Design

MICROSERVICES AT RENT THE RUNWAY�

Page 37: Hopelessness and Confidence in Distributed Systems Design

Evolution off of a monolith

Page 38: Hopelessness and Confidence in Distributed Systems Design

Scaling (systems and humans) and failure tolerance (??) �

/�

Page 39: Hopelessness and Confidence in Distributed Systems Design

COMMON UNDERSTANDING � THE PERFECT

TOOL FOR THE JOB�

/�

@coda  

Page 40: Hopelessness and Confidence in Distributed Systems Design

RATE OF CHANGE � THOROUGHNESS�/�

Page 41: Hopelessness and Confidence in Distributed Systems Design

@adrianco  

Page 42: Hopelessness and Confidence in Distributed Systems Design

BEST PRACTICE: DATA DESIGN (AGAIN!) �

Page 43: Hopelessness and Confidence in Distributed Systems Design
Page 44: Hopelessness and Confidence in Distributed Systems Design
Page 45: Hopelessness and Confidence in Distributed Systems Design
Page 46: Hopelessness and Confidence in Distributed Systems Design

BEST PRACTICE: Data Design (again!)

•  Silence comes via good design! •  You can always design poorly and have to

overcommunicate/coordinate

Page 47: Hopelessness and Confidence in Distributed Systems Design
Page 48: Hopelessness and Confidence in Distributed Systems Design

Distributed Systems: Ugly, Hard and Here to Stay

Page 49: Hopelessness and Confidence in Distributed Systems Design
Page 50: Hopelessness and Confidence in Distributed Systems Design

COMBAT HOPE AND FEAR BY UNDERSTANDING TRADE/OFFS�

Page 51: Hopelessness and Confidence in Distributed Systems Design

Hopeless and Confident

Page 52: Hopelessness and Confidence in Distributed Systems Design
Page 53: Hopelessness and Confidence in Distributed Systems Design

Thank you! Special Thanks: @randommood

@SeanTAllen @chrisk5000

@HenryR @aphyr @caitie

@pbailis (aka Littlefinger)

@giltene @MikeM6174

@tsantero

?s: @skamille