Detailseite
Projekt Druckansicht

MicroGenerator: Transfer-Lernen für Microservice-Architekturen

Fachliche Zuordnung Softwaretechnik und Programmiersprachen
Förderung Förderung seit 2024
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 536362030
 
In den letzten Jahren hat Transfer-Learning für viele traditionelle Software-Engineering Probleme zunehmend an Popularität gewonnen. Beispiele hierfür sind das Mining bildbasierter Softwareartefakte, Schätzung des Implementationsaufwands, Extraktion von API-Spezifikationen, Vorhersage von Softwarefehlern, Klassifizierung von Softwareanforderungen, Modellierung von Quellcode, Vorhersage der Änderungsanfälligkeit, Erkennung von Code-Smells, Fehlerlokalisierung und Erkennung von Log-Anomalien. Allerdings hat Transfer-Learning bisher nur wenig Anwendung im Management von Softwaresystemen zur Laufzeit gefunden, obwohl der aktuelle Trend zu Microservice-Architekturen viele potenzielle Anwendungen für Transfer-Learning eröffnet. Beispiele für Bereiche, in denen Transfer-Learning von Nutzen sein könnte, sind Autoskalierung, Erkennung von Ressourcensättigung, energieeffiziente Platzierung, Optimierung von Instanzgrößen, Loadbalancing oder Architekturoptimierung. Der Hauptgrund für die derzeitige Unanwendbarkeit von Transfer-Learning im Kontext von Microservices ist das Fehlen eines großen Korpus an Trainingsdaten. Für Quellcode-zentrierte Aufgaben, wie z.B. die Vorhersage von Defekten oder die Erkennung von Code-Smells, gibt es einen großen Korpus von Open-Source-Projekten, auf denen Transfer-Learning-Methoden trainiert werden können. Für Microservices gibt es nur wenige Open-Source-Microservice-Anwendungen, deren Einrichtung und Benchmarking zudem sehr zeitaufwändig ist. Daher gibt es derzeit keinen ausreichend großen Datensatz, der Transfer-Learning für Microservice-Anwendungen ermöglicht. Um dieses Problem zu lösen, schlagen wir MicroGenerator vor, ein Framework für die automatische Generierung und Benchmarking von synthetischen Microservice Anwendungen. Zunächst implementieren wir einen großen Satz von Microservice-Bausteinen, die gängige Microservice-Aufgaben wie Eingabevalidierung, Datenbankoperationen, verschiedene Arten von Geschäftslogik und API-Aufrufe implementieren. Diese Microservice-Bausteine können dann kombiniert werden, um eine praktisch unendliche Anzahl von realistischen Microservice-Anwendungen mit einem automatisierten Benchmark-Harness zu generieren. Dieser Ansatz ermöglicht die Generierung und das Benchmarking einer beliebig großen Anzahl von Microservice-Anwendungen, was eine neue Generation von Transfer-Learning-Ansätzen für Microservice-Anwendungen ermöglichen wird. Wir zeigen das Potenzial des von MicroGenerator ermöglichten Transfer-Learnings in den folgenden drei Bereichen, indem wir bestehende Ansätze um Transfer-Learning-Fähigkeiten erweitern: Erkennung von Ressourcensättigung, energieeffiziente Platzierung und Optimierung von Instanzgrößen.
DFG-Verfahren Sachbeihilfen
 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung