Heterogeneous Graph Generation for Microservice Partitioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Splitting a single application into microservices for hosting in a remote services environment is challenging due to varying techniques and the difficulty in determining optimal partitions, leading to inefficient resource utilization and management.
Innovation Solution
A microservices advisor application generates a heterogeneous graph of application elements, identifying direct and indirect relationships, and uses graph clustering techniques to recommend optimal microservice splits based on user-defined attributes and constraints, providing a systematic approach to splitting applications into manageable and scalable microservices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If an application is manually split into microservices, then the splitting process can be performed with human judgment, but the process becomes time-consuming and difficult to optimize
Solution Approach 1:
The system performs automatic microservice splitting using graph clustering algorithms and machine learning models, eliminating the need for manual human judgment. The application autonomously analyzes service dependencies, identifies optimal partitioning strategies, and generates microservice architectures without human intervention, thereby reducing time loss while maintaining high optimization quality.
Solution Approach 2:
The patent replaces manual mechanical analysis with automated computational systems. Graph clustering algorithms process service dependency data, and machine learning models predict optimal partitioning outcomes, substituting human cognitive processes with efficient computational mechanisms that operate faster and more consistently.
2Adaptability or versatility
If various techniques are used to split applications, then flexibility in approach is increased, but the complexity of determining optimal partitions increases
Solution Approach 1:
The system employs a universal graph clustering framework that can handle multiple types of service relationships and dependency patterns through a single unified approach. The machine learning model serves multiple functions by simultaneously analyzing various partitioning criteria and predicting optimal outcomes, reducing the need for separate complex procedures for each technique.
Solution Approach 2:
The system adjusts clustering parameters and machine learning model parameters dynamically based on the specific application characteristics and desired partitioning goals. By changing parameters such as clustering granularity, dependency weightings, and optimization objectives, the system adapts to different splitting techniques without requiring fundamentally different complex procedures.
3Manufacturing precision
If more analysis is performed to determine optimal microservice splits, then the quality of partitioning improves, but the computational resources required increase
Solution Approach 1:
The system performs preliminary analysis by building a graph representation of service dependencies before executing complex clustering algorithms. This preliminary structuring of data enables more efficient subsequent processing, as the graph format allows for optimized traversal and analysis routines that reduce overall computational resource requirements while maintaining high partitioning quality.
Solution Approach 2:
The machine learning model is trained on representative samples of microservice architectures rather than exhaustively analyzing every possible partitioning scenario. This partial action approach provides sufficiently high quality partitioning recommendations without the excessive computational resources that would be required for complete exhaustive analysis of all possibilities.
Data Source
AI summary
One embodiment provides a method, including: receiving information describing an application to be split into a plurality of microservices; identifying, utilizing a microservices advisor application, application elements of the application; generating, utilizing the microservices advisor application and from the application elements, a heterogenous graph, wherein each node within the heterogenous graph represents an application element and wherein each edge within the heterogenous graph represents a relationship between two nodes connected by the edge; identifying, based upon user input identifying preferences of relationships between nodes, groups of nodes within the heterogenous graph sharing a common attribute; and providing, from the microservices advisor application, a recommendation, based upon the identified groups of nodes, for splitting the application into microservices, wherein the recommendation includes a number of microservices for the application and application elements that should be included within each of the microservices.


