Weißbuch

Beschleunigung von Kafka-Produzenten mit FPGAs

Übersicht

Apache Kafka ist das Herzstück der neuen universellen Streaming-Daten-Pipeline. Kafka ist die Streaming-Plattform der Wahl und wird von LinkedIn, Netflix, Uber, ING und mehr als einem Drittel der Fortune-500-Unternehmen eingesetzt, Tendenz steigend. Bei LinkedIn werden pro Tag etwa zwei Billionen Nachrichten über Kafka übertragen. Laut TechRepublic.com haben sechs der Top-10-Reiseunternehmen, sieben der Top-10-Banken weltweit, acht der Top-10-Versicherungsunternehmen und neun der Top-10-Telekommunikationsunternehmen Kafka als zentrale Plattform für die Verwaltung von Streaming-Daten eingeführt. Auf dem New Yorker Kafka-Gipfel 2017 berichtete Confluent, dass mehr als ein Drittel der Fortune-500-Unternehmen Kafka eingesetzt haben.

Kafka-Basissystem

Kafka besteht aus drei wesentlichen Komponenten: Produzenten, Makler und Konsumenten. Erzeuger veröffentlichen Daten in Themen auf Brokern und Verbraucher abonnieren Themen. Abbildung 1 zeigt ein grundlegendes Kafka-System.

Einer der vielen Vorteile der Kafka-Architektur ist die Entkopplung von Produzenten und Konsumenten. Erzeuger und Verbraucher können sehr unterschiedliche Datenraten haben und sich dennoch nicht gegenseitig beeinflussen. Ein weiterer wichtiger Vorteil von Kafka ist seine geringe Größe. Mit nur etwas mehr als 90.000 Codezeilen können Kafka-Cluster auf wesentlich bescheideneren Hardwareanforderungen implementiert werden als Spark Streaming, das einen kompletten Spark-Knoten benötigt.

Abbildung 1 - Kafka-Basissystem

Beschleunigung von Kafka-Produzenten

Die Dateneingabe in Big-Data-Systeme reicht von einfach bis komplex. In Abbildung 2 kann Datenquelle 1 eine Paketaufzeichnung des Netzwerkverkehrs sein. Bei Datenquelle zwei könnte es sich jedoch um komplexe Geodaten von einer Satellitenkonstellation handeln, während Datenquelle drei industrielle IoT-Wartungsdaten einer Windmühlenfarm in Westtexas sind.

Die Variabilität der Datenformate und Datenraten erschwert die Skalierung des Problems. Die Fähigkeit, sich in Echtzeit an den sprunghaften Anstieg des Datenverkehrs und neue Formate anzupassen, ist oft kostspielig und erfordert die Bereitstellung zusätzlicher NICs und Prozessoren. Abbildung 3 zeigt eine typische prozessorbasierte Architektur, die in den meisten Kafka-Clustern verwendet wird.

Abbildung 2: Streaming Data Ingest-Beschleunigung mit Intel FPGAs

Die Variabilität der Datenraten macht das System in Abbildung 3 schwer planbar. In vielen Fällen muss die maximale Bandbreite geschätzt und dann bereitgestellt werden. 50 % oder mehr der überzähligen Prozessoren und NICs werden im Leerlauf sein und auf eine Erhöhung der Datenraten warten.

Bei der Umstellung auf eine Intel FPGA-basierte Lösung wird dieselbe maximale Bandbreite veranschlagt, aber das vereinfachte System in Abbildung 4 hat im Leerlauf einen viel geringeren Stromverbrauch und benötigt insgesamt erheblich weniger Stellfläche. Beim System in Abbildung 2 entfallen außerdem die Flusssteuerung und das Lastausgleichsmanagement, die bei prozessorbasierten Systemen erforderlich sind, da der Intel FPGA-basierte Ansatz unabhängig von der Datenrate oder den Datenformaten deterministisch ist.

