Microservice Identification via Runtime Trace Clustering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing application modernization technologies face challenges in accurately identifying microservices from monolithic applications, as they fail to consider business contexts and high-order temporal dependencies, and struggle with collecting operational data and maintaining rich temporal information.
Innovation Solution
A system that uses runtime traces to train a model to learn cluster assignments and graph embeddings of classes in a monolithic application, employing these models to generate clusters and identify microservices, thereby facilitating improved functional grouping and application modernization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Extent of automation
If traditional application modernization technologies are used to identify microservices from monolithic applications, then the process can be automated, but the accuracy of microservice identification deteriorates due to failure to consider business contexts and high-order temporal dependencies
Solution Approach 1:
The patent introduces runtime traces as an intermediary data structure that captures business contexts and temporal dependencies during application execution. These traces serve as a mediator between the monolithic application code and the microservice identification process, enabling accurate clustering by preserving contextual information that traditional static analysis methods miss.
Solution Approach 2:
The patent replaces traditional mechanical/static code analysis methods with a dynamic machine learning-based clustering approach. Instead of relying on fixed rules or simple dependency graphs, the system uses trained models that process runtime trace data to automatically identify microservice boundaries, substituting rigid mechanical processes with adaptive intelligent systems.
2Measurement precision
If runtime traces are collected to capture business contexts and temporal dependencies, then the accuracy of microservice identification improves, but the complexity of data collection and processing increases
Solution Approach 1:
The patent performs preliminary actions by instrumenting the monolithic application code beforehand to automatically capture runtime traces during normal execution. This preprocessing step collects all necessary business context and temporal dependency information in advance, transforming complex raw execution data into structured trace formats that are easier for clustering algorithms to process later.
Solution Approach 2:
The patent creates copies of the monolithic application's runtime behavior in the form of trace data structures. Instead of directly analyzing the complex original execution flow, the system generates simplified copy representations (traces) that preserve essential business context and temporal relationships, making the data more manageable for subsequent clustering operations.
3Productivity
If static code analysis is used to identify microservices, then the process is simple and fast, but it fails to capture business contexts and temporal dependencies resulting in poor functional grouping
Solution Approach 1:
The patent transitions from static code analysis to dynamic runtime trace-based analysis. Instead of examining fixed source code structures, the system captures actual execution behavior dynamically, allowing the identification process to adapt to real business contexts and temporal patterns that only manifest during runtime, thereby improving functional grouping accuracy.
Data Source
AI summary
Systems, computer-implemented methods, and computer program products to facilitate generation of microservices from a monolithic application based on runtime traces are provided. According to an embodiment, a system can comprise a memory that stores computer executable components and a processor that executes the computer executable components stored in the memory. The computer executable components can comprise a model component that learns cluster assignments of classes in a monolithic application based on runtime traces of executed test cases. The computer executable components can further comprise a cluster component that employs the model component to generate clusters of the classes based on the cluster assignments to identify one or more microservices of the monolithic application.


