IP Library › Granted Patent US 11,853,753
Granted Patent B1
US 11,853,753 · App. 17/409,448 · Granted Dec 26, 2023

Detection, presentation, and resolution of bottlenecks in monolith decomposition

Inventors: Vivek Chawda (Palo Alto, CA); Samartha Chandrashekar (Bellevue, WA); Sophia Tsang (Newark, CA)
Assignee: Amazon Technologies, Inc.
G06F8/77G06F8/433G06F11/34G06F8/72
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,853,753
App. No.
17/409,448
Filed
Aug 23, 2021
Granted
Dec 26, 2023
Kind
B1
Art Unit
2198
USPC
717/123
Abstract

Techniques are described for identifying resource bottlenecks in decomposing monolithic software applications as part of software modernization processes. An application modernization system constructs a graph model of a software application based on an analysis of application artifacts associated with the software application. The graph model includes nodes representing independent application components, and further includes edges representing identified dependency relationships among the application components. An application modernization system further generates application profile metrics associated with the identified dependencies, and weights derived from the metrics are applied to the nodes and/or the edges of the graph model to generate a weighted graph model that identifies the resource bottlenecks among the application components and the identified dependency relationships. The weighted graph model is transmitted to a computing device for display to a user.

Claims (55)

1. A computer-implemented method comprising:

receiving input representing a request to identify resource bottlenecks of a software application, the resource bottlenecks representing application components, or sets of application components, of the software application that are associated with high resource usage,

wherein the application components are to be migrated from a user computing environment to a cloud provider network;

obtaining application artifacts, including at least one of source code files, bytecode files, or intermediate language files, associated with the software application;

generating, based at least in part on the application artifacts associated with the software application, output representing a graph model including:

a plurality of nodes, wherein individual nodes represent different ones of the of the application components; and

a plurality of edges, wherein individual edges represent a dependency relationship between two application components of the application components;

obtaining application profile metrics associated with the application components and the dependency relationships;

deriving values for predefined thresholds from predefined constraints associated with computing resources in the cloud provider network to which the application components are to be migrated;

identifying the resource bottlenecks among the application components and the dependency relationships by comparing the application profile metrics with respective ones of the predefined thresholds and determining that at least a subset of the application components and the dependency relationships exceed the respective ones of the predefined thresholds;

generating output representing a weighted graph model including the resource bottlenecks by applying the resource bottlenecks to the graph model;

generating output representing labels for the weighted graph model, the labels identifying computing resources affected by the resource bottlenecks and indicating that an identified group consumes a stated amount of the computing resources; and

transmitting the weighted graph model to a computing device for display.

2. The computer-implemented method of claim 1 , the labels further identifying nodes from among the nodes corresponding to the resource bottlenecks and/or edges from among the edges corresponding to the resource bottlenecks.

3. The computer-implemented method of claim 1 , further comprising generating output representing color coding indicating different types of the resource bottlenecks, a first type of the different types of the resource bottlenecks corresponding to a first color, and a second type of the different types of the resource bottlenecks corresponding to a second color different from the first color.

4. A computer-implemented method comprising:

obtaining application artifacts, including at least one of source code files, bytecode files, or intermediate language files, associated with a software application;

generating, based at least in part on the application artifacts associated with the software application, output representing a graph model representing application components of the software application and dependency relationships among the application components of the software application, wherein the application components are to be migrated from a user computing environment to a cloud provider network;

obtaining application profile metrics associated with the application components and the dependency relationships;

deriving values for predefined thresholds from predefined constraints associated with computing resources in the cloud provider network to which the application components are to be migrated;

identifying resource bottlenecks among the application components and the dependency relationships by comparing the application profile metrics with respective ones of the predefined thresholds and determining that at least a subset of the application components and the dependency relationships exceed the respective ones of the predefined thresholds;

generating output representing labels for the weighted graph model, the labels identifying computing resources affected by the resource bottlenecks and indicating that an identified group consumes a stated amount of the computing resources; and

transmitting data representing the weighted graph model to a computing device.

5. The computer-implemented method of claim 4 , the labels further identifying nodes from among the nodes corresponding to the resource bottlenecks and/or edges from among the edges corresponding to the resource bottlenecks.

6. The computer-implemented method of claim 4 , further comprising generating output representing color coding indicating different types of the resource bottlenecks, a first type of the different types of the resource bottlenecks corresponding to a first color, and a second type of the different types of the resource bottlenecks corresponding to a second color different from the first color.

7. The computer-implemented method of claim 4 , the application profile metrics comprising a runtime profiling metric representative of at least one of CPU (Central Processing Unit) usage, memory usage, network bandwidth usage, storage bandwidth usage, a number of file handles, a number of open TCP (Transmission Control Protocol) handles or connections, a level of concurrency, a number of threads, or a custom metric.

