Adaptive Monitoring for Safe DevOps

Adaptive Monitoring for Safe DevOps

DevOps
DevOps

Kontext

Um der beschleunigten Entwicklung von Software für Fahrzeuge gerecht zu werden wird aktuell am Einsatz von sogenannten DevOps-Methoden geforscht. DevOps kombiniert Entwicklung (Development - Dev) mit dem Betrieb (Operation – Ops) in einem geschlossenen Kreislauf, um kontinuierlich Software auszuliefern, zu updaten und zu verbessern. Ein elementarer Schritt im „Ops“-Teil dieser Vorgehensweise ist das Monitoring der betriebenen Systeme. Automatisierte Fahrzeuge produzieren durch die Vielzahl an Sensoren und Software-Komponenten eine Unmenge an Daten. Es ist jedoch nicht sinnvoll, kontinuierlich alle diese Daten zu sammeln, da sie nur in bestimmten Zeitpunkten relevante Informationen enthalten. Relevant ist hierbei eine Situation, die in einem nächsten „Dev“-Zyklus verbessert werden muss, z.B. eine falsche Klassifikation bestimmter Objekte durch ein Machine Learning-basiertes System. Das Monitoring muss daher adaptiv gestaltet sein, und nur dann Daten sammeln und in der Cloud speichern, wenn die Situation als relevant eingestuft wird. Am ITIV forschen wir dazu an Software-Systemen basierend auf ROS2 (Robot Operating System 2).

In dieser Arbeit soll eine bestehende Monitoring-Software zur adaptiven Sammlung von Fahrzeug-Daten erweitert werden. Ziel ist es, relevante Daten zwischenzuspeichern und weiterzuleiten, sobald eine relevante Situation auftritt. Der Zwischenspeicher soll als Ringspeicher umgesetzt werden, und als Plugin in die Monitoring-Software syslog-ng integriert werden. Darüber hinaus soll eine ROS2-Schnittstelle entwickelt werden, um die Relevanz einer Situation zu signalisieren. 

Ziele

  • Implementierung eines Ringpuffer-Speichers als Plugin für syslog-ng
  • Konzeption und Implementierung einer ROS2-Schnittstelle zur Adaption des Monitorings an die Relevanz der aktuellen Situation des Fahrzeugs
  • Test und Dokumentation der entwickelten Komponenten

Voraussetzungen

  • Interesse an DevOps
  • Fundierte Programmierkenntnisse (Python)
  • Zuverlässige und eigenständige Arbeitsweise