Was ist Apache Kafka?

Was hat es eigentlich überhaupt mit Apache Kafka auf sich? Diesem Programm, das quasi jeder namhafte (deutsche) Automobilhersteller einsetzt? Diese Software, dank derer wir mit unseren Schulungen und Workshops kreuz und quer durch Europa gereist sind und viele unterschiedliche Branchen ‒ von Banken, Versicherungen, Logistik-Dienstleistern, Internet-Start-ups, Einzelhandelsketten bis hin zu Strafverfolgungsbehörden ‒ kennengelernt haben? Warum setzen so viele unterschiedliche Unternehmen Apache Kafka ein?

5.11.2021
  • Was ist Apache Kafka?

    Alexander Kropp

    Dozent und Trainer im Cloud-Umfeld

  • Was ist Apache Kafka?

    Anatoly Zelenin

    IT-Trainer und Apache Kafka Experte

Buch-Cover

Dies ist ein Auszug aus unserem Buch Apache Kafka: Von den Grundlagen bis zum Produktiveinsatz. Erschienen am 12.11.2021. Erhältlich direkt bei uns, beim Hanser Verlag, Amazon, und im Buchhandel.

Anwendungsfälle

Wir teilen die Einsatzgebiete von Apache Kafka in zwei Kategorien ein: Die erste Gruppe von Anwendungsfällen ist die, für die Kafka einst gedacht war. Apache Kafka wurde nämlich anfangs bei LinkedIn entwickelt, um alle Events, die auf der LinkedIn-Website anfallen, in das zentrale Data Warehouse zu bewegen. LinkedIn war auf der Suche nach einem skalierbaren und auch bei sehr hoher Last performanten Messaging-System und hat letzten Endes Kafka dafür kreiert. So setzen heute sehr viele Unternehmen Kafka ein, um große Datenmengen von A nach B zu bewegen. Der Fokus liegt oft auf der benötigten Performance, der Skalierbarkeit Kafkas, aber natürlich auch auf der Zuverlässigkeit, die Kafka für die Zustellbarkeit und Persistierung der Nachrichten bietet.

Eine der Kernideen, die Kafka von klassischen Messaging-Systemen jedoch unterscheidet, ist, dass Kafka Daten auf Datenträgern persistiert. So können wir Daten in Kafka aufbewahren und einmal geschriebene Daten nicht nur mehrfach lesen, sondern auch Stunden, Tage oder gar Monate nachdem diese Daten geschrieben wurden.

Dies ermöglicht die zweite Kategorie der Apache Kafka-Anwendungsfälle: Immer mehr Unternehmen nutzen Kafka als zentrales Werkzeug, um nicht lediglich Daten zwischen unterschiedlichsten Services und Anwendungen auszutauschen, sondern wenden Kafka als zentrales Nervensystem an, um mit Daten innerhalb von Unternehmen zu agieren. Was aber meinen wir damit, dass Kafka das zentrale Nervensystem für Daten sein kann? Die Vision ist, dass jedes Ereignis, das in einem Unternehmen stattfindet, in Kafka abgespeichert wird. Jeder andere Service (der natürlich die Berechtigung hat) kann nun auf dieses Ereignis asynchron reagieren und dieses Ereignis weiterverarbeiten:

Kafka als zentrales Nervensystem für Daten im Unternehmen. Jedes Ereignis, welches im Unternehmen stattfindet, wird in Kafka gespeichert. Andere Services können auf diese Ereignisse asynchron reagieren und sie weiterverarbeiten.

Alte und neue Welt

Wir sehen zum Beispiel in vielen Unternehmen den Trend, dass es eine Trennung zwischen sogenannten Altsystemen, die für bestehende Geschäftsprozesse und Geschäftsmodelle essenziell sind, und der sogenannten Neuen Welt gibt, wo mit agilen Methoden neue Dienste entwickelt werden, die auch in Software abgebildet werden müssen. Oftmals setzen Unternehmen Kafka ein, um nicht nur als Schnittstelle zwischen alten und neuen Systemen zu agieren, sondern auch, um den neuen Services zu ermöglichen, untereinander Nachrichten auszutauschen.

Das liegt daran, dass Altsysteme oftmals nicht den neuen Anforderungen unserer KundInnen gewappnet sind. Batch-Systeme können den Drang nach Informationen, die immer „Sofort“ verfügbar sein sollen, nicht erfüllen. Wer möchte zum Beispiel heutzutage noch einen Tag oder gar mehrere Wochen darauf warten, dass sich der Kontostand nach einer Kreditkartentransaktion aktualisiert? Wir erwarten mittlerweile, dass wir unsere Pakete in Echtzeit verfolgen können. Moderne Pkw produzieren Unmengen von Daten, die insbesondere für die Vorbereitung auf das autonome Fahren an die Konzernzentrale geschickt und ausgewertet werden sollen. Kafka kann all diese Unternehmen dabei unterstützen, von einer batch-orientierten Verarbeitung hin zu einer Datenverarbeitung in (nahezu) Echtzeit zu gelangen.

Aber auch die Art und Weise, wie wir Software schreiben, verändert sich. Statt immer mehr Funktionalität in monolithische Services zu stecken und dann diese wenigen Monolithen miteinander mittels Integration zu verbinden, brechen wir unsere Services in Microservices auf, um unter anderem die Abhängigkeit zwischen den Teams zu reduzieren. Dafür benötigen wir jedoch eine Art und Weise für den Datenaustausch, die möglichst asynchron ist. Dadurch können Services, auch wenn ein Service gerade in Wartung ist, unabhängig von diesem weiter funktionieren. Wir benötigen Methoden für die Kommunikation, die es erlauben, dass sich die Datenformate in einem Service unabhängig von anderen Services entwickeln können. Auch hierbei kann uns Apache Kafka unterstützen.

Ein anderer Trend, der vor allem durch Virtualisierung und immer breiteren Einsatz von Cloud-Architekturen ausgelöst wurde, ist das Zurückgehen von Spezialhardware. Es gibt im Gegensatz zu anderen Messaging-Systemen keine Kafka-Appliances. Kafka läuft auf handelsüblicher Hardware und benötigt keine ausfallsicheren Systeme. Kafka selbst ist so entwickelt, dass es gut mit Ausfällen von Teilsystemen zurechtkommt. Dadurch ist die Zustellung von Nachrichten zuverlässig, auch wenn in unserem Rechenzentrum vielleicht gerade Chaos ausbricht.

Wie aber erreicht Kafka diese Zuverlässigkeit und Performance? Wie können wir Kafka für unsere Anwendungsfälle verwenden, und was ist beim Betrieb Kafkas zu beachten? Die Antworten auf diese Fragen und vieles mehr möchten wir Ihnen auf der Reise durch dieses Buch geben.

Das Buch ist direkt bei uns, beim Hanser-Verlag, Amazon, und überall wo es Bücher gibt erhältlich. Für Unterstützung und Fragen rund um Kafka schreib uns einfach oder buche dir ein Kennenlerngespräch hier.