netflix oss in der praxis - jug saxony day...rxjava ist eine umsetzung von rx.net auf basis der jvm...

49
Senacor Technologies AG Netflix OSS in der Praxis Dr. Michael Menzel, Senacor Technologies AG JUG Saxony Day 2016

Upload: others

Post on 21-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Netflix OSS in der Praxis

Dr. Michael Menzel, Senacor Technologies AG

JUG Saxony Day 2016

Page 2: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Digitalisierung

Netflix OSS in der Praxis, JUG Saxony Day 2016 2

Page 3: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG 3

DIGITALISIERUNG IM BANKENUMFELD

Blue Chips FinTecs

Bank

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 4: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG 4

DIGITALISIERUNG IM BANKENUMFELD

Digitalisierung ändert die Kundenerwartung

4 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 5: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG 5

DIGITALISIERUNG IM BANKENUMFELD

Digitalisierung ändert die Kundenerwartung

5 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 6: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG 6

DIGITALISIERUNG IM BANKENUMFELD

Digitalisierung ändert die Kundenerwartung

6 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 7: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG 7

DIGITALISIERUNG IM BANKENUMFELD

Digitalisierung ändert die Kundenerwartung

7 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 8: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

DIGITALISIERUNG IM BANKENUMFELD

8

Geschwindigkeit

Startup- fähigkeit

Agilität

Kurze Releasezyklen

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 9: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

STATUS-QUO: MULTI-KANAL-ARCHITEKTUR

9

Fro

nte

nd

Fro

nte

nd

Fro

nte

nd

Fro

nte

nd

Fro

nte

nd

Fro

nte

nd

Fro

nte

nd

Fro

nte

nd

Fro

nte

nd

Fro

nte

nd

Middleware Application

Service Service …

Middleware Application

Service Service …

Backend

Backend

Backend

Backend

Backend

Backend

Backend

Backend

Backend

Backend

Backend

Backend

Backend

Fro

nte

nd

Fro

nte

nd

Fro

nte

nd

Fro

nte

nd

An

ford

eru

ng

en

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 10: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

6 Monoliths.

600 Services. 25 Clients. 45 Backends. Gewachsene Codebasis seit 1995.

(Erinnert sich jemand an J2EE 1.2?)

10

Page 11: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Was nun?

11 11 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 12: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

HANDLUNGSBEDARFE

12 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 13: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

HANDLUNGSBEDARFE

13 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 14: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

HANDLUNGSBEDARFE

14 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 15: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

HANDLUNGSBEDARFE

15 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 16: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

E2E-commitment durch Vertical-Feature-Teams

ARCHITEKTUR ANPASSUNG

16

Loan Team

UI

Service

Database

Ops

Savings Team

UI

Service

Database

Ops

Trading Team

UI

Service

Database

Ops

Vertical Feature Teams Organisation führt zu

Architektur Produkte statt Projekte

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 17: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

MICROSERVICE-ARCHITEKTUR

17

Web Frontend Clients

Services Layer

SAP … Backend Systems

Mic

roserv

ice

Mic

roserv

ice

Mic

roserv

ice

-> Umsetzung der Services auf Basis von Spring Boot

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 18: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

MICROSERVICE-ARCHITEKTUR

Routing und Load-Balancing

Service Discovery

Externe Konfiguration

Service-Komposition

Resilience

Logging, Monitoring und Security

18 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 19: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

ROUTING UND LOAD-BALANCING

19

Web Frontend Clients

Services Layer M

icro

serv

ice

Mic

roserv

ice

Mic

roserv

ice

Adresse2:Port2

Adresse1:Port1

Serviceverfügbarkeit unter einheitlicher Domäne -> Reverse Proxy

Technische und fachliche Entkopplung durch Versionierung

http://<domain>:<port>/bank-accounts/v1.0/

CORS ?

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 20: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

ROUTING UND LOAD-BALANCING

20

Web Frontend Clients

Services Layer M

icro

serv

ice

Mic

roserv

ice

Mic

roserv

ice

ZUUL Reverse Proxy and Load Balancer

Proxy

Netflix OSS in der Praxis, JUG Saxony Day 2016

Zuul: Statische Routen-Konfiguration

