Navigation überspringen

Kafka auf dem Prüfstand

In Sachen Kafka könnte man Alexander Clauß schon fast einen alten Hasen nennen. Seit er im April 2018 als Consultant zu ITGAIN in Hannover wechselte, setzt er sich intensiv mit der Software auseinander. Und nicht nur darin ist er Experte. Auch in der Banken- und Versicherungsbranche kennt er sich bestens aus. Schließlich arbeitete er bereits sieben Jahre lang bei einem IT-Dienstleister der öffentlich-rechtlichen Versicherer im Norden Deutschlands. Jetzt plant er einen Workshop mit seinen ehemaligen Kollegen. So wollen sie gemeinsam herausfinden, ob es sinnvoll ist, das aktuelle Message Bus System durch Kafka zu ersetzen.

Warum wechseln?

Das Message Bus System hat bei dem IT-Dienstleister vor allem eine Aufgabe: Es soll die verschiedenen Programme der jeweiligen Versicherung verknüpfen und damit Datenänderungen zusammenzuführen. Der Beweggrund für den IT-Dienstleister, das Message Bus System auszutauschen, liegt vor allem darin, herstellerunabhängiger und handlungsfähiger zu werden und damit die IT zukunftsfähiger zu gestalten. Denn üblicherweise haben Versicherungen diverse Anwendungen im Einsatz – beispielsweise Partnersysteme, Vertragssysteme, Schadensanwendungen oder Systeme für den Außen- und Innendienst. Als zentraler Kommunikationskanal bündelt Kafka die Kommunikation zwischen diesen Systemen.

Dabei muss die Software allerdings absolut transaktionssicher sein. Das heißt, Aktionen müssen entweder ganz oder gar nicht ausgeführt werden – und das nacheinander. So soll verhindert werden, dass Prozesse, die sich gegenseitig ausschließen, parallel ablaufen können. Mit einer Transaktion sind alle schriftlichen Änderungen im System gemeint, etwa Namensänderungen, Vertragsanpassungen, Neuabschlüsse oder Kündigungen. 

Links: Die Netzwerkteilnehmer sind direkt miteinander verbunden. Mit jedem neuen Teilnehmer steigt die Anzahl der Verbindungen im Netzwerk exponentiell.

Rechts: Als zentraler Kommunikationskanal bündelt das Message-Queue-System die Kommunikation zwischen den Teilnehmern. Die Skalierung der Verbindungen ist wesentlich effizienter.

Gute Vorbereitung

Den Workshop plant Alexander Clauß gemeinsam mit seinem Kollegen Jose Carlos Dominguez aus Mannheim, der sich ebenfalls sehr gut mit Kafka auskennt. „Wir werden den Tag in eine theoretische und in eine praktische Hälfte teilen“, berichtet Clauß. Im Theorieteil werden Grundlagen und Konzepte zu Kafka erklärt. In der zweiten Hälfte analysieren die Teilnehmer die Kundensituation, bewerten das aktuell eingesetzte System und diskutieren beispielhaft spezifische Kundenanwendungen in Kafka. „Dabei muss man wissen, dass die IT-Welt der Banken und Versicherungen in den vergangenen Jahren und Jahrzehnten sehr stark gewachsen ist. Dadurch gibt es häufig Altlasten“, betont Clauß. „Gleichzeitig sind die Transaktionen, die über verschiedenste Systeme und Server laufen, oft komplex und langwierig.“ Wie sich das mit Kafka ändern lässt, an welchen Stellen es sich lohnt, umzudenken beziehungsweise Erwartungen neu auszurichten und wie das Ganze aussehen kann, wollen Clauß und sein Kollege dem Kunden zeigen. Von dem IT-Dienstleister werden insgesamt zehn Personen aus der Abteilung „Grundlagen“ am Workshop teilnehmen. Die Mitarbeiter dieser Abteilung sind Framework-Entwickler, Software-Architekten und Konzepter. Das heißt, sie beschaffen den Programmierern all das an Infrastruktur, was diese zum Arbeiten brauchen.

Die Entscheidung

Sollte sich der Kunde nach dem Workshop für die Einführung von Kafka entscheiden, kann eine Umstellung jedoch nicht von heute auf morgen erfolgen. Der Software-Tausch gelingt nur schrittweise mit Hilfe von Migrationsplänen. So werden etwa für eine gewisse Zeit beide Systeme parallel betrieben oder teilweise miteinander verbunden. Außerdem müssen die Experten von ITGAIN die technische Infrastruktur an den neuen Bedarf anpassen. 

Dabei benötigen Banken und Versicherungen eine absolute Ausfallsicherheit. Und die gewährleistet Kafka, indem es in einem Server-Verbund betrieben wird. Konkret bedeutet dies, dass das System mindestens über zwei und maximal über neun sogenannte Kafka-Knoten verfügt. Die Redundanz lohnt sich: Fällt ein Server aus, dann übernimmt ein anderer seine Funktion. Die Anzahl der Knoten richtet sich nach den Anforderungen des jeweiligen Kunden, also beispielsweise danach, wie viele Daten er mit welchem Durchsatz verarbeiten möchte. „Es macht einen großen Unterschied, ob ich kleinere Datenmengen in kurzen Intervallen verarbeiten will oder größere Datenmengen in längeren Abständen“, erklärt Clauß.

Noch mehr Workshops

Alexander Clauß freut sich schon, seine alten Kollegen wiederzusehen. Und auch den Workshop zu moderieren ist für ihn eine willkommene Abwechslung: „In Zukunft wollen wir das seitens ITGAIN verstärkt anbieten“, sagt Clauß. „Wir wollen die Kunden nicht nur darin unterstützen, die passende Software zu finden. Wenn sie sich für ein System entschieden haben, möchten wir sie über fundierte mehrtägige Workshops darin auch coachen.“ Und an solchen Schulungen herrscht bei ITGAIN kein Mangel. Nicht nur in puncto Apache Kafka.

Entdecken Sie das Workshop- und Schulungsangebot bei ITGAIN!

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 Kafkas Texte 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 Kafka ein verteiltes Dateisystem ist. Nachrichten können unbefristet aufbewahrt werden, oder es kann eine Aufbewahrungsfrist definiert werden. Die Server, auf denen Kafka läuft, speichern 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 nahezu 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 findet. 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

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

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.

Software Engineering Fachanwendungen

Wir entwickeln moderne Fachanwendungen, die wirtschaftlich sind. Unser Ziel dabei: Ihr Erfolg. Dazu betrachten wir Fachanforderungen ganzheitlich und integrieren sie in Ihre Systemumgebungen. Selbstverständlich, dass wir Sie auch nach der Fertigstellung betreuen und professionellen Support anbieten – nicht nur in technischer, sondern auch in fachlicher Hinsicht.