Kafka Moped

Was hat ein Moped mit Kafka zu tun?

Dass sich die Streaming-Software Kafka für riesige Datenmengen eignet, hat sich schon herumgesprochen. Wie vielseitig Kafka zugleich ist, konnte das Team von ITGAIN zeigen, als eine Versicherung neue Tarifrechner für ihre im Internet angebotenen Policen benötigte. Die Lösung bringt die Informationen an die richtige Stelle, ohne dass eine Datenbank nötig ist.

Was haben E-Bike-Radler, Moped-Fahrer und Menschen, die gerne im Internet einkaufen, gemeinsam? Sie alle wollen sich sorgenfrei ihrer Tätigkeit widmen. Grund genug für einen langjährigen ITGAIN-Kunden 2019 sein Portfolio zu erweitern und einen neuen Versicherungsschutz für E-Bikes und gegen Internetbetrug anzubieten. Dazu kommen zwei neue Produkte: der ErnteIndex und ein Kraftfahrzeugmodul.  Die dazugehörigen Tarifrechner und Prozesse sollen auf einer neuen technischen Lösung aufbauen, mit der ITGAIN beauftragt wird. Einige bestehende Angebote – wie die Hausratversicherung und das Mopedmodul – ziehen mit auf das neue System um. Weitere Anforderung: In Anbetracht der komplexen IT-Landschaft des Kunden soll die Lösung gut integrierbar sein.

Die Datenbank-Alternative 

Nach der ersten Planung kommen Alexander Clauß und seine Kollegen von ITGAIN ins Spiel.Der Kunde hatte die Tarifrechner bislang als Dienstleistung komplett von extern bezogen“, berichtet Clauß. Die neuen Tarifmodule sollten jetzt aber stärker inhouse betreut werden. Deswegen hat man ITGAIN für Beratung und Programmierung dazu geholt.“ 

Bei der Suche nach einer geeigneten Softwareplattform, die die bestehenden Systeme mit den neuen Tarifmodulen verbindet, nehmen die ITGAIN-Experten schnell Apache Kafka ins Visier. Denn eine klassische Datenbanklösung kommt aus Sicht des Kunden nicht infrage und Kafka erfüllt alle Anforderungen wie zum Beispiel die Fähigkeit, große Datenmengen ausfallsicher von A nach B zu bringen, eine hohe Skalierbarkeit, eine einfache Integration und eine gute Reportingfunktion. So kommt es zur Premiere, denn Kafka war bisher beim Kunden nicht im Einsatz, genauso wie das im Vergleich zum Vorgänger Spring modernisierte SpringBoot-Framework, das die Entwicklung von Web-Anwendungen vereinfacht und mit Kafka zusammen aufgesetzt wurde.  

Beispiel Moped-Versicherung 

Was Alexander Clauß und seine Kollegen mit Kafka abbilden, erklärt sich am Beispiel der jährlich zu erneuernden Moped-Versicherung. Hat sich der Kunde für einen Tarif entschieden, gibt er mit dem Klick auf „Abschicken Kafka den Startschuss. „Wir nutzen dabei den Event-Sourcing-Ansatz der Software. Jeder Versicherungsabschluss erzeugt eine Nachricht, die wir als Event bezeichnen. Und die internen und externen Mitarbeiter, die den Stream für ihre relevanten Daten abonniert haben, können diese Info direkt abrufen“, erklärt Clauß. Ein Dienstleister bekommt die Fahrzeugnummer und erstellt ein Nummernschild. Die Schufa und die Banken erhalten Prüfaufträge und die zuständigen Sachbearbeiter der Versicherung die Personendaten. Vor allem vor Beginn des Verkehrsjahres Anfang März verarbeitet das System auf diese Weise mehrere Tausend Abschlüsse innerhalb weniger Wochen. 

Nichts geht verloren 

Für Kafka kein Problem. Es schreibt die Nachrichten mit einer hochgezählten Nummer in vordefinierte Container, die sogenannten Topics. Zusätzlich erfasst die Software den Zustand der Prozesskette und der Daten. „Wir haben verschiedene Topics definiert, zum Beispiel Angebotsdaten und persönliche Daten. Dann haben wir ein Topic für den Status, um zu sehen, welche Schritte erfolgreich waren“, so Clauß. Hinzu kommt ein Wiederholungs-Topic, das auch als „Retry-Topic“ bezeichnet wird. Retry versucht Angebote erneut zu policieren, bei denen etwas schiefging: Zum Beispiel kann ein Service zum Druck von Dokumenten oder die Schufa-Prüfung gerade nicht verfügbar sein“, schildert Clauß. „Dann läuft die Nachricht immer wieder dort auf, bis die Policierung bestätigt ist und Kafka die Antwort wieder dem Auftrag zuordnet.“ Sicher ist das System ebenfalls: Dank einer Architektur mit mehreren Servern repliziert Kafka die Daten, so dass nichts verloren geht. Sollte ein System „abstürzen“, dann kann man beim Neustart den Zustand der Anwendung aufrufen und wiederherstellen.  

Die Architektur hilft auch den anderen Tarifrechnern, die mit eigenen Variablen arbeiten. Ein praktischer Nebeneffekt der ITGAIN-Lösung: Andere Häuser innerhalb der Unternehmensgruppe nutzen die Tarifrechner mit einem individuell unterschiedlichen Umfang. Die dort gesammelten Daten können dennoch über das neue System an die richtige Stelle verteilt werden. Und kommen weitere Systeme oder Datenbanken hinzu, dann können sie recht einfach integriert werden. Mit diesen Voraussetzungen schreibt der Name Kafka sicher noch einige Erfolgsgeschichten.  

Das Wichtigste zu Apache Kafka  

