Unser Vortrag von der OOP München 2020
Mit Kafka auf dem Weg zur Entkopplung
Eine hohe Kopplung zwischen Systemen führt zu großen Problemen in der Softwareentwicklung. Die Kopplung wirkt sich einerseits als organisatorische Abhängigkeit aus und verzögert dadurch die Time-2-Value einer guten Business Idee. Anderseits wird sie auch in der Laufzeit bemerkbar und reduziert die Performance und User Experience des Softwareprodukts. Anhand eines Kundenprojektes schildern wir die steinige Evolution eines Monolithen hin zu einer verteilten und reaktiven Softwarearchitektur. Die Reise führt uns vorbei an unterschiedlichen Architekturkonzepten: Wir starten den Weg bei Request/Reply orientierten Microservices. Durch die Laufzeitprobleme bei diesem synchronen Ansatz gelangen wir weiter zu einer asynchronen Publish/Subscribe Messaging Architektur. Die Notwendigkeit Echtzeit Daten mit historischen Daten zu kombinieren führt uns anschließend zu einer Event Streaming Lösung mit Kafka. Bei jedem Evolutionsschritt dieser Reise beleuchten wir die damit verbundene Gefahr erneuter Kopplung und beschreiben die Stolpersteine und „Lessons learned“ aus dem Projekt.
Kontakt:
christoph.portsch@bearingpoint.com
patrik.kleindl@bearingpoint.com
4. 4
Der Monolith und seine Kopplungen
Feature
Feature Feature
Feature
Feature
Implementierungs-Kopplung
Temporale Kopplung
Deployment Kopplung
Feature Development
Gemeinsamer Technologie
Stack
Verfügbarkeit der Features
entspricht Verfügbarkeit des
Systems
Kernsystem 09:00-17:00
Deployment umfasst alle
Änderungen
Komplexe Organisation
MonolithAS 400
25 Jahre entwickeln
ohne Regeln
6. 6
Monolith
Business Ziele des Kunden
Beschleunigung
Time 2 Market
für neue Features
Skalierung
Feature
Development
2
Erhöhung spezifischer
Feature
Verfügbarkeiten
3
Feature Feature
Feature
Feature
1
FeatureFeatureFeature
Feature
15. 15
Warum?
• Broker zur Reduktion
der gegenseitigen
Kopplung
• Entkopplung der
Verfügbarkeit
zwischen Publisher &
Subscriber
• Verschub von Daten
aus einer hohen
Kopplung hin zu einer
losen Kopplung
Client
Message
Publisher Subscriber
Message
Subscriber
Message
Message
Broker
33. 33
Bestellung
+ Drop-Off Punkt
Versandauftrag
+ Drop-Off Punkt
Stream Re-Prozessierung
Monolith Stream
Stream
Stream
Stream
Kunde
Neuere Messages während Re-Prozessierung erst später verarbeitet
Einfluss durch Log Retention (z.B. 13 Monate)
Tritt auch bei Stream Topologie Änderungen auf
Auswirkung auf gesamte Kaskade
Temporale Kopplung
35. 35
Maßnahmen zum Handling der Stream Re-Prozessierung
Idempotenz bei
erneuter
Verarbeitung
Zeitraum
beschränken
Mehrstufiges
Rollout von Topics
Scale-Out der
Streams
Fachliche Filter
verwenden
44. 44
www.bearingpoint.com
Thank you.
+ 43 1 506 32 0
patrik.kleindl@bearingpoint.com
christoph.portsch@bearingpoint.com
BearingPoint GmbH
Schwarzenbergplatz 5
AT-1030 Wien, Österreich
From BearingPoint Austria
45. 45
STAND 2.12 –
2.22
11 UNTERNEHMEN AUS DEM
ÖKOSYSTEM RUND UM APACHE
KAFKA
ÜBER 30 KAFKA-EXPERTEN VOR ORT
MÖGLICHKEIT ZUM AUSTAUSCH MIT
DEN SPRECHERN IM TALK LAB
…UND KAFFEE UND GEWINNSPIELE
HABEN WIR AUCH ;-)