Skalierbare Verarbeitung von gigantischen Datenmengen

 

Studentische Projektleitung: Christopher Sieh (Medieninformatik)

Projektteam:

  • Kai Marco Krießmann (Technische Informatik)
  • Lucca Emilian Oberhößel (Medieninformatik)
  • Mathias Pries (Medieninformatik)

Modul: Software Engineering

Betreuer:

  • Prof. Dr. Rainer Roosmann (Hochschule Osnabrück),
  • Eyk Haneklaus (ROSEN Gruppe)

In Kooperation mit: ROSEN Gruppe, Lingen (Ems)

 

ROSEN bietet als weltweit führender Anbieter innovative, zuverlässige und wettbewerbsfähige Lösungen für verschiedenste Industrien wie Öl und Gas, Energie, Prozess, Bergbau, fertigende Industrie, Telekommunikation und Transport. Das Unternehmen sorgt dafür, dass die Sicherheit von unterschiedlichsten industriellen Anlagen gewährleistet wird. Dazu gehören unter anderem Pipelines, Tanks und Druckbehälter ebenso wie Windkraftanlagen, Züge, Antennenmaste und vieles Weitere mehr.

Am Forschungs-, Entwicklungs- und Fertigungsstandort in Lingen (Ems) beschäftigt sich die ROSEN Gruppe unter anderem mit der Entwicklung von Software und Algorithmen, lotet die Möglichkeiten von künstlicher Intelligenz aus und engagiert sich in den Feldern Machine  Learning, Virtual und Augmented Reality sowie Datenauswertung. Eben jene Auswertung arbeitet mit sehr großen Datensätzen (ggf. mehrere Terabytes), die möglichst schnell und effizient prozessiert werden müssen.

Die bisher verwendete Lösung ist über Jahre gewachsen und setzt eine große Menge an Windows PCs voraus. Dabei bieten aktuelle Technologien neue Möglichkeiten. Auf Basis der Neuerungen des Cloud Computings und mit den spezielleren Anforderungen der ROSEN Gruppe entwickeln die vier Studenten eine moderne Lösung für das Problem.

Mit dem Fokus auf Skalierbarkeit in der Cloud werden etablierte Tools und Patterns aus der Industrie angewendet, um eine speziell für die Nutzung bei der ROSEN Gruppe optimierte Lösung zu entwickeln.

Die von den Studierenden umgesetzte Software zur Verteilung der Berechnungen bietet den Mitarbeitern die Möglichkeit, eine Aufgabe zu starten, die anfangs in eine Warteschlange von RabbitMQ gelegt wird. RabbitMQ fungiert hier als Vermittler zwischen den einzelnen Knoten. Alle Teilnehmer des Systems, inklusive der genannten Knoten, werden mit Docker  in Containern organisiert. Wenn die Warteschlange besonders klein ist, merkt Kubernetes das über Meldungen an Prometheus,  welches von Kubernetes überwacht wird, und fährt nicht benötigte Container herunter.

Wenn die Warteschlange hingegen eine sehr hohe Anzahl an Aufgaben enthält, werden zusätzliche Container hochgefahren, die sich selbstständig bei RabbitMQ anmelden und Aufgaben zugewiesen bekommen. Die Container müssen dabei Reihenfolge und Prioritäten verwalten und geben den Fortschritt der Berechnung an Prometheus weiter, der dann zusammen mit vielen anderen Metriken über Grafana visuell aufbereitet wird, um den Mitarbeiterinnen und Mitarbeitern eine genaue Übersicht über den Status der Aufgaben zu geben. Grafana dient hier auch als Schnittstelle zur Überwachung der Auslastung und der Vorgänge des gesamten Systems.

Projektbilder

© ROSEN
© ROSEN
© ROSEN
© ROSEN