Was ist Apache Kafka?
5.11.2021Alexander Kropp
Dozent und Trainer im Cloud-Umfeld
Anatoly Zelenin
IT-Trainer und Apache Kafka Experte
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:
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.
Alexander Kropp ist seit seiner Kindheit leidenschaftlicher Informatiker und programmiert seit er 10 Jahre alt ist. Als Forscher und Berater unterstützt Alexander seit einem Jahrzehnt namhafte Unternehmen bei der Digitalisierung und Prototypen-Entwicklung. Parallel ist er als Dozent und Trainer im Cloud-Umfeld tätig.
Anatoly Zelenin vermittelt als IT-Trainer hunderten Teilnehmern Apache Kafka in interaktiven Schulungen. Seine Kunden aus dem DAX-Umfeld und dem deutschen Mittelstand schätzen seit über einem Jahrzehnt seine Expertise und seine begeisternde Art. Darüber hinaus ist er nicht nur IT-Berater und -Trainer, sondern erkundet auch als Abenteurer unseren Planeten.