US 11,836,538 B2
Heterogeneous graph generation for application microservices
Srikanth Govindaraj Tamilselvam, Chennai (IN); Utkarsh Milind Desai, Bangalore (IN); Sambaran Bandyopadhyay, Hooghly (IN); and Alex Mathai, Mumbai (IN)
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION, Armonk, NY (US)
Filed by International Business Machines Corporation, Armonk, NY (US)
Filed on Oct. 11, 2021, as Appl. No. 17/498,406.
Prior Publication US 2023/0111379 A1, Apr. 13, 2023
Int. Cl. G06F 9/54 (2006.01); G06F 16/28 (2019.01); G06F 16/901 (2019.01); G06N 3/02 (2006.01)
CPC G06F 9/541 (2013.01) [G06F 16/285 (2019.01); G06F 16/9024 (2019.01); G06N 3/02 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method, comprising:
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 the generating comprises identifying, using a neural network that is refined over time based upon historical generation of heterogenous graphs, relationships between application elements and a type of the relationships between the application elements, wherein each node within the heterogenous graph represents an application element and wherein each edge within the heterogenous graph represents a relationship, as identified at least in part using the neural network, between two nodes connected by the edge, wherein the application elements comprise direct elements of the application and indirect elements that are outside the application and call between the application;
identifying, utilizing the microservices advisor application and utilizing a graph clustering technique and based upon the edges within the heterogenous graph, 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 comprises a number of microservices for the application and application elements that should be included within each of the microservices.