Anmelden / Registrieren Konto

Integration

Warum Apache Kafka auf Kubernetes?

Jump to section

Die Unternehmens-IT setzt vermehrt Microservices und cloudnative Entwicklung ein. Dies führt zu verteilten Systemen, die von EDAs (Event-Driven Applications) mit Daten aufgefüllt werden. In dieser dynamischen Entwicklungsumgebung nutzen viele digitale Marktführer Apache Kafka in Kombination mit Kubernetes.

Mit Apache Kafka kann ein Unternehmen in Echtzeit dargestellt und analysiert werden, und auf sich ständig verändernde Marktsituationen kann rasch reagiert werden. Es ist außerdem eine hervorragende Option, um Echtzeitverbindungen zu internen Stakeholdern und externen Partnern, Lieferanten und Kunden einzurichten und zu erhalten.

Kafka Streams, eine Funktion von Apache Kafka, die zu jeder beliebigen Anwendung hinzugefügt werden kann, ermöglicht eine einfache, aber leistungsstarke Stream-Verarbeitung von Kafka Events. Diese schnelle, kontinuierliche und gleichzeitige Verarbeitung und Analyse von riesigen Datenmengen ist genau das, was Apache Kafka von anderen Messaging-Alternativen abhebt. Der Nutzer kann Events für eine In-Line-Analyse in Echtzeit selbst zusammenfassen, transformieren, anreichern und organisieren, statt darauf warten zu müssen, bis Big Data-Maschinen ihre Berechnungen abgeschlossen haben. Dies macht Apache Kafka für alle Anwendungen unerlässlich, die eine rasche Reaktion auf Echtzeitdaten erfordern.

Das Produkt bildet die ideale Basis für eine cloudnative Entwicklung. Cloudnative Anwendungen sind event-gesteuert, und Apache Kafka ist optimal für die Verwaltung von Events geeignet. Egal ob es um verteiltes Streaming, Echtzeitverarbeitung oder hohe Skalierbarkeit geht – mit Apache Kafka werden all diese event-gesteuerten Funktionen unterstützt.

Die Serverless-Architektur, der Schritt nach der cloudnativen Entwicklung, ist ebenfalls event-gesteuert und wird auch von Apache Kafka unterstützt. Mithilfe von Apache Kafka on Kubernetes können Entwickler zuverlässig skalierbare Service-Benachrichtigungen, Kommunikation zwischen Prozessen und transparente Serverless-Funktionen bereitstellen.

Warum Apache Kafka on Kubernetes?

Apache Kafka wird häufig im Container-Managementsystem Kubernetes eingesetzt, das verwendet wird, um Container in Host Clustern automatisch bereitzustellen, zu skalieren und auszuführen. Apache Kafka on Kubernetes geht Hand in Hand mit einer cloudnativen Entwicklung, die die nächste Generation der Anwendungsentwicklung darstellt. Bei cloudnativen Anwendungen handelt es sich um unabhängige, lose gekoppelte und verteilte Services, die Hochverfügbarkeit über die Cloud liefern. In Kafka erstellte EDAs sind in ähnlicher Weise lose gekoppelt und darauf ausgelegt, in einer verteilten Hybrid Cloud-Umgebung skaliert zu werden.

Ein wichtiger Vorteil von Apache Kafka on Kubernetes für die Operations-Teams ist die Infrastrukturabstraktion. So kann es nach der erstmaligen Konfiguration überall ausgeführt werden. Moderne Operations-Teams verwalten normalerweise unterschiedliche Arrays von On-Premise- und Cloud-Ressourcen. In Kubernetes können diese Assets als Pools mit Computing-Ressourcen behandelt werden, denen die Software-Ressourcen, auch Apache Kafka, zugewiesen werden können. Außerdem kann auf derselben Kubernetes-Schicht eine Einzelumgebung zur Verwaltung aller Apache Kafka-Instanzen eingerichtet werden.

