Förderjahr 2020 / Stipendien Call #15 / ProjektID: 5115 / Projekt: Improving Serverless Edge Computing for Network Bound Workloads
Wenn man ein System verbessern möchte, dann ist der erste Schritt selbstverständlich zu verstehen was genau verbessert werden soll. Wie man dem Titel meiner Arbeit leicht entnehmen kann geht es bei meiner Arbeit um die “Performance” von Serverless Edge Computing Systemen, aber das alleine bedeutet noch nicht besonders viel. Um hier wissenschaftlich zu arbeiten ist es notwendig Metriken zu definieren, also Eigenschaften die in Zahlen messbar sind, festlegen wie diese gemessen werden, und Evaluierungsszenarien entwerfen in denen überprüft wird inwiefern Änderungen am System die Metriken beeinflussen.
Was gemessen wird
Wenn wir von der Performance von Systemen, in diesem Fall Computersystemen und Software sprechen gibt es eine Reihe an Metriken die typischerweise unter dem Begriff Performance zusammengefasst werden: Speicherverbrauch, Prozessorauslastung, Startgeschwindigkeit, Anzahl der parallel verarbeitbaren Anfragen, Antwortgeschwindigkeit bei Anfragen, und die Verlässlichkeit was diese Werte betrifft. Abhängig vom System sind hierbei unterschiedliche Metriken relevant, und selbstverständlich interagieren diese miteinander: Software die effizient mit Berechnungsressourcen umgeht antwortet typischerweise auch schneller und kann mehrere Anfragen gleichzeitig bearbeiten als Software die das nicht tut.
Bei meiner Arbeit geht es spezifisch um die Antwortgeschwindigkeit bei Anfragen, aber indirekt dürfte auch die Anzahl an parallel verarbeitbaren Anfragen erhöht werden, wobei eine etwaige Verbesserung in diesem Bereich vom konkreten System und Einsatzzweck abhängt.
Wie gemessen wird
Die Geschwindigkeit in der Anfragen beantwortet werden zu messen ist aus einer praktischen Perspektive ausgesprochen einfach. Die Software, die zum Test eine Anfrage schickt speichert schlicht die Zeit zu der die Anfrage gesendet wird und wann die Antwort eintrifft. Daraus ergibt sich die gesamte Verarbeitungszeit. Selbstverständlich sprechen wir hier aber nicht von einzelnen Anfragen, sondern vielmehr von mehreren tausend, welche später analysiert werden. Für ein System dieser Art ist nicht nur die Zeit relevant in der Anfragen bearbeitet werden, sondern auch wie konsistent dies passiert, also wie groß die Varianz der Antwortzeiten ist. Typischerweise werden die Ergebnisse in Form von Histogrammen visualisiert, weil neben den Durchschnittswerten je nach Anwendung auch die Perzentile enorm wichtig sind. In diesem Kontext fällt häufig der Begriff SLA. Interessierte können hierzu bei Wikipedia mehr lesen.
Evaluierungsszenarien
Eines der wohl wichtigsten Szenarien sowohl für die Evaluierung, als auch um die Notwendigkeit der Arbeit aufzuzeigen kommt aus dem Kontext von Smart Cities. Viele Anwendungen in diesem Bereich bauen auf komplexen Videoanalysen auf, die innerhalb von kurzer Zeit beziehungsweise in Echtzeit durchgeführt werden müssen. Hierzu zählen insbesondere Systeme im Verkehrsbereich und im Kontext von “Connected Cars”. Diese Stellen klassische Einsatzbereiche von Edge Computing dar, und passen entsprechend auch zu Serverless Edge Computing.
Entsprechend ist das wohl wichtigste Evaluierungsszenario folgendes: Eine Reihe an Kameras erfasst Verkehrsgeschehen im Bereich einer Kreuzung, und sendet die Bilder bzw. kurzen Videos an ein Analysesystem, welches mögliche Objekte oder Gefahren erkennt und diese zurückmeldet. In der “Basis-Version” dieses Systems kommt Serverless Edge Computing mit einem zentralisiertem Gateway zum Einsatz wie es aktuell in Serverless Systemen funktioniert. Um die etwaigen Performance-Verbesserungen einer stärker dezentralisierten Architektur aufzuzeigen erfolgt ein weiterer Test mit der “verbesserten Version”, allerdings unter identischen Bedingungen was das Netzwerk, die Datenlast, und die Rechenkapazität betrifft.
Bei fortgeschrittener Implementierung wird sich weiter herauskristallisieren ob die ursprüngliche Version dieses Szenarios ausreichend ist, beziehungsweise welche weiteren Szenarien relevant sind um sowohl die wissenschaftlich relevanten Aspekte des vorgeschlagenen Systems aufzuzeigen, als auch zu demonstrieren, dass diese Aspekte in der Praxis zutreffen.