US 11,726,778 B2
Translating clusters of a monolith application to microservices
Giriprasad Sridhara, Bangalore (IN); Srikanth Govindaraj Tamilselvam, Chennai (IN); and Shivali Agarwal, Ghaziabad (IN)
Assigned to International Business Machines Corporation, Armonk, NY (US)
Filed by International Business Machines Corporation, Armonk, NY (US)
Filed on Sep. 29, 2021, as Appl. No. 17/489,280.
Prior Publication US 2023/0094887 A1, Mar. 30, 2023
Int. Cl. G06F 8/72 (2018.01); G06F 9/54 (2006.01); G06F 8/75 (2018.01)
CPC G06F 8/72 (2013.01) [G06F 8/75 (2013.01); G06F 9/547 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method, the method comprising:
obtaining a plurality of candidate microservices for refactoring a monolith application, each candidate microservice comprising one or more of a plurality of software classes of the monolith application;
analyzing the monolith application to identify one or more software functions in the plurality of software classes to expose as one or more application programming interfaces;
automatically isolating non-overlapping software functions of the monolith application between the plurality of candidate microservices, wherein the isolating comprises: determining that one or more software functions of a given one of the plurality of software classes are used by other software classes from at least two different ones of the plurality of candidate microservices; and creating, for each of the at least two different candidate microservices, a respective additional software class comprising at least a portion of the one or more software functions associated with the corresponding one of the at least two different candidate microservices;
converting source code corresponding to the identified one or more software functions into a standardized application programming interface format based at least in part on the isolating; and
using the converted source code to generate a plurality of deployable microservices corresponding to the plurality of candidate microservices;
wherein the method is carried out by at least one computing device.