Intel FPGAs sind parallele Streaming-Beschleuniger, die direkt an Kupfer-, Glasfaser- und Glasfaserkabel angeschlossen werden. Im Gegensatz zu herkömmlichen GPUs und CPUs können Intel FPGAs beliebige Daten in jedem Format in Nanosekunden von der Leitung zum Speicher übertragen, ohne dass eine Netzwerkschnittstellenkarte (NIC) erforderlich ist.

Diese Beschleunigung des Ingests kann zu einer 40-fach geringeren Latenzzeit beim Dateningest an den Kafka-Produzenten führen. Sie bietet die Möglichkeit zur gleichzeitigen Echtzeitverarbeitung der eingehenden Daten, z. B. durch maschinelles Lernen, Bilderkennung, Mustervergleich, Filterung, Komprimierung, Verschlüsselung usw. Eingespeiste Daten können so beschleunigt und angereichert werden, um die Zeit bis zur Datenerfassung und Datenanalyse zu verkürzen.

Abbildung 3: Typischer Ingest-Weg

Anwendungsfall eins: Inline-Extraktion und Transformation

Der einfachste Anwendungsfall für FPGA-Ingest in einen Kafka-Producer ist in Abbildung 4 dargestellt. Selbst für diesen einfachsten Anwendungsfall bietet der FPGA niedrige Latenzzeiten und Determinismus selbst für extrem variable Raten. Durch die Möglichkeit, die Daten mit OpenCL zu extrahieren und umzuwandeln, können in diesem Anwendungsfall 10 bis 100 Datentypen verarbeitet werden.

Abbildung 4 Deterministische Inline-Extraktion und -Transformation mit geringer Latenzzeit

Anwendungsfall zwei: Inline-Verschlüsselung und -Entschlüsselung

Verschlüsselung ist extrem teuer im Prozessorzyklus, aber auf Intel FPGAs gut zu verstehen. FPGAs bieten eine niedrige Latenzzeit und ein deterministisches Ergebnis, ohne von der Datenrate abhängig zu sein. Bei Prozessoren könnten variable Datenraten die Prozessorressourcen überschwemmen und zu Engpässen und/oder zum Verwerfen von Paketen führen.

Abbildung 5 Inline, niedrige Latenz, deterministisch, Verschlüsselung oder Entschlüsselung

Abbildung 6 Deterministische Inline-Komprimierung oder -Dekomprimierung mit geringer Latenz

Anwendungsfall drei: Inline-Komprimierung und -Dekomprimierung

FPGAs sind äußerst effizient bei der Komprimierung und Dekomprimierung. In diesem Anwendungsfall wird der FPGA zur Komprimierung/Dekomprimierung von Daten verwendet, bevor diese an das Kafka-System weitergeleitet werden.

Anwendungsfall vier: Informationstheorie mit verschlüsselten/entschlüsselten und komprimierten/dekomprimierten Datenströmen

Das Shannon'sche Gesetz wird in immer mehr Anwendungsfällen des Streaming angewandt, um festzustellen, ob ein Stream verschlüsselt ist. Das Shannonsche Gesetz berechnet die Entropie eines Pakets, indem es nach Zufälligkeit im Vergleich zu strukturierten Bytes sucht. Viele verschlüsselte Bytes sehen strukturierten Daten ähnlich, aber nicht alle. Abbildung 7 zeigt einen möglichen Ablauf zur Berechnung der Entropie, zum Versuch der Entschlüsselung und zur anschließenden Dekomprimierung vor der Veröffentlichung in einem Kafka-Thema. Selbst wenn die Entschlüsselung und/oder Dekomprimierung nicht erfolgreich durchgeführt werden könnte, hat die Sortierung von verschlüsselten und entschlüsselten Datenströmen viele Anwendungen in der Industrie, z. B. für personenbezogene Daten im Finanz- und Gesundheitswesen.

Abbildung 8 Angereichertes Topic Routing von PCAPs für Cyber Analytics

Anwendungsfall Fünf: Angereichertes Themen-Routing

