Die Zukunft von Data Analytics

Kubernetes und Serverless erobern Enterprise Analytics

29.11.2017
Von 
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.
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.
  • Data Analytics ist oftmals eine schwerwiegende Angelegenheit und kann in verteilten Teams zu Problemen führen.
  • 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 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.

Die schnelle Analyse großer Datenmengen war in Unternehmen schon immer eine Herausforderung.
Die schnelle Analyse großer Datenmengen war in Unternehmen schon immer eine Herausforderung.
Foto: solarseven - shutterstock.com

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.

Einsatz von Container-Technologie
Einsatz von Container-Technologie
Foto: Crisp Research

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

  • 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.

Kernelemente von Spark und die Ingetration von Kubernetes als neuer Cluster Manager
Kernelemente von Spark und die Ingetration von Kubernetes als neuer Cluster Manager
Foto: Crisp Research 2017