Data Analytics ist oftmals eine komplexe Angelegenheit und kann in verteilten Teams zu Problemen führen. Eine Standardisierung auf Seiten der Tools könnte helfen. [...]
Daten zu analysieren ist für Unternehmen schon immer von großer Bedeutung gewesen. Ob es nun die klassischen Excel Spreadsheets sind, Hadoop-Plattformen oder Spark-basierte Cluster: wichtig ist es immer, die entsprechenden Analysen möglichst schnell und zuverlässig durchzuführen. Doch genau da liegen in der Regel auch schon viele Probleme.
Wenn mehrere Akteure zusammen auf einer Plattform arbeiten, dann gibt es immer wieder Probleme, die unterschiedlichste Ursachen haben können. Dies kann das nicht ausreichende Wissen von Data Scientists sein, ein schlecht konfiguriertes Cluster vom Data Engineer, nicht korrekt und genau spezifizierte Anwendungsfälle vom Business etc. Die wichtigen Aufgaben, die erledigt werden müssen, um die Analyse von Daten durchführen zu können, sind immer identisch. Dennoch liegt der Fehler oftmals im Detail. Das Problem ist hierbei jedoch meist, dass heutzutage dann mehr als ein Team in der Arbeit blockiert ist, weil das Cluster nicht mehr reagiert, da alle Ressourcen in Verwendung sind. Dies ist gerade in großen und verteilten Teams ein sehr schwieriges Problem. Abhilfe schaffen können einige neuere Ansätze.
Spark – Mainstream für Data Analytics
Spark hat sich über die letzten Jahre hinweg neben R und Python als eine der Hauptprogrammiersprachen für Datenanalyse etabliert. Viele Open-Source-Projekte und Meetups, aber auch viele Unternehmen setzen auf Spark oder bieten eigene Dienste rund um das Ökosystem an. Die Sprache besitzt viele Vorzüge und eine Nähe zu Python und Java, was für die Adaption nicht unwichtig war. Mit Spark kann man auch viele skalierbare Machine Learning-Modelle implementieren, die oftmals auf anderen Frameworks nicht nativ vorhanden sind oder nicht skalieren. Hinzu kommt, dass man auch moderne Machine-Learning- oder Deep-Learning-Frameworks auf Spark laufen lassen kann, wie beispielsweise TensorFlow.
Freiheit und Flexibilität
Wer seine Daten immer noch gerne innerhalb der eigenen vier Wände halten möchte oder muss und nicht auf die Public Cloud setzt, der hat im eigenen Rechenzentrum oftmals die Qual der Wahl, wie man die vielen neuen und auch älteren Anwendungen betreiben soll. Eine gängige Wahl ist es dabei, die Anwendungen in Microservices zu konzipieren und diese dann in Containern zu betreiben.
Die Orchestrierung und das Management von Containern sind zunehmend in den Händen von Kubernetes. Das Open-Source-Projekt ist eines der heißesten Projekte seit Jahren. Daher gibt es mittlerweile ein großes Ökosystem rund um Kubernetes und ebenfalls viele Dienstleister, die beim Aufbau und Betrieb – auch lokal in Deutschland – helfen. Daher ist die Idee relativ naheliegend, dass wenn man sowieso schon ein oder mehrere Kubernetes Cluster betreibt, diese dann auch entsprechend für die Analyse von Daten mittels Spark nutzt. Die Vorteile sind offensichtlich: einheitliche Infrastruktur-Administration, automatische Skalierung, bessere Ausnutzung der Ressourcen, bessere Isolation der einzelnen Datenanalysen sowie Logging, Monitoring, Quota-Management, Zugriffskontrolle etc.
Daher ist Kubernetes als eine weitere Clustermanagement-Lösung neben YARN und Mesos eine sinnvolle Ergänzung. Das Open-Source-Projekt Apache Spark on Kubernetes hat Kubernetes als Clustermanager integriert, wodurch es möglich ist, Spark Jobs auf einem Kubernetes-Cluster auszuführen. Ein anderes Projekt (apache-spark-on-k8s/kubernetes-HDFS) sorgt aktuell für die Integration von HDFS, um den Zugriff auf die Daten unabhängig vom einzelnen Job global verfügbar zu machen. Eine der wichtigen Hürden, die Datenlokalität, ist dabei bereits genommen worden.
Serverless für Data Analytics
Serverless Computing ist mittlerweile ein viel genutztes Buzzword. Wenn man eine Facette von Serverless betrachtet, die sich um die Ausführung von Funktionen bemüht, dann ist es naheliegend, einen Dienst zu etablieren, der auf dieser Ebene eine Abstraktion für die Nutzer schafft, damit diese dann direkt eine Analyse auf der Plattform durchführen können, ohne viel Overhead zu haben für die Administrierung oder das Verwalten und Anfordern von Ressourcen. Die Plattform sollte nach dem Verständnis eine Möglichkeit zur Verfügung stellen, welche es erlaubt, einfach und effektiv zu arbeiten und dies ohne Ausfälle oder Blockierungen. Gleichzeitig muss die Sicherheit entsprechend hoch gehalten werden, damit eben nicht jeder Nutzer Zugriff auf alle Daten hat.
Die Firma Databricks hat genauso diese Art der Plattform entwickelt und bereitgestellt. Damit ist eine vollkommen neue Qualität und Effektivität mittels einer Serverless-Plattform möglich. Die Frage bleibt, ob und wann es auch Open-Source-Projekte geben wird, die dieses Szenario auf anderen Cloud-Umgebungen oder im eigenen Rechenzentrum ermöglichen.
Fazit
Beide beschriebenen Ansätze sind für die Arbeit mit Daten ein wichtiger und richtiger Schritt in die Zukunft von Plattformen. Unternehmen sollten den eigenen Mitarbeitern eine Möglichkeit geben, möglichst effektiv und homogen zu arbeiten. Damit sind beide Lösungsansätze für Unternehmen sehr interessant.
Beim Kubernetes-basierten Ansatz muss man aktuell noch mit einigen fehlenden Features leben oder selbst Hand anlegen. Bei der Lösung von Databricks ist man aktuell noch auf einen Anbieter fokussiert. Jedoch sollte man im Hinterkopf haben, dass die Algorithmen und Programme nicht spezifisch für die Plattform sind, sondern generisch auch auf anderen Umgebungen ausführbar sind. Im Sinne der Demokratisierung von Daten kann man also nur hoffen, dass diese beiden Projekte entsprechend weiter vorangetrieben werden.
* Björn Böttcher ist Senior Analyst und Data Practice Lead bei Crisp Research.
Be the first to comment