Die flexible Topic-Architektur von Kafka, die es ermöglicht, die eingehenden Daten in viele Topics zu platzieren. Diese Flexibilität bedeutet, dass eingehende Daten mithilfe von maschinellem Lernen und Mustererkennung weitergeleitet/umgeschaltet werden können. Abbildung 9 zeigt, wie rohe Netzwerkpakete erfasst werden (PCAPS). Während die Pakete erfasst werden, kann ein komplexer Musterabgleich mit PCRE-Ausdrücken eine Weiterleitung zu den entsprechenden Topics vornehmen. Dadurch können die Kafka-Konsumenten angereicherte Themen abonnieren und eine Reinigungsphase umgehen. Bei vielen Cyber-Analyseanwendungen führt die Verarbeitung zu einer 1000-fachen Verbesserung der Cyber-Operationen pro Watt, basierend auf Untersuchungen, die von DOE Sandia & Lewis Rhodes Labs veröffentlicht wurden.

BittWare 385A Cloudera/Intel Beispiel

Die BittWare 385A bietet zwei Netzwerk-Ports, die jeweils bis zu 40Gbe/sec unterstützen. Diese Karte in NIC-Größe kann eine bestehende NIC/CPU-Kombination ersetzen, um bestehende Kafka-Netzwerke erheblich zu beschleunigen und den Stromverbrauch zu senken.

Dies wurde von Cloudera und Intel verifiziert, um das Streaming von Kafka zu Spark zu beschleunigen und gleichzeitig die Datenanreicherung auf dem FPGA durchzuführen (Abbildung 9).

Abbildung 9 Angereicherte Daten mit 385A

In der obigen Demonstration haben wir Motorgeräuschsignaturen als Eingangsdatenstrom gewählt. Sie werden über eine UDP-Offload-Engine aufgenommen, ausgelagert und in die OpenCL-Umgebung der Karte gestellt. Der auf der Karte laufende OpenCL-Code führt eine Echtzeitformatierung des eingehenden Datenstroms durch. Anschließend führt er eine FFT und eine Merkmalsextraktion durch und klassifiziert das Signal als "normal" oder "abnormal" auf der Grundlage eines Vergleichs mit bekannten Signaturen der Engine. Dieses zusätzliche Datenbit wird zusammen mit der FFT der Motorsignale per DMA zur weiteren Verarbeitung an Kafka weitergeleitet.

Dieses Beispiel zeigt auch die Flexibilität der von OpenCL generierten Bibliotheken, die auf eingehende Streaming-Daten angewendet werden können. Dies bietet dem Endnutzer einen immensen Spielraum, um sehr anwendungsspezifische Formen der Datenanreicherung oder Datenfilterung einzubeziehen.

520N: 100 Gbe mit Stratix10

Die vier Netzwerkanschlüsse des BittWare 520N ermöglichen die Unterstützung einer Reihe von seriellen E/A-Protokollen mit einer Geschwindigkeit von bis zu 10/25/40/100Gz. Mit einem Gesamtdurchsatz von bis zu 400 Gbe/s ist der 520N in der Lage, große Datenmengen anzureichern, bevor sie in ein Kafka-Framework ausgelagert werden.

Der 520N ist mit dem leistungsstarken Stratix 10 FPGA bestückt, der eine unvergleichliche Leistung bietet. Mit der Kombination aus hohem Durchsatz, großer Rechenleistung und Programmierbarkeit mit OpenCL ist es möglich, komplexe Datenanreicherung mit Streaming-Daten auf einem einzigen Gerät durchzuführen.

Abbildung 10 Angereicherte Daten mit 520N

Weitere Informationen und wie man bewertet

BittWare und Intel PSG sind Experten für die Kafka-Beschleunigung. BittWare hat aktuelle und geplante Produkte zur Beschleunigung von Apache Kafka mit Arria 10 und Stratix 10 FPGAs. Bitte kontaktieren Sie uns, um Ihre Anforderungen zu besprechen und eine beschleunigte Lösung zu entwickeln.