Integration

Was ist Apache Kafka?

Apache Kafka ist eine verteilte Streaming-Plattform, mit der sich Daten in Echtzeit veröffentlichen, abonnieren, speichern und verarbeiten lassen. Sie ist darauf ausgelegt, Datenströme aus mehreren Quellen zu handhaben und sie an verschiedene Kunden weiterzuleiten. Dabei werden riesige Datenvolumina nicht nur von A nach B, sondern von A nach Z und überall dorthin übertragen, wo Sie Daten benötigen – und all das in Echtzeit.

Apache Kafka ist eine Alternative zu den traditionellen Enterprise Messaging-Systemen. Ursprünglich wurde es als internes System entwickelt, um die 1,4 Billionen Nachrichten pro Tag von Linkedin zu handhaben. Zwischenzeitlich aber hat es sich zu einer Open Source-Lösung für das Daten-Streaming gemausert, mit der sich verschiedene Unternehmensbedürfnisse erfüllen lassen.


Asynchrone Integration mit Apache Kafka

Microservices haben die Entwicklerlandschaft revolutioniert. Sie bieten Entwicklern mehr Agilität, indem Abhängigkeiten wie z. B. gemeinsame Datenbankebenen, reduziert werden. Allerdings müssen die von Ihren Entwicklern erstellten verteilten Anwendungen immer noch irgendwie integriert werden, damit die Daten gemeinsam genutzt werden können. Eine der beliebten Optionen, auch als synchrone Methode bekannt, nutzt APIs, um Daten für mehrere Benutzer bereitzustellen.

Dann gibt es da noch die asynchrone Variante, bei der Daten in einem Zwischenspeicher repliziert werden. Und genau hier kommt Apache Kafka ins Spiel. Damit lassen sich Daten von anderen Entwicklerteams per Stream in den Datenspeicher übertragen, von wo aus sie dann von allen Teams und ihren Anwendungen gemeinsam genutzt werden können.

Microservice-Teams haben bezüglich der Integration andere Anforderungen als Teams, die mit der traditionellen Wasserfallmethode arbeiten. Diese Teams benötigen drei grundlegende Funktionen:

  1. Verteilte Integrationen: leichte, musterbasierte Integrationen, die bedarfsabhängig und kontinuierlich bereitgestellt werden und nicht durch zentrale ESB-Implementierungen beschränkt sind.
  2. APIs: API-basierte Services, die ein Ökosystem aus Partnern, Kunden und Entwicklern unterstützen, das für eine zuverlässige und rentable Nutzung von Services sorgt.
  3. Container: eine Plattform zur Entwicklung, Verwaltung und Skalierung cloudnativer und verbundener Anwendungen. Container ermöglichen die Entwicklung schlanker Artefakte, die einzeln bereitgestellt werden können, Teil von DevOps-Prozessen sind, durch Out-of-Box-Clustering unterstützt werden und eine hohe Verfügbarkeit gewährleisten.

Red Hat nennt diese Methode „agile Integration“. Damit werden Integrationen Teil des Anwendungsentwicklungsprozesses und sorgen so für mehr Agilität und adaptive Lösungen. Teil der agilen Integration ist die Freiheit, je nach den spezifischen Anforderungen der Anwendung entweder die synchrone oder asynchrone Integration zu verwenden. Wenn Sie asynchrone ereignisgesteuerte Integrationen verwenden, ist Apache Kafka ist eine hervorragende Option, synchrone Integrationen und APIs häufiger zu verwenden und so Microservices weiter zu unterstützen und für eine agile Integration zu sorgen. So kann Apache Kafka Sie dabei unterstützen, den Entwicklungsprozess zu optimieren, Innovationen zu fördern, Zeit zu sparen und letztlich die Markteinführung für neue Features, Apps und Services zu beschleunigen.


Wann sich der Einsatz von Apache Kafka lohnt

Apache Kafka ist in Streaming-Pipelines integriert, die Daten gemeinsam zwischen Systemen und/oder Anwendungen nutzen, aber auch in diejenigen Systeme und Anwendungen, die diese Daten verbrauchen. Das Produkt unterstützt eine Reihe von Use Cases, bei denen ein hoher Durchsatz und beste Skalierbarkeit angestrebt werden. Da Sie mit Apache Kafka die Notwendigkeit für Punkt-zu-Punkt-Integrationen für die gemeinsame Datennutzung in bestimmten Anwendungen minimieren können, lassen sich auch Latenzzeiten auf Millisekunden reduzieren. Dies bedeutet, dass Daten dem Nutzer schneller zur Verfügung gestellt werden, was in solchen Use Cases von Vorteil sein kann, die eine Datenverfügbarkeit in Echtzeit erfordern, wie z. B. IT-Operationen und E-Commerce.