Die Skalierbarkeit von Kubernetes ist eine natürliche Ergänzung für Apache Kafka. In Kubernetes können Anwendungen die Ressourcen über einen einfachen Befehl nach oben, nach unten oder verbrauchsabhängig automatisch skalieren und so Ihre Computing-, Networking- und Storage-Infrastruktur optimal nutzen. Über Kubernetes kann Apache Kafka Anwendungen in lokale, Public, Private oder Hybrid Clouds portieren und unterschiedliche Betriebssysteme verwenden.

Strimzi: So funktioniert Apache Kafka auf Kubernetes

Die manuelle Ausführung von Apache Kafka ist ein komplexes Unterfangen, das eine äußerst umfangreiche Konfiguration sehr vieler Komponenten erfordert. Die Ausführung auf Bare Metal-Systemen (oder auch Virtual Machines) ist ebenfalls kompliziert. Das Gleiche gilt für die Bereitstellung, Überwachung, Aktualisierung sowie die Rücksetzung von Knoten.

Und genau hier kommt das Open Source-Projekt Strimzi ins Spiel. Die Lösung verwendet Operators, die Apache Kafka-Konfigurationen nahtlos und reibungslos bereitstellen. Operators, erstklassige Komponenten für die Bereitstellung und Verwaltung von Anwendungen auf Kubernetes, bieten eine hohe Flexibilität bei der Entwicklung, weil eine Abstraktion auf Infrastrukturebene erfolgt und Apps so ohne viele Informationen zur Infrastruktur bereitgestellt werden können. Der Entwickler braucht keine Details (wie die Anzahl der Rechner und den Typ der Hardware), weil die Operators die Infrastruktur automatisch bereitstellen und alle Komponenten verwalten.

Strimzi bietet alle Vorteile von IaC (Infrastructure as Code). So kann der Entwickler auf einfache Weise ein code-ähnliches Anweisungshandbuch zur Definition der Infrastruktur schreiben, und Strimzi führt diese Anweisungen perfekt aus. Das Produkt kann die Bereitstellung von Apache Kafka im Hochverfügbarkeitsmodus sogar noch vereinfachen, was normalerweise sehr schwierig ist.

Ein weiterer wichtiger Grund für die Ausführung von Strimzi ist sein Operator, der viele Sicherheitsaspekte für Apache Kafka unterstützt. Mit Strimzi werden außerdem die Sicherheitsfunktionen für Apache Kafka on Kubernetes automatisiert, und zwar per Single Sign-on, Verschlüsselung und Authentifizierung, damit die Entwickler ihre Zeit nicht damit verschwenden müssen.

Die Suche nach den richtigen EDA-Lösungen

Red Hat AMQ Streams, das Bestandteil von Red Hat Integration ist, ist eine Red Hat Distribution von Apache Kafka und Strimzi für Unternehmen. Ein großer Teil des Mehrwerts von AMQ Streams für Apache Kafka hat mit dem Einsatz von Apache Kafka on Kubernetes oder Red Hat OpenShift, einer Red Hat Distribution von Kubernetes, zu tun.

Red Hat AMQ Streams on OpenShift stellt Apache Kafka auf Kubernetes bereit, um unternehmensfähige EDAs zu ermöglichen, die verteilte Daten-Streams und Stream-verarbeitende Microservice-Anwendungen unterstützen. AMQ Streams eignet sich besonders gut für Szenarien mit großem Volumen und hohem Durchsatz, weil die inhärente Partitionierung in Apache Kafka die Skalierbarkeitsanforderungen sehr gut erfüllt.

Integration mit Red Hat

Mit Red Hat erhalten Sie modulare, schlanke und umfassende Open Source-Integrationslösungen mit offenen Standards, die lokal oder in der Cloud verfügbar sind.

Ein gemanagter Cloud-Service, der eine optimierte Entwicklererfahrung für das Erstellen, Bereitstellen und Skalieren neuer cloudnativer Apps oder die Modernisierung vorhandener Systeme bietet.

Red Hat AMQ

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

Red Hat Openshift

Entwickeln, implementieren, verwalten und skalieren Sie cloudnative Anwendungen mit Containern auf einer 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.

Red Hat OpenShift Streams for Apache Kafka testen