Slide 1

Slide 1 text

Jaeger the new kid on the block

Slide 2

Slide 2 text

Yana Software Entwicklerin Hauptsächlich Backend bei Hermes seit 3,5 Jahren Über mich

Slide 3

Slide 3 text

Über Hermes Evolution unserer Services Monitoring & Logging Jaeger Fragen Überblick

Slide 4

Slide 4 text

Inhalt 5 Über Hermes

Slide 5

Slide 5 text

Hermes Germany ist der zweitgrößte Paket-Logistiker Deutschlands. Gegründet 1972. Wir stellen derzeit etwa 400 Millionen Pakete pro Jahr zu. Neben Privatkunden sind unsere Hauptkunden Otto, Amazon, H&M, Zalando.

Slide 6

Slide 6 text

Wir lieben Weihnachten!

Slide 7

Slide 7 text

Inhalt 8 Evolution unserer Services

Slide 8

Slide 8 text

Monolithen Ein Service kann alles. Es war einmal bei Hermes

Slide 9

Slide 9 text

Der Anfang der Cloud-Philosophie Nichts für Monolithen Kleinere Services → REST Services → Besser testbar → Unabhängig erweiterbar → Unabhängig deploybar → Weniger Abstimmungen → Mehr Freiheit für die Teams

Slide 10

Slide 10 text

Der Anfang der Cloud-Philosophie Ab nun kleinere Anwendungen! Ok…

Slide 11

Slide 11 text

http://www.peeweepiglets.com/wp-content/uploads/2015/07/mini-piglets.jpg … aus einem Monolithen machen wir 5 kleinere Services

Slide 12

Slide 12 text

Monitoring mit Grafana/Prometheus Logging mit Kibana Monitoring von einzelnen Services

Slide 13

Slide 13 text

Unser erster Grafana Graph

Slide 14

Slide 14 text

Weitere Grafana-Dashboards

Slide 15

Slide 15 text

Grafana-Boards für alle!

Slide 16

Slide 16 text

Kibana für alle!

Slide 17

Slide 17 text

… mehr über die Microservices Die Frameworks werden interessanter: mehr Services mehr Interaktionen untereinander Wir lernen… • Asynchrone Verarbeitung • Parallele Verarbeitung • Reactor … • geplant: Kafka

Slide 18

Slide 18 text

Shibuya - by Joshua Mellin, CNN

Slide 19

Slide 19 text

Sind unsere einzelnen tollen Services alle zusammen langsamer als der Monolith mal war? Und dann? Cory Schadt, https://unsplash.com/photos/Hhcn6yy3Uo8

Slide 20

Slide 20 text

Wie monitort man den verteilten Datenfluss? Und den Ablauf zwischen Microservices? Kann man sich das Verhalten von Services bei den Aufrufen anschauen? Können wir Performance optimieren? Wie sind die Latenzzeiten? Wie sind die Zeiten bei den Lasttests? Haben wir Probleme mit der Infrastruktur/Knoten? Wie sind die Abläufe in den einzelnen Requests? Und noch?

Slide 21

Slide 21 text

Inhalt 22 Ein guter Zeitpunkt für Tracing

Slide 22

Slide 22 text

23 Tracing

Slide 23

Slide 23 text

Vendor-neutral APIs and instrumentation for distributed tracing OpenTracing Project

Slide 24

Slide 24 text

Open Source (CNCF incubating project) End-to-end distributed tracing OpenTracing kompatibles Datenmodell und Bibliotheken Sehr kleiner Overhead (< 1% Leistungseinbuße) Unterschiedliche DBs als Storage Wird gepflegt und weiterentwickelt Jaeger Tracing

Slide 25

Slide 25 text

Einfach zu integrieren Spring Boot Spring Cloud Sleuth Spring RestTemplate Reactor RxJava

Slide 26

Slide 26 text

Filtern nach Services, Tags usw. Vergleich von Requests Dependencies Graph Features

Slide 27

Slide 27 text

Jaeger-Komponenten https://www.jaegertracing.io/docs/1.9/architecture/#components

Slide 28

Slide 28 text

Jaeger ist schnell einsatzfähig Jaeger (z.B. in der Cloud, lokal) Docker-Image: z.B. jaegertracing/all-in-one Sleuth + Jaeger/ Zipkin Dependency im Projekt Properties im Projekt: spring.zipkin.baseUrl: http://jaeger-url:9411/ spring.sleuth.sampler.percentage: 1.0

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

Filtern

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

Nützliche Tags

Slide 33

Slide 33 text

Jaeger & Kibana

Slide 34

Slide 34 text

SpanId und TraceId werden automatisch mit in den ELK übertragen Jaeger und Kibana lassen sich so gemeinsam verwenden

Slide 35

Slide 35 text

Jaeger & Kibana

Slide 36

Slide 36 text

Zeiten bei Last-Tests

Slide 37

Slide 37 text

Latenz-Zeiten

Slide 38

Slide 38 text

Patterns

Slide 39

Slide 39 text

Patterns

Slide 40

Slide 40 text

Zu wenige Informationen: Verdächtig: Latenz, Delay: Sequentiell: Parallel: Locks: time time time time time time

Slide 41

Slide 41 text

Persistente DB für Jaeger Event driven Architektur mit Kafka Es macht erst dann richtig Spaß, wenn alle Microservices Jaeger ansprechen Ausblick für Hermes

Slide 42

Slide 42 text

Jaeger für alle!

Slide 43

Slide 43 text

No content