Apache Kafka kann Millionen von Datenpunkten pro Sekunde handhaben und eignet sich so bestens für alle Herausforderungen von Big Data. Das Produkt kann aber auch sinnvoll in Unternehmen mit weniger extremen Datenszenarien eingesetzt werden. In vielen Use Cases rund um die Datenverarbeitung, wie z. B. beim Internet of Things (IoT) und sozialen Medien, steigt das Datenvolumen exponentiell an und kann schnell die Kapazitäten der auf Ihr aktuelles Datenvolumen zugeschnittenen Anwendungen sprengen. Bei der Datenverarbeitung müssen Sie die Skalierbarkeit im Auge behalten und stets für ein wachsendes Datenvolumen gerüstet sein.

IT-Operationen

Bei IT-Operationen dreht sich alles um Daten. Dort benötigt man ständigen und möglichst schnellen Datenzugriff. Denn nur so kann gewährleistet werden, dass Websites, Anwendungen und Systeme jederzeit korrekt und effizient ausgeführt werden. Apache Kafka eignet sich bestens für IT-Funktionen, die auf die Erfassung von Daten aus den verschiedensten Quellen angewiesen sind, z. B. aus Monitoring, Alarmen, Berichten, Protokollen und der Nachverfolgung des Website-Verkehrs.

Internet of Things

Laut Gartner wird das IoT bis zum Jahre 2020 über 20 Milliarden Geräte umfassen. Der Wert des IoT misst sich an den verwertbaren Daten, die durch diese zahlreichen Sensoren generiert werden. Apache Kafka ist auf Skalierbarkeit ausgelegt, um die vom IoT erwarteten riesigen Datenvolumina handhaben zu können.

E-Commerce

E-Commerce bietet zunehmende Möglichkeiten zum Einsatz von Apache Kafka, das Daten wie Seiten-Klicks, Gefällt mir-Markierungen, Suchvorgänge, Bestellungen, Warenkörbe und Bestände verarbeiten kann.


Wie sich mit Kubernetes Apache Kafka-Anwendungen skalieren lassen

Kubernetes ist die ideale Plattform für Apache Kafka. Entwickler benötigen eine skalierbare Plattform, um Kafka-Anwendungen hosten zu können – und Kubernetes ist die Antwort.

Wie Apache Kafka auch macht Kubernetes Ihren Entwicklungsprozess agiler. Kubernetes, die Technologie hinter den Cloud-Services von Google, ist ein Open Source-System zur Verwaltung containerisierter Anwendungen, mit dem sich viele manuelle, mit Containern verknüpfte Prozesse eliminieren lassen. Mit Apache Kafka in Kubernetes können Sie Entwicklung, Konfiguration, Management und Nutzung von Apache Kafka optimieren.

Indem Sie die beiden Technologien kombinieren, sichern Sie sich alle Vorteile von Kafka, aber auch von Kubernetes: Skalierbarkeit, Hochverfügbarkeit, Portierbarkeit und einfache Implementierung.

Die Skalierbarkeit von Kubernetes ist eine natürliche Komponente von Kafka. In Kubernetes können Sie Ressourcen über einen einfachen Befehl vertikal oder verbrauchsabhängig automatisch skalieren und Ihre Computing-, Networking- und Storage-Infrastruktur optimal nutzen. Mithilfe dieser Funktion kann Apache Kafka einen begrenzten Ressourcen-Pool mit anderen Anwendungen teilen. Kubernetes bietet außerdem an, dass Apache Kafka in verschiedene Infrastrukturanbieter und Betriebssysteme portiert werden kann. Mithilfe von Kubernetes können Apache Kafka-Cluster über lokale sowie Public, Private oder Hybrid Clouds verteilt werden und dazu unterschiedliche Betriebssysteme nutzen.

Integration mit Red Hat

Mit Red Hat erhalten Sie modulare, kompakte und umfassende Open Source-Integrationslösungen mit offenen Standards, die on-premise oder über die Cloud verfügbar sind.

Messaging

Als Bestandteil von Red Hat® AMQ integriert AMQ Streams Apache Kafka auf Red Hat OpenShift® Container Platform. AMQ Streams ist eine skalierbare, verteilte und hochleistungsfähige Streaming-Funktion, die auf dem Apache Kafka-Projekt basiert und auf Kubernetes ausgeführt wird.

Container-Plattform

Entwickeln, implementieren, verwalten und skalieren Sie cloudnative Anwendungen mit Containern über eine Container-Plattform. OpenShift kann all diese Anwendungen automatisch orchestrieren und ermöglicht zusammen mit Produkten wie AMQ, Fuse und 3scale API Management eine agile Integration in der Cloud.

Weitere Informationen zum Thema Integration mit Red Hat