Evolution von Apache Storm zu Heron

Datenströme nach Hadoop richtig kanalisieren

Björn Böttcher ist Senior Analyst und Data Practice Lead bei Crisp Research mit dem Fokus auf Analytics, BI, datenbasierte Geschäftsmodelle und Künstliche Intelligenz. Mit mehr als 10 Jahren Berufserfahrung in der IT und einem wissenschaftlichen Hintergrund und Fokus stehen moderne Lösungen mit praktischem Nutzen im Fokus seiner Betrachtung.

Datenströme sind von entscheidender Bedeutung für datenbasierte Geschäftsmodelle. Ohne einen kontinuierlichen Fluss von Daten haben Anwendungsfälle oft nur wenig Chancen, sich zu einem Produkt zu entwickeln. Für die Echtzeitanalyse von Daten gibt es mittlerweile am Markt jedoch einige interessante Optionen.

Eine der wichtigsten Streaming-Lösungen ist die von Nathan Marz konzipierte und mittlerweile unter dem Dach der Apache Foundation offiziell zum Projekt erklärten Lösung mit dem Namen "Storm". Diese verspricht Anwenderunternehmen eine robuste, verteilte und fehlertolerante Verarbeitung von Echtzeitdaten in dynamisch definierbaren Topologien.

Anwendungsgebiete

Wenn Unternehmen Daten aus dem Telematik-Bereich, Informationen von Maschinen in Echtzeit oder generell Nachrichten in kurzer Zeit verarbeiten möchten, dann stellt sich ihnen die Frage, wie sich eine Transformation oder Anreicherung dieser Daten möglichst noch vor der Speicherung selbst abbilden lässt. Das Mittel der Wahl ist es, in diesem Fall eine echtzeitfähige Streaming-Technologie zu verwenden. Diese Technologien ermöglichen es, Daten, während sie in das System fließen, mit einem Mehrwert anzureichern. Dies kann eine einfache Aggregation von gefahrenen Kilometern eines Lkws sein oder die Laufzeit von Maschinen oder anderen Komponenten einer industriellen Anlage. Ein zusätzlicher Mehrwert entsteht, wenn diese Daten auch direkt mit historischen Daten, Bestandsdaten oder mit Kundendaten ergänzt beziehungsweise verglichen werden können.

Exemplarischer Datenfluss in einer Storm Topologie
Exemplarischer Datenfluss in einer Storm Topologie
Foto: Crisp Research AG

Die fertigen Daten werden direkt in einem skalierbaren Datenspeicher abgelegt und können dann direkt mit Hilfe von Dashboards visualisiert oder auf mobilen Endgeräten abgerufen werden.

Tauglichkeit von Storm im Unternehmensumfeld

Sobald zu analysierende Daten in einem Unternehmenskontext anfallen, gibt es schnell Fragestellungen hinsichtlich:

• Sicherheit

• Skalierbarkeit & Ressourcenmanagement

• Support

• Entwicklungsstatus des Projekts ("Open Source")

• Service-Level-Agreements (SLAs)

• Integrationsfähigkeit mit bestehenden Systemen

• Wartbarkeit

Ein Unternehmen muss sich beim Einsatz von modernen, und gerade immer häufiger auch aus dem Open-Source-Umfeld stammenden Technologien sicher sein, dass diese bereits die entsprechende Reife erlangt haben, um dauerhaft und nachhaltig eingesetzt werden zu können. Apache Storm bietet an dieser Stelle seit dem vergangenen Jahr alle entsprechenden Möglichkeiten zur Integration in ein sicheres Unternehmensumfeld. Mit der, in der Version 0.10.0 hinzugefügten, Kerberos-Integration bietet Storm auch ein probates Mittel zur Absicherung der Technologie innerhalb des eigenen Unternehmens. Ferner ist damit eine reibungsfreiere Integration in eine gesicherte Hadoop-Plattform einfacher geworden, um zum Beispiel die Integration von und mit HBase oder Kafka zu gewährleisten.

Marktverbreitung von Storm

Unternehmen wie Microsoft, Spotify, Twitter und Yahoo! nutzen Storm-Technik ebenso wie auch immer mehr deutsche Unternehmen aus verschiedenen Branchen. Hortonworks, als einer der großen Hadoop-Plattform-Anbieter, unterstützt Apache Storm direkt durch Ambari - ein Tool, mit dessen Hilfe sich Hadoop-Cluster einteilen, steuern und beobachten lassen - und integriert damit diese Streaming-Technologie in das eigene Produktportfolio.

Eine gehostete Cloud-basierte Lösung ist ebenfalls von Microsoft verfügbar, als Bestandteil des Azure Portfolios, der Microsoft-eigenen Cloud-Plattform. Innerhalb von Azure wird die Technologie als verwaltetes HDInsight-Cluster angeboten und kommt auch mit Beispielanwendungen daher. Die Skalierung des Clusters ist dabei relativ elegant gelöst und die Implementierung der eigenen Applikation kann zusätzlich zu der nativ unterstützten Umsetzung in Java auch in C# erfolgen, wodurch Microsoft-nahen Unternehmen eine zusätzliche Möglichkeit geboten wird. Ebenso ist eine Kombination aus beiden Sprachen möglich.

Fallstricke