8. The computer-implemented method of claim 4 , the predefined constraints comprising at least one of instance size limits or database rate limits.

9. The computer-implemented method of claim 4 , further comprising receiving input specifying the computing resources to which the application components are to be migrated.

10. The computer-implemented method of claim 4 , further comprising identifying the computing resources to which the application components are to be migrated based on an analysis of a current deployment of the software application.

11. The computer-implemented method of claim 4 , wherein the application components are to be migrated from a user computing environment to a cloud provider network, the method further comprising:

receiving, by a modernization service of the cloud provider network, input representing a request to identify subunits of the software application; and

sending, to a modernization agent of the user computing environment, data representing instructions to analyze the software application, the instructions causing the modernization agent to perform at least one of: obtaining the application artifacts associated with the software application, generating the output representing the graph model, obtaining the application profile metrics, identifying the resource bottlenecks, or generating the output representing the weighted graph model.

12. The computer-implemented method of claim 4 , the application artifacts being obtained by a modernization service of a cloud provider network, and computing resources provisioned by the cloud provider network performing at least one of: generating the output representing the graph model, obtaining the application profile metrics, identifying the resource bottlenecks, or generating the output representing the weighted graph model.

13. A system comprising:

a first one or more electronic devices implementing a modernization service in a cloud provider network, the modernization service including instructions that, upon execution, cause the modernization service to:

obtain application artifacts, including at least one of source code files, bytecode files, or intermediate language files, associated with a software application;

generate, based at least in part on the application artifacts associated with the software application, output representing a graph model representing application components of the software application and dependency relationships among the application components of the software application, wherein the application components are to be migrated from a user computing environment to a cloud provider network;

obtain application profile metrics associated with the application components and the dependency relationships;

derive values for predefined thresholds from predefined constraints associated with computing resources in the cloud provider network to which the application components are to be migrated;

identify resource bottlenecks among the application components and the dependency relationships by comparing the application profile metrics with respective ones of the predefined thresholds and determining that at least a subset of the application components and the dependency relationships exceed the respective ones of the predefined thresholds;

generate output representing a weighted graph model including the resource bottlenecks by applying the resource bottlenecks to the graph model;

generate output representing labels for the weighted graph model, the labels identifying computing resources affected by the resource bottlenecks and indicating that an identified group consumes a stated amount of the computing resources; and

transmit data representing the weighted graph model to a computing device; and

a second one or more electronic devices implementing a modernization agent, the modernization agent including instructions that upon execution cause the modernization agent to:

obtain the application artifacts associated with the software application from a user's computing environment; and

send the application artifacts to the modernization service.

14. The system of claim 13 , the labels further identifying nodes from among the nodes corresponding to the resource bottlenecks and/or edges from among the edges corresponding to the resource bottlenecks.

15. The system of claim 13 , the modernization service including further instructions that, upon execution, further cause the modernization service to generate output representing color coding indicating different types of the resource bottlenecks, a first type of the different types of the resource bottlenecks corresponding to a first color, and a second type of the different types of the resource bottlenecks corresponding to a second color different from the first color.

16. The system of claim 13 , the application profile metrics comprising a runtime profiling metric representative of at least one of CPU (Central Processing Unit) usage, memory usage, network bandwidth usage, storage bandwidth usage, a number of file handles, a number of open TCP (Transmission Control Protocol) handles or connections, a level of concurrency, a number of threads, or a custom metric.

17. The system of claim 13 , the predefined constraints comprising at least one of instance size limits or database rate limits.

18. The system of claim 13 , the modernization service including further instructions that, upon execution, further cause the modernization service to identify the computing resources to which the application components are to be migrated based on an analysis of a current deployment of the software application.

19. The system of claim 13 , the modernization service including further instructions that, upon execution, further cause the modernization service to receive input specifying the computing resources to which the application components are to be migrated.

20. The system of claim 13 , the modernization service including further instructions that, upon execution, further cause the modernization service to:

receive input representing a request to identify subunits of the software application; and

send, to a modernization agent of the user computing environment, data representing instructions to analyze the software application, the instructions causing the modernization agent to perform at least one of: obtaining the application artifacts associated with the software application, generating the output representing the graph model, obtaining the application profile metrics, identifying the resource bottlenecks, or generating the output representing the weighted graph model.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2021
From: CHAWDA, VIVEK; CHANDRASHEKAR, SAMARTHA; TSANG, SOPHIA
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 057261/0017 →
Cited By (12)
US 12,242,438 US 12,373,179 US 12,417,087 US 12,445,419 US 12,457,204 US 12,526,297 US 12,634,213 US 12,634,350 US 12,699,639 US 12,712,727 US 12,726,365 US 12,749,032