zuul: routes: bankaccounts: path: /bank-accounts/v1.0/** url: http://Adresse1:Port1

Page 21: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

ROUTING UND LOAD-BALANCING

21

Load-balancer und Fehlertoleranz

zuul: routes: bankAccounts: path: /bank-accounts/v1.0/** serviceId: bankAccounts bankAccounts: ribbon: listOfServers: Adresse1:Port1, Adresse2:Port2

Ribbon: Client-side Load-Balancer Hystrix: Circuit-Breaker Bibliothek zur Umsetzung von Fehlertoleranz

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 22: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

BLAUPAUSE MICROSERVICE-ARCHITEKTUR

Routing und Load-Balancing

Service Discovery

Externe Konfiguration

Service-Komposition

Resilience

Logging, Monitoring und Security

22 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 23: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

ZUUL Reverse Proxy and Load Balancer

SERVICE DISCOVERY

23

Web Frontend Clients

Services Layer Eure

ka

Serv

ice R

egis

try

Proxy

bank-a

ccounts

: 1.0

.1

bank-a

ccounts

: 2.0

.0

bank-a

ccounts

: 1.0

.1

Service-Registrierung beim Start-Up

Heartbeat-Mechanismus

Master/Slave Registry betrieb

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 24: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

SERVICE DISCOVERY

24

ZUUL-Konfiguration mit Service-Registry

zuul: routes: bankAccounts: path: /bank-accounts/v1.0/** serviceId: bankAccounts eureka: client: serviceUrl: defaultZone: <URL Registry>

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 25: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Service-Aufrufe mit Feign

Einfache Erzeugung von Rest-Clients mit Eureka-Anbindung

Definition über Interface und Annotationen

Aktivierung von Feign-Clients: @EnableFeignClients

@FeignClient("users-service") interface UserClient { @RequestMapping(method = RequestMethod.GET, value = "/user") User getUser(); }

SERVICE DISCOVERY

25 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 26: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

BLAUPAUSE MICROSERVICE-ARCHITEKTUR

Routing und Load-Balancing

Service Discovery

Externe Konfiguration

Service-Komposition

Resilience

Logging, Monitoring und Security

26 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 27: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

EXTERNE KONFIGURATION

27

Web Frontend Clients

Services Layer M

icro

serv

ice

Mic

roserv

ice

Mic

roserv

ice

Configura

tion

Serv

er

ZUUL Reverse Proxy and Load Balancer

Eure

ka

Serv

ice R

egis

try

Proxy

Config-Server

Aktivierung über @EnableConfigServer

GIT-Konfiguration über spring.cloud.configrepo.server.git.uri = <uri>

Config-Client

Aktivierung über

cloud: config: enabled: true uri: <url>

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 28: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

EXTERNE KONFIGURATION

28

Web Frontend Clients

Services Layer M

icro

serv

ice

Mic

roserv

ice

Mic

roserv

ice

Configura

tion

Serv

er

ZUUL Reverse Proxy and Load Balancer

Eure

ka

Ser

vice

Reg

istr

y

Proxy

Config-Client

Dynamische Properties über @RefreshScope

Aktualisierung über /refresh

Optional: Push über Message Bus

PUSH Beispiele dynamische Parameter

Feature Toggles

Endpunkt-Adressen

Fachliche Parameter

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 29: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Archaius:

Framework zum Zugriff auf Properties

Basis ist Apache Commons

Unterschiedliche Quellen: Properties-Dateien, URLs, Datenbanken

Typsicherer Zugriff

Callbacks bei Änderung

EXTERNE KONFIGURATION

29 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 30: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

BLAUPAUSE MICROSERVICE-ARCHITEKTUR

Routing und Load-Balancing

Service Discovery

Externe Konfiguration

Service-Komposition

Resilience

Logging, Monitoring und Security

30 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 31: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Clientseitige Servicekompositionen führen zu Kommunikationsoverhead

SERVICE COMPOSITION

Netflix OSS in der Praxis, JUG Saxony Day 2016

100 ms

Browser

200 ms 300 ms 400 ms 500 ms 600 ms

Services

31

Server Request Latency Network Latency

Page 32: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Clientseitige Servicekompositionen führen zu Kommunikationsoverhead

SERVICE COMPOSITION

Netflix OSS in der Praxis, JUG Saxony Day 2016

Browser Services

32

Net

flix

AP

I

Server Request Latency Network Latency

7 Netzwerkaufrufe zu einem zusammengefasst

Page 33: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Wie lässt sich die API gestallten?

SERVICE COMPOSITION

Netflix OSS in der Praxis, JUG Saxony Day 2016

Einzelner Datensatz

Mehrfache Datensätze

Synchron ObjektIterable

Stream

Asynchron

Callback

Future

CompletableFuture

Observable

33

Page 34: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

SERVICE COMPOSITION MIT RXJAVA

Netflix OSS in der Praxis, JUG Saxony Day 2016

The Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators

https://rx.codeplex.com

34

Page 35: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

ReactiveX basiert auf dem Observable-Pattern

SERVICE COMPOSITION MIT RXJAVA

Netflix OSS in der Praxis, JUG Saxony Day 2016

Observable Observer register

onNext(T) onError(Throwable t) onCompleted()

35

Page 36: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM

SERVICE COMPOSITION MIT RXJAVA

Netflix OSS in der Praxis, JUG Saxony Day 2016

LINQ, .NET Framework 3.5 Spracherweiterung zur Abfrage und Transformation von Daten 19.11.2007

RxJS, Rx for JavaScript 17.03.2010

Rx.NET, .NET Framework 4 Rx = Observables + LINQ + Schedulers Asynchrone, Push-basierte Datenverarbeitung 17.11.2009

RxJava, Reactive Extensions for the JVM, started by Netflix02.2013

36

Page 37: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Events in Streams können gefiltert und transformiert werden

SERVICE COMPOSITION MIT RXJAVA

Netflix OSS in der Praxis, JUG Saxony Day 2016 37

Page 38: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

ZUUL Reverse Proxy and Load Balancer

SERVICE COMPOSITION MIT RXJAVA

38

Web Frontend Clients

Services Layer Eure

ka

Serv

ice R

egis

try

Proxy

SAP … Backend Systems

Mic

roserv

ice

Mic

roserv

ice

Mic

roserv

ice

Configura

tion

Serv

er

Core

Serv

ice

Core

Serv

ice

Rest Endpoint

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 39: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

BLAUPAUSE MICROSERVICE-ARCHITEKTUR

Routing und Load-Balancing

Service Discovery

Externe Konfiguration

Service-Komposition

Resilience

Logging, Monitoring und Security

39 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 40: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Resilient software design

Resilience: The system stays responsive in the face of

failure with a graceful degradation of service if required

RESILIENCE, ROBUSTNESS AND SCALABILITY

Insulation

Redundancy

Fallback

Loose coupling

40 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 41: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

RESILIENCE, ROBUSTNESS AND SCALABILITY

Circuit Breaker Die Sicherung unterbricht den Stromkreis

anstatt eines Hausbrandes – seit 1879

41 41 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 42: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Synchronen, blockierende Systeme können die Verfügbarkeit von Diensten einschränken

RESILIENCE, ROBUSTNESS AND SCALABILITY

42

Microservice Backend

Req

uests

Tim

e o

ut

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 43: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Hystrix isoliert den Backend-Zugriffe

RESILIENCE, ROBUSTNESS AND SCALABILITY

43

Microservice

x x

Backend

Fail f

ast

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 44: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

ZUUL Reverse Proxy and Load Balancer

ARCHITEKTUR

44

Web Frontend Clients

Services Layer Eure

ka

Serv

ice R

egis

try

Proxy

SAP … Backend Systems

Mic

roserv

ice

Mic

roserv

ice

Mic

roserv

ice

Configura

tion

Serv

er

Core

Serv

ice

Core

Serv

ice

Process Service

Hystrix

Hystrix

Hystrix Hystrix-Integration

Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 45: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Fazit

45 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 46: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

ZUUL Reverse Proxy and Load Balancer

FAZIT

46

Web Frontend Clients

Services Layer

Proxy

SAP … Backend Systems

Mic

roserv

ice

Identity

Pro

vid

er

Mic

roserv

ice

Configura

tion

Serv

er

Core

Serv

ice

Core

Serv

ice

Process Service

Netflix OSS in der Praxis, JUG Saxony Day 2016

Loggin

g u

nd

Monitoring

Eure

ka

Serv

ice R

egis

try

Page 47: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

FAZIT

Zuerst planen, …

47 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 48: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

FAZIT

sonst …

48 Netflix OSS in der Praxis, JUG Saxony Day 2016

Page 49: Netflix OSS in der Praxis - JUG Saxony Day...RxJava ist eine Umsetzung von Rx.Net auf Basis der JVM SERVICE COMPOSITION MIT RXJAVA Netflix OSS in der Praxis, JUG Saxony Day 2016 LINQ,

Senacor Technologies AG

Netflix OSS in der Praxis

Dr. Michael Menzel, Senacor Technologies AG

JUG Saxony Day 2016