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.
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.
- Hadoop – Framework für Big Data
Haddop ist ein komplexes Framework, welches große Datenmengen auf zahlreiche Clusterknoten verteilen und berechnen kann. - Daraus besteht Hadoop
Hadoop besteht aus einem Cluster. Ein Knoten übernimmt die Steuerung (NameNode), die anderen die Berechnungen (DataNodes) im Cluster. - Lokaler Betrieb oder Cloud
Hadoop können Sie auch in der Cloud bei Microsoft Azure betreiben. - Ersetzt Hadoop Business Intelligence im Unternehmen?
Big Data-Lösungen wie Hadoop ergänzen Business Intelligence. Im Gegensatz zu BI-Lösungen, benötigen Big-Data-Lösungen keine perfekt zusammen gestellten Daten. - IBM General Parallel File System im Big Data-Einsatz
Verschiedene Clusterknoten können auf eine gemeinsame Datenbasis zugreifen, wenn GPFS im Einsatz ist. Unternehmen müssen beim Einsatz von Hadoop also nicht gezwungenermaßen auch auf HDFS setzen. - Hadoop in Amazon Web Services, Google Cloud Platform und Rackspace
Hadoop können Sie auch in Amazon Web Services betreiben. - Die wichtigsten Hadoop-Distributionen
Hortonworks Data Platform gehört zu den besonders bekannten Hadoop-Distributionen. - Hadoop erweitern – YARN und Co.
Auf dem Markt finden Sie zahlreiche Erweiterungen, mit denen sich der Funktionsumfang von Hadoop vergrößern lässt. - Sicherheit und Überwachung im Hadoop-Cluster
Apache Knox erhöht beispielsweise die Sicherheit im Hadoop-Cluster. Für die Überwachung der Hadoop-Infrastruktur eignet sich Apache Chukwa. - Oracle, IBM und Co. – Hadoop kommerziell erweitern
Oracle bietet zum mit Big Data SQL die Möglichkeit über SQL-Abfragen auf Big Data-Daten zuzugreifen. IBM InfoSphere BigInsights erweitert Hadoop um zahlreiche Möglichkeiten.
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
• 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)