Neben den vielen Vorteilen von Apache Storm gibt es jedoch auch einige Nachteile, welche sich oftmals erst in der direkten Nutzung ergeben und vorher leider ohne Erfahrung nicht erkennbar sind. Während die Skalierbarkeit des Systems kein Problem darstellt, ist das Debuggen eine der mühseligsten und abenteuerlichsten Herausforderungen. Nicht nur, dass verteilte Systeme per se eine hohe Komplexität in der Suche nach Fehlern mitbringen, auch die Möglichkeiten der Fehlersuche sind sehr stark eingeschränkt. Beim Auftreten von Fehlern muss man schnell in der Lage sein, die Ursache zu identifizieren.

Hinsichtlich Apache Storm kann dies mit einer Veränderung der Menge der in das System fließenden Daten zusammenhängen oder mit fehlerhaftem Code beziehungsweise fehlerhafter Hardware. Da sich in Storm viele Komponenten einer Topologie einen Prozess teilen, ist es oftmals schwierig die Ursache zu ergründen. Weiterhin benötigt Storm dedizierte Hardware mit viel Arbeitsspeicher, welche zwangsläufig zu einer ineffizienten Nutzung des Clusters führt und auch bei der Skalierung problematisch werden kann.

Dementsprechend gestaltet sich auch die Bereitstellung und Wartung von Maschinen als eine schwierige Angelegenheit. Effizienz in der Auslastung von Ressourcen ist immer direkt mit den Kosten von Infrastruktur gekoppelt und damit ein erstrebenswertes Ziel, welches unter Storm indes schwer zu erreichen ist. All die zuvor angeführten Fallstricke machen es für Anwenderunternehmen nicht gerade einfach, im produktiven Einsatz eine Storm-Topologie zu nutzen.

Evolution von Storm

Der größte Nutzer von Storm ist Twitter. Das Unternehmen hatte im Juli 2011 Nathan Marz samt seiner Firma Backtype akquiriert. Bei Twitter leitete Marz ein Entwickler-Team, das wichtige Kern-Infrastruktur entwickelte und betreute - unter anderem Storm. Im März 2013 verließ Marz Twitter und gründete ein eigenes Unternehmen, das sich momentan allerdings noch im Stealth-Modus befindet.

Da Twitter zunehmend an Grenzen stieß und die Fehlersuche ein sehr hartes Stück Arbeit ist, wurde ein neuer Ansatz gewählt, um die Stärken von Storm weiterhin nutzen zu können und die Schwächen zu eliminieren. Das dabei entstandene Produkt trägt den Namen "Heron" und wird vermutlich dieses Jahr noch als Open-Source Projekt veröffentlicht werden. Die neue Lösung versucht, ein sauberes Mapping von logischen Einheiten auf physikalische Ressourcen oder Prozesse zu ermöglichen und eine Nutzung und Teilung von Clusterressourcen mit anderen Technologien zu gewährleisten. Einzelne logische Komponenten werden nun als einzelne Tasks ausgeführt, wodurch eine effizientere Fehleranalyse ermöglicht wird.

Ferner ermöglicht das neue Design eine genauere Lokalisierung der Fehlerstelle innerhalb der Topologie. Dies wird durch eine bessere Bereitstellung von Metriken aus der laufenden Topologie ermöglicht. Während in Storm nur eine sehr grobe Spezifikation der zu verwendenden Ressourcen möglich ist, bietet Heron eine sehr feingranulare Zuteilung von Ressourcen, welche es einfacher macht, eine übermäßige Ressourcenzuteilung zu verhindern. Durch die Bereitstellung von je einem Topologie-Master je ausgeführter Anwendung, ist die Gefahr, eine andere Topologie bei einem Fehlverhalten zu beeinflussen, beseitigt.

In Storm hatten Anwender nur zwei Alternativen: man konnte "die Daten fließen lassen" oder "die Daten nicht fließen lassen" - also eine binäre Möglichkeit zur Datenflusssteuerung. Innerhalb von Heron ist nun eine dynamische Anpassung der Datenrate möglich. Diese Eigenschaft hilft auch bei der Migration auf neue Maschinen oder beim Upgrade der bestehenden.

Aussicht und Empfehlung für den Chief Data Officer

Der von Twitter präsentierte Heron-Ansatz bietet ein sehr durchdachtes und auf viel Erfahrung gebautes Architekturmodell, welches eine sinnvolle Evolution von Storm darstellt. Die Adaption bestehender Applikationen ist durch die API-Kompatibilität gewährleistet und ein weiterer großer Pluspunkt. Zusammen mit der neuen Analysefähigkeit und einer übersichtlichen UI bietet Heron einen soliden Ansatz für die nächste Generation von Streaming mittels Storm-Technologie.

Unternehmen, die beispielsweise aus den Bereichen

• Industrie 4.0

• Telematics

• Healthcare

eine Streaming-Lösung im eigenen Hause umzusetzen möchten, können neben Storm im Open-Source-Umfeld ebenso das momentan viel beachtete Spark Projekt evaluieren. Um mit proprietären Lösungen eine Streaming-Applikation umzusetzen, können Unternehmen auf eine der folgenden Lösungen setzen:

• Apama Streaming Analytics (Software AG)

• HANA Smart Data Streaming (SAP)

• InfoSphere Streams (IBM)

• Streambase (TIBCO)