Project Details
MicroGenerator: Enabling Transfer Learning for Microservice Architectures
Applicant
Professor Dr.-Ing. Samuel Kounev
Subject Area
Software Engineering and Programming Languages
Term
since 2024
Project identifier
Deutsche Forschungsgemeinschaft (DFG) - Project number 536362030
In recent years, transfer learning has gained increasing popularity for many traditional software engineering problems. Examples include mining image-based software artifacts, software effort estimation, API specification extraction, software defect prediction, software requirement classification, source code modeling, change-proneness prediction, code smell detection, bug localization, and log anomaly detection. However, transfer learning has found little application in the runtime management of software systems, despite the fact that the current trend towards microservice architectures opens up many potential applications of transfer learning. Examples of areas in which transfer learning could be beneficial are autoscaling, resource saturation detection, energy-efficient placement, instance sizing, load balancing, or architecture optimization. The main reason for the current inapplicability of transfer learning in the context of microservices is the absence of a large corpus of training data. For source-code-centric tasks, such as defect prediction or code smell detection, there is a large corpus of open-source projects available upon which transfer learning methods can be trained. For microservices, there are only few open-source microservice applications available, and they are time-consuming to set up and benchmark. Therefore, there is currently no sufficiently large data set available to enable transfer learning for microservice applications. To address this issue, we propose MicroGenerator, a framework for the automated generation and benchmarking of synthetic microservice applications. First, we will implement a large set of microservice building blocks that implement common microservice tasks, such as input validation, database read and write operations, different types of business logic, and API calls. These microservice building blocks will then be combined to generate a virtually infinite number of realistic microservice applications with an automated benchmark harness. This approach enables the generation and benchmarking of an arbitrarily large number of microservice applications, which will empower a new generation of transfer learning approaches for microservice applications. We will showcase the potential of transfer learning enabled by MicroGenerator in the following three domains by extending existing approaches with transfer learning capabilities: resource saturation detection, energy-efficient placement, and service instance resource sizing.
DFG Programme
Research Grants