Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jaeger – the new kid on the block

Jaeger – the new kid on the block

Im Rahmen unserer Cloud-Migration durchleben unsere Anwendungen eine kontinuierliche Evolution und die großen Services werden immer mehr in kleinere Bestandteile zerlegt. Hierbei entstehen nicht nur klassische Microservices, oft handelt es sich um eine undogmatische modulare Zerlegung. Das Resultat dieses Vorgehens ist, dass die Logik innerhalb der einzelnen Module einfacher wird, damit werden unteranderem die Testbarkeit und die Nachvollziehbarkeit erhöht. Die Einführung von Grafana mit Prometheus und ELK-Stack, unterstützt unsere Teams dabei die einzelnen Anwendungen zu überwachen, die Veränderungen zu verfolgen und ggf. zeitnah zu reagieren.
Die Frage ist nun, wie gewinnt man den Überblick über die verteilte Architektur von kleinen Modulen, die mit einander agieren? Die Kommunikation zwischen den einzelnen Services, deren Performance und die Latenzzeiten sind nur einige Beispiele, die von Interesse sind.
Die nächsthöhere Ebene für Monitoring ist das Zusammenspiel der einzelnen Units der verteilten Servicearchitektur im Blick zu behalten. Dies ist insbesondere spannend bei den Services, deren Laufzeiten von Funktionsaufrufen kritisch sind. Hierzu nutzen wir Jaeger als Tracing-Tool, das einige Eigenschaften von Monitoring- und Logging-Tools kombiniert und uns genau diesen Überblick liefert, den wir für die Analyse benötigen.

Hermes Germany GmbH

November 07, 2019
Tweet

More Decks by Hermes Germany GmbH

Other Decks in Technology

Transcript

  1. 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.
  2. 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
  3. … mehr über die Microservices Die Frameworks werden interessanter: mehr

    Services mehr Interaktionen untereinander Wir lernen… • Asynchrone Verarbeitung • Parallele Verarbeitung • Reactor … • geplant: Kafka
  4. Sind unsere einzelnen tollen Services alle zusammen langsamer als der

    Monolith mal war? Und dann? Cory Schadt, https://unsplash.com/photos/Hhcn6yy3Uo8
  5. 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?
  6. 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
  7. 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
  8. SpanId und TraceId werden automatisch mit in den ELK übertragen

    Jaeger und Kibana lassen sich so gemeinsam verwenden
  9. 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