Mit dem Aufkommen des Internet of Things (IoT) werden die Grenzen des traditionellen Cloud Computings deutlich. Sensoren am Rande des Netzwerks (Edge) können Teil von Applikationen mit hohen Quality of Service (QoS)-Anforderungen sein, wie beispielsweise niedrige Latenz oder hoher Durchsatz. Diese Anforderungen können durch Cloud Computing allein nicht erfüllt werden, bedingt durch dessen zentralisierte Natur und die physische Distanz zwischen Edge Devices und Rechenzentren. Daher wurde das Konzept des Edge Computings eingeführt, bei dem Teile der Berechnungen direkt auf Edge Devices ausgeführt werden, um die Latenz zu minimieren. Allerdings stehen Applikationen, die am Edge ausgeführt werden, im Vergleich zu reinen Cloud-Applikationen vor zusätzlichen Herausforderungen. Unzuverlässige, drahtlose Netzwerke können zu Fehlern wie Paketverlust, begrenzter Bandbreite oder sogar Netzwerkpartitionierung führen. Ressourcenbeschränkte Edge Devices können unter hoher Arbeitslast an ihre Grenzen stoßen, und Ausfälle oder Hardwaredefekte können zu Applikationsabstürzen führen. Die Auswirkungen solcher Fehler auf Edge-Applikationen wurden bisher noch nicht umfassend untersucht, und es mangelt an Daten, die den Zusammenhang zwischen Fehlern und QoS-Metriken veranschaulichen. In dieser Arbeit präsentieren wir einen Ansatz zur Evaluierung der Auswirkungen von Fehlern auf die QoS von Edge-Cloud-Applikationen mittels Fault-Injection-Experimenten. Zwei Applikationen aus dem Bereich der Edge AI Inference werden auf einem Kubernetes (k8s) Cluster deployt, der auf einem physischen Testbed bestehend aus mehreren Edge Devices betrieben wird. QoS-Metriken werden durch das Monitoring-System Prometheus erfasst, während Fehler mithilfe von Chaos Mesh injiziert werden. Die gesammelten experimentellen Daten werden zur Erstellung eines Datensatzes verwendet, der das Verhalten der Applikationen während verschiedener Fehlerszenarien veranschaulicht. Dieser Datensatz wird anschließend sowohl mit statistischen als auch mit Explainable Artifical Intelligence (XAI) Methoden analysiert, um die Muster zu identifizieren, die Fehler in den Metrikdaten verursachen. Zusätzlich trainieren wir ein Machine Learning (ML) Modell zur Fehlerklassifizierung auf dem Datensatz, um zu untersuchen, ob diese Muster zur Erkennung von Faults genutzt werden können. Die Ergebnisse zeigen, dass CPU-Stress, Network Packet Corruption und Bandbreitenbegrenzung zu einer Service Degradation in Form von längeren Antwortzeiten und reduziertem Durchsatz führen. Fehler wie Netzwerkpartition und Container-Ausfall verursachen einen vollständigen Service Failure, während Packet Duplication, Reordering und RAM-Stress keine merkbaren Auswirkungen auf die QoS der Applikationen haben. Unsere XAI-Analyse zeigt, dass zeitbasierte Metriken und Ressourcenauslastungsmetriken für die Erkennung von Fehlern besonders wichtig sind. Der Fehlerklassifikator erreicht eine Genauigkeit von 83%, was darauf hindeutet, dass die in den Monitoring-Daten gefundenen Muster ausreichend charakteristisch sind, um die meisten Fehler zu erkennen. Fehler, die ähnliche Muster in den Metrikdaten aufweisen, können vom Klassifikator nicht unterschieden werden. Unser Ansatz ermöglicht es Entwicklern von Edge-Applikationen zu identifizieren, welche Fehler die größten Auswirkungen auf ihre Apps haben. Dadurch können sie ihre Bemühungen gezielt auf Resilienzmechanismen gegen diese Fehlerszenarien konzentrieren.
Stefan Sepin (Sun,) studied this question.