Was ist Apache Kafka?   

Apache Kafka ist eine Open-Source-Software zur Weitergabe von Datenströmen aus mehreren Quellen an verschiedene Nutzer. Die Software wurde ursprünglich beim Netzwerk LinkedIn entwickelt und 2011 per Open-Source-Lizenz freigegeben. Seitdem hat sie sich rasant von einer reinen Nachrichten-Warteschlange zu einer sogenannten Event-Streaming-Plattform weiterentwickelt. Die etwas ungewöhnliche Idee zur Namensgebung hatte Erfinder Jay Kreps, weil Kafka ein System ist, das für das Schreiben optimiert ist – und er Franz Kafka in seinen Literaturkursen im College schätzen gelernt hatte. 

Wie funktioniert es? 

Bei klassischen Warteschlangenkonzepten fließen Nachrichten ein und werden, sobald sie an der Reihe sind, abgearbeitet. Danach verschwinden sie meist aus dem System –ähnlich einer Supermarktschlange, die sich auflöst, wenn alle bezahlt haben. Kafka funktioniert anders. Mehrere Verbraucher („Consumer“) können die gewünschten Nachrichten („Events“) von einem Anbieter („Producer“) abonnieren und lesen, wann sie wollen. Eine Nachricht wird danach nicht aus dem System entfernt. Das funktioniert, weil die Architektur von Kafka aus einem Verbund mehrerer Server besteht. In diesem Verbund speichern die Server Nachrichten (Events) mit einem Zeitstempel strikt nach ihrer eingehenden Reihenfolge in sogenannte Topics. Diese Topics können riesige Stapel von Events werden und laut dem Anbieter Confluent sogar mehrere Billionen Events pro Tag umfassen.   

Wo liegen die Vorteile? 

Im Gegensatz zu anderen Messaging-Systemen hat Kafka einen sehr geringen Overhead: Es speichert keine Zusatzdaten, da es das Verbraucherverhalten nicht verfolgt. Über bereitgestellte Schnittstellen ist es möglich, Datenströme von Drittsystemen zu laden oder zu diesen Systemen zu exportieren. Auf diese Weise kann Kafka klassische Kundendatenbanken, Echtzeitdaten, Social Media-Inhalte oder Börseninformationen gleichzeitig verarbeiten und so vorhalten, dass der nächste Benutzer die Datenströme zum gewünschten Zeitpunkt in seiner Daten-Architektur vorhanden hat. Die Datenströme sind überdies ohne Geschwindigkeitsverlust nach oben hin skalierbar. Weil Kafka alle Informationen verteilt und jede Änderung protokolliert, ist ein auf mehreren Servern angelegtes Kafka-System sehr ausfallsicher und jeder Zustand wiederherstellbar. 

Wofür eignet sich Kafka?  

Drei Funktionen sind zentral: Die Veröffentlichung und das Abonnement von Datenströmen, das skalierbare Speichern von Datenströmen und das Verarbeiten von Streams in Echtzeit. Dabei funktioniert Kafka durchaus auch für kleinere Systeme, bei denen zum Beispiel eine Datenbanklösung nicht infrage kommt. Dank seiner verteilten Architektur eignet sich Apache Kafka vor allem für große Datenmengen und Anwendungen im Big-Data-Umfeld, die ausfallfrei von A nach B kommen müssen.  

Wer nutzt es?  

Abgesehen von Netflix, Spotify oder dem Ferienwohnungsportal AirBnB nutzen Apache Kafka auch Banken oder der Fahrdienstleister Uber, letzterer für den Echtzeitabgleich von Millionen Fahrgästen und Fahrern. Außerdem regelt Kafka Echtzeitdaten oder Daten für vorausschauende Wartung von Smart Home-Geräten verschiedener Anbieter.

Software Architektur

Architektur und Infrastruktur

Von der Idee bis zum fertigen System, vom Lastenheft bis zur fertigen Anwendung, vom Entwicklungsauftrag bis zur Realisierung: Wir entwickeln vollständige Softwarelösungen oder arbeiten als eng eingebundener Zulieferer von selbst entwickelten und produzierten Anwendungskomponenten. Als Entwicklungsdienstleister unterstützen wir unsere Kunden beim Design, bei der Architektur, der Softwareentwicklung, dem Test, der Produktion und dem Betrieb – gleich ob Anwendungskomponenten oder vollständige Systeme. Was können wir für Sie tun?

Anwendungsmodernisierung und Software Engineering

Digitale Transformation

Kostenersparnis, optimierter Betrieb und einfachere Wartung: Eine gelungene Anwendungsmodernisierung bringt viele Vorteile. Wir sind darauf spezialisiert! So sorgt unser Team dafür, dass Ihre fachlichen Anforderungen besser unterstützt werden und Ihre bewährten Anwendungen sicher und performant laufen – auf moderner Hardware und mit neuen Betriebssystemen. Dazu tauschen wir nicht einfach nur alte gegen neue Technik aus. Wir transformieren Ihre Anwendungen. So unterstützen wir Ihre dynamisch wachsenden Geschäftsprozesse, auch durch klassisches Software-Engineering.

Big Data Platforms

Architektur und Infrastruktur

Als Big Data verstehen wir nicht nur das Handling mit sehr großen Datenmengen, sondern auch die Sammlung und Verarbeitung von verschiedenartigen Daten. Dazu gehört auch die schnelle Verarbeitung. Um die Daten richtig lesen und auswerten zu können, bedarf es einer optimalen Dateninfrastruktur.

Mit unseren Erfahrung unterstützen wir Sie hinsichtlich Planung, Entwicklung bis hin zum Betrieb von Big-Data-Systemen im Data Center.

Neueste Stories