+ All Categories
Home > Documents > Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed...

Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed...

Date post: 22-Jun-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
49
Anticipating the fallacies of distributed computing using the Netflix OSS Tom Cools https://github.com/TomCools |@TCoolsIT #hystrix #archaius #eureka #zuul Content available at: https://tomcools.be/talks/brujugmeetup-fallacies-netflix-oss
Transcript
Page 1: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Anticipating the fallacies of distributed computing using the Netflix OSS

Tom Cools https://github.com/TomCools |@TCoolsIT

#hystrix #archaius #eureka #zuul

Content available at: https://tomcools.be/talks/brujugmeetup-fallacies-netflix-oss

Page 2: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite
Page 3: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite
Page 4: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite
Page 5: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Monolith to Microservices to save the souls! Microservice Envy -> Netflix

4

Page 6: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

“We need microservices”

Page 7: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite
Page 8: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

7

Page 9: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Crash and burn -> Distributed computing8

Microservices

Distributed Computing

Page 10: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

The Eight Fallacies of Distributed Computing

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. Network is homogeneous

Page 11: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Allowing resilience != Assuring resilience

Fault tolerance promiseof MicroServices

Page 12: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Info Support | Solid Innovator

Demo

Page 13: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Requirements

AsyncExecution

SLA Call limitations

FallbackMechanism

Multi-ThreadedSupport

RequestDe-duplication

Page 14: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Problem: Thread Starvation

Threadpool

Page 15: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Solution: Bulkhead Pattern

Threadpool Threadpool Threadpool

Page 16: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

15

Page 17: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

16

Page 18: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

17

Page 19: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Build it yourself? -> question audience

Page 20: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite
Page 21: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Hystrix

Latency and

Fault Tolerance Library

Page 22: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Info Support | Solid Innovator

Demo

Page 23: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite
Page 24: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Archaius

Configuration Management Library

Page 25: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Configuration Management withArchaius

Dynamic, Typed Properties

Polling Framework

Callback Mechanism

JMX MBean for access through Jconsole

Most Netflix Libraries use Archaius

Page 26: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Connection Mechanisms

Page 27: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Info Support | Solid Innovator

Demo

Page 28: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Crash and burn -> Distributed computing27

Where is *SERVICE*?!

Page 29: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Eureka

Service Registry

Page 30: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Service Discovery Using Eureka

Eureka is a REST based service

Clusterable

Metadata per Instance

Healthchecks

Page 31: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Info Support | Solid Innovator

Demo

Page 32: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

31

Page 33: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Gateway example slide

Page 34: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Zuul

Gateway Service

Page 35: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Source: http://techblog.netflix.com/2013/06/announcing-zuul-edge-service-in-cloud.html

Page 36: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Source: http://techblog.netflix.com/2013/06/announcing-zuul-edge-service-in-cloud.html

Page 37: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Zuul and Friends

Hystrix for Metrics

Eureka for Instance Discovery

Ribbon for Routing

Archaius for real-time configuration

Astyanax for filter persistence in Cassandra

Page 38: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Info Support | Solid Innovator

Demo

Page 39: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Boot-strapthe Netflix OSS

Page 40: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

39

Page 41: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

Source: https://cloud.spring.io/spring-cloud-netflix/

Page 42: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

41

Page 43: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

The Eight Fallacies of Distributed Computing

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. Network is homogeneous

Page 44: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite
Page 45: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite
Page 46: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite
Page 47: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite
Page 48: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite
Page 49: Anticipating the fallacies of distributed computing using ... · The Eight Fallacies of Distributed Computing 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite

[email protected]://github.com/TomCools


Recommended