-
公开(公告)号:US12020025B1
公开(公告)日:2024-06-25
申请号:US17951861
申请日:2022-09-23
Applicant: Amazon Technologies, Inc.
Inventor: Jiangtao Zhang , Mark Fawaz , Vivek Chawda , Sreenaath Vasudevan , Ramu Panayappan , Abdul Jabbar Abdul Rasheed , Donghao Wei , Javier Arturo Thiele-Ruiz , Kanishk Kaul , Pranav Prabhakar Firake , Emery Jacob Comstock
Abstract: Techniques are described for assisting users with the process of modernizing software applications from a source software architectural pattern (e.g., a model—view—controller (MVC) pattern, a multitier architecture, etc.) to a target architectural pattern (e.g., microservices, event-driven architecture, etc.). A decomposition analyzer receives as input artifacts associated with a software application under analysis and an architectural pattern that a user desires to use for a modernized version of the software application. The decomposition analyzer generates, based on the application artifacts, a graph-based model of the software application, where the model includes nodes representing application components (e.g., classes) and edges representing dependency relationships among the components. The decomposition analyzer further uses machine learning techniques and other types of analyses to identify recommended groupings of nodes from the graph-based model for decomposition. These recommendations can be displayed to users in a visualization providing decomposition assessment information.
-
公开(公告)号:US11853753B1
公开(公告)日:2023-12-26
申请号:US17409448
申请日:2021-08-23
Applicant: Amazon Technologies, Inc.
Inventor: Vivek Chawda , Samartha Chandrashekar , Sophia Tsang
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.
-
公开(公告)号:US11620128B1
公开(公告)日:2023-04-04
申请号:US17409383
申请日:2021-08-23
Applicant: Amazon Technologies, Inc.
Inventor: Vivek Chawda , Samartha Chandrashekar , Sophia Tsang , Frederick Lee von Wurden , Roland Mesde
Abstract: Techniques are described for automatically identifying monolithic software applications in users' computing environments for software modernization purposes. A monolithic patent application typically refers to a single-tiered application with self-contained functionality designed largely without modularity, although many types of applications can have monolithic characteristics. In many cases, modularity in a software application's design is desirable and thus developers may often seek to decompose monolithic applications into more modular “microservices” or other subunits when possible. A software modernization system includes a software analysis service that obtains, for one or more software applications undergoing evaluation, a collection of application artifacts, application profiling metrics, and other application profile data. A collection of features is extracted from the application artifacts and metrics and used as input to a ML model trained to determine whether a software application likely is monolithic.
-
公开(公告)号:US11593103B1
公开(公告)日:2023-02-28
申请号:US17159620
申请日:2021-01-27
Applicant: Amazon Technologies, Inc.
Inventor: Vivek Chawda , Roland Mesde , Sophia Tsang , Samartha Chandrashekar , Sushil Ravoori , Javier Arturo Thiele-Ruiz
Abstract: Disclosed are various embodiments for anti-pattern detection in extraction and deployment of a microservice. A software modernization service is executed to analyze a computing application to identify various applications. When one or more of the application components are specified to be extracted as an independently deployable subunit, anti-patterns associated with deployment of the independently deployable subunit are determined prior to extraction. Anti-patterns may include increases in execution time, bandwidth, network latency, central processing unit (CPU) usage, and memory usage among other anti-patterns. The independently deployable subunit is selectively deployed separate from the computing application based on the identified anti-patterns.
-
公开(公告)号:US11500628B1
公开(公告)日:2022-11-15
申请号:US17110685
申请日:2020-12-03
Applicant: Amazon Technologies, Inc.
Inventor: Vivek Chawda , Roland Mesde , Sophia Tsang , Samartha Chandrashekar , Javier Arturo Thiele-Ruiz , Sushil Ravoori , Shailaja Yadav , Nikhil Kumar Jadhav , Divya Balasubramanian
Abstract: Disclosed are various embodiments for isolated code detection from application code analysis. Various application components may be identified from a source code file or a bytecode file of a computing application. A graph model representative of the computing application is generated having nodes and bridges that connect some nodes to other nodes. The graph model is generated such that at least one of the nodes is an isolated node having less than a threshold number of bridges connecting to other nodes, which is indicative that a corresponding one of the application components can be implemented as an independently deployable component of the computing application.
-
公开(公告)号:US11442725B1
公开(公告)日:2022-09-13
申请号:US17110726
申请日:2020-12-03
Applicant: Amazon Technologies, Inc.
Inventor: Vivek Chawda , Koushik Rajagopal , Daniel John Scholl , Roland Mesde , Sophia Tsang , Samartha Chandrashekar , Sushil Ravoori , Sriram Venkatadri
Abstract: Disclosed are various embodiments for the refactoring of local calls to network calls during software modernization. First and second application components are identified based on analysis of a computing application. A local call from the first application component to a process of the second application component is identified, and an independently deployable microservice is created from the computing application. The independently deployable subunit comprises the second application component having a network endpoint. The independently deployable microservice is deployed such that the process is accessible to the first application component via the network endpoint. The local call is programmatically refactored into a network call from the first application component to the process of the second application component.
-
-
-
-
-