Deutsch Intern
Chair of Computer Science II - Software Engineering

MicroGenerator: Transfer Learning for Microservice Architectures (DFG)

01/01/2024

MicroGenerator is a novel framework designed to unlock the potential of transfer learning for microservice architectures. By automating the creation and benchmarking of synthetic microservice applications using a library of reusable building blocks, it addresses the lack of large training datasets—a key barrier to applying transfer learning in areas like autoscaling, energy-efficient placement, and resource saturation detection.

Description: 

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.

People involved: Samuel Kounev, Yannik Lubas, Ivo RohwerMartin Sträßer

Project start: 2024

Project end:  2027

Back