- Data Analytics ist oftmals eine schwerwiegende Angelegenheit und kann in verteilten Teams zu Problemen führen
- Der IT Betrieb hat immer mehr administrative Aufgaben zu erfüllen und steht einer zunehmenden Komplexität gegenüber. Eine Standardisierung ist hier zumindest von Seite der Data Analytics Tools mehr als wünschenswert
- Kubernetes entwickelt sich mit Containern immer mehr zu einer Allzweckwaffe für Problemlösungen im IT Umfeld. Mit Spark und HDFS erobern nun auch andere Anwendungsszenarien die Orchestrierungs- und Management-Lösung
- Serverless setzt seine Evolution und die Transformation des Cloud-Geschäfts fort. Mit Databricks Serverless zieht nun erstmals auch ein Dienst für Data Scientists in diese Welt ein
Daten zu analysieren, ist für Unternehmen schon immer von großer Bedeutung gewesen. Ob es nun die klassischen Excel Spreadsheets waren bzw. 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 auf dem steinigen Weg zur Erkenntnis. 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 usw.. 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, da das Cluster nicht mehr reagiert, da alle Ressourcen in Verwendung sind. Dies ist gerade in großen und verteilten Teams ein sehr schwieriges Problem. Um genau solche Probleme zu adressieren, gibt es in der letzten Zeit Entwicklungen, die hier versuchen Abhilfe zu schaffen.
Spark – Mainstream für Data Analytics
Spark hat sich über die letzten Jahre hinweg neben R und Python als eine der Haupt-Programmiersprachen 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 bzw. 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 dabei meist die Anwendungen im Microservices zu konzipieren und diese dann in Containern zu betreiben.
Die Orchestrierung und das Management ist 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:
- einheitliches Infrastruktur-Administration
- Automatische Skalierung
- Bessere Ausnutzung der Ressourcen
- Bessere Isolation der einzelnen Datenanalysen
- 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-k8s/spark 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.
Kernelemente von Spark und die Integration von Kubernetes als neuer Cluster Manager
Spark und HDFS auf Kubernetes Nodes im Einsatz
Serverless für Data Analytics
Serverless 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, welches 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, wann und ob es auch Open Source-Projekte geben wird, die dieses Szenario ebenfalls auf anderen Cloud-Umgebungen oder im eigenen Rechenzentrum ermöglichen werden.
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 einiges fehlenden Features ausharren, bis diese umgesetzt worden sind 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.