IP Library › Granted Patent US 11,487,878
Granted Patent B1
US 11,487,878 · App. 16/574,782 · Granted Nov 1, 2022

Identifying cooperating processes for automated containerization

Inventors: Jiangtao Zhang (Pleasanton, CA); Sriram Venkatadri (Santa Clara, CA); Boyu Wang (Milpitas, CA)
Assignee: Amazon Technologies, Inc.
G06F21/57G06F8/433G06F9/45558G06F9/4881
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,487,878
App. No.
16/574,782
Granted
Nov 1, 2022
Kind
B1
Abstract

This disclosure describes techniques implemented partly by a service provider network for containerizing applications. In an example, the techniques may include requesting process relationship information for one or more potential processes of an application, receiving the requested process relationship information for the one or more potential processes of the application, and based on the received process relationship information, configuring a process relationship detection algorithm. Then, using the configured process relationship detection algorithm, the techniques may determine a respective relationship score for individual process pairs of processes operating on a system executing the application and determine one or more individual process pairs that have a respective relationship score that is equal to or above a threshold to be one or more cooperating process pairs.

Claims (127)

1. A system comprising:

one or more first processors; and

one or more computer-readable media storing computer-executable instructions that, when executed by the one or more first processors, cause the one or more first processors to:

receive, from a computing device of a user, a request for a containerized version of an application;

install a monitoring agent on a system executing the application to be containerized, the system being an on-premise user system including one or more second processors executing the application;

request process relationship information for one or more potential processes of the application by causing a questionnaire to be presented to the user via a console accessible by the computing device, the questionnaire requesting the user to provide information about one or more factors used by a process relationship detection algorithm that is configured to determine a relationship score for process pairs of processes;

receive the process relationship information for the one or more potential processes of the application;

based at least in part on the process relationship information, generate a configured process relationship detection algorithm by configuring the process relationship detection algorithm by assigning a weight to individual ones of the one or more factors;

using the configured process relationship detection algorithm, determine:

processes that include a first process pair and a second process pair operating on the system;

a first factor indicated by the user in the questionnaire as being present in the first process pair;

a first weight that is applied to the first factor and that indicates whether the first factor is included in the first process pair;

a first relationship score associated with the first factor that indicates a first interrelationship between first processes of the first process pair;

a second factor indicated by the user in the questionnaire as being present in the second process pair;

a second weight that is applied to the second factor and that indicates whether the second factor is included in the first process pair; and

a second relationship score associated with the second factor that indicates a second interrelationship between second processes of the second process pair,

wherein determining the first relationship score and the second relationship score is based on monitoring information provided by the monitoring agent;

determine that the first process pair is a first cooperating process pair to potentially include in the containerized version of the application by determining that the first relationship score is equal to or above a threshold; and

determine that the second process pair is a second cooperating process pair to potentially include in the containerized version of the application by determining that the second relationship score is equal to or above the threshold.

2. The system of claim 1 , comprising further instructions that, when executed by the one or more first processors, cause the one or more first processors to:

select the first cooperating process pair and the second cooperating process pair for inclusion in the containerized version of the application; and

determine one or more dependencies of the first cooperating process pair and the second cooperating process pair.

3. The system of claim 2 , comprising further instructions that, when executed by the one or more first processors, cause the one or more first processors to:

select additional processes for inclusion in the containerized version of the application based on the one or more dependencies; and

determine additional dependencies of the additional processes.

4. The system of claim 2 , comprising further instructions that, when executed by the one or more first processors, cause the one or more first processors to:

obtain components for the containerized version of the application, the components including executable files of the first cooperating process pair and the second cooperating process pair and files related to the one or more dependencies; and

generate the containerized version of the application based on the components.

5. The system of claim 1 , wherein the first cooperating process pair and the second cooperating process pair comprises every individual process pair of processes operating on the system.

6. The system of claim 1 , wherein at least one of the first relationship score or the second relationship score is determined based at least in part on one or more factors, the one or more factors including at least one of:

whether a particular process pair have a parent-child or sibling relationship;

whether the particular process pair have a same userId or groupId;

whether a signal was sent from a first process of the particular process pair to a second process of the particular process pair; or

whether a network connection between the particular process pair was established.

7. The system of claim 1 , wherein at least one of the first relationship score or the second relationship score is determined based at least in part on one or more factors, the one or more factors including at least one of:

whether a particular process pair share a same cgroup;

whether the particular process pair share a same namespace;

whether the particular process pair share a same interprocess communication (IPC);

whether the particular process pair share a same local domain socket;

whether the particular process pair share a same inode file access;

whether the particular process pair share a same exefile and parameters;

whether the particular process pair share running environment variables;

whether the particular process pair share port numbers in different hosts; or

whether the particular process pair share a same technical stack.

8. A computer-implemented method comprising:

receiving, from a computing device, a request for a containerized version of an application;

installing a monitoring agent on a system executing the application to be containerized, the system being an on-premise user system including one or more processors executing the application;

requesting process relationship information for one or more potential processes of the application;

receiving the process relationship information for the one or more potential processes of the application;

based at least in part on the process relationship information, configuring a process relationship detection algorithm;

using the configured process relationship detection algorithm, determining:

a first factor present in a first process pair operating on the system;

a first weight that is applied to the first factor and that indicates whether the first factor is included in the first process pair;

a first relationship score associated with the first factor that indicates a first interrelationship between first processes of the first process pair;

a second factor present in a second process pair operating on the system;

a second weight that is applied to the second factor and that indicates whether the second factor is included in the first process pair; and

a second relationship score associated with the second factor that indicates a second interrelationship between second processes of the second process pair,

wherein determining the first relationship score and the second relationship score is based at least in part on monitoring information provided by the monitoring agent;

determining that the first process pair is a first cooperating process pair to potentially include in the containerized version of the application by determining that the first relationship score is equal to or above a threshold; and

determining that the second process pair is a second cooperating process pair to potentially include in the containerized version of the application by determining that the second relationship score is equal to or above the threshold.

9. The computer-implemented method of claim 8 , further comprising:

selecting the first cooperating process pair and the second cooperating process pair for inclusion in the containerized version of the application; and

determining one or more dependencies of the first cooperating process pair and the second cooperating process pair.

10. The computer-implemented method of claim 9 , further comprising:

selecting additional processes for inclusion in the containerized version of the application based at least in part on the one or more dependencies; and

determining additional dependencies of the additional processes.

11. The computer-implemented method of claim 9 , further comprising

obtaining components for the containerized version of the application, the components including executable files of the first cooperating process pair and the second cooperating process pair and files related to the one or more dependencies; and

generating the containerized version of the application using the components.

12. The computer-implemented method of claim 8 , wherein at least one of the first relationship score or the second relationship score is determined based at least in part on one or more factors, the one or more factors including at least one of:

whether a particular process pair have a parent-child or sibling relationship;

whether the particular process pair have a same userId or groupId;

whether a signal was sent from a first process of the particular process pair to a second process of the particular process pair;

whether a network connection between the particular process pair was established;

whether the particular process pair share a same cgroup;

whether the particular process pair share a same namespace;

whether the particular process pair share a same interprocess communication (IPC);

whether the particular process pair share a same local domain socket;

whether the particular process pair share a same inode file access;

whether the particular process pair share a same exefile and parameters;

whether the particular process pair share running environment variables;

whether the particular process pair share port numbers in different hosts; or

whether the particular process pair share a same technical stack.

13. The computer-implemented method of claim 8 , wherein the first process pair and the second process pair comprises every individual process pair of processes operating on the system.

14. A system comprising:

one or more first processors; and

one or more computer-readable media storing computer-executable instructions that, when executed by the one or more first processors, cause the one or more first processors to:

receive, from a computing device, a request for a containerized version of an application;

install a monitoring agent on a system executing the application to be containerized, the system being an on-premise user system including one or more second processors executing the application;

request process relationship information for one or more potential processes of the application;

receive the process relationship information for the one or more potential processes of the application;

based at least in part on the process relationship information, configure a process relationship detection algorithm;

using the configured process relationship detection algorithm, determine:

a first factor present in a first process pair operating on the system,

a first weight that is applied to the first factor and that indicates whether the first factor is included in the first process pair;

a first relationship score associated with the first factor that indicates a first interrelationship between first processes of the first process pair;

a second factor present in a second process pair operating on the system;

a second weight that is applied to the second factor and that indicates whether the second factor is included in the first process pair; and

a second relationship score associated with the second factor that indicates a second interrelationship between second processes of the second process pair,

wherein determining the first relationship score and the second relationship score is based at least in part on monitoring information provided by the monitoring agent;

determine that the first process pair is a first cooperating process pair to potentially include in the containerized version of the application by determining that the first relationship score is equal to or above a threshold; and

determine that the second process pair is a second cooperating process pair to potentially include in the containerized version of the application by determining that the second relationship score is equal to or above the threshold.

15. The system of claim 14 , comprising further instructions that, when executed by the one or more first processors, cause the one or more first processors to:

select the first cooperating process pair and the second cooperating process pair for inclusion in the containerized version of the application; and

determine one or more dependencies of the first cooperating process pair and the second cooperating process pair.

16. The system of claim 15 , comprising further instructions that, when executed by the one or more first processors, cause the one or more first processors to:

select additional processes for inclusion in the containerized version of the application based at least in part on the one or more dependencies; and

determine additional dependencies of the additional processes.

17. The system of claim 15 , comprising further instructions that, when executed by the one or more first processors, cause the one or more first processors to:

obtain components for the containerized version of the application, the components including executable files of the first cooperating process pair and the second cooperating process pair and files related to the one or more dependencies; and

generate the containerized version of the application using the components.

18. The system of claim 14 , wherein the first cooperating process pair and the second cooperating process pair comprises every individual process pair of processes operating on the system.

19. The system of claim 14 , wherein at least one of the first relationship score or the second relationship score is determined based at least in part on one or more factors, the one or more factors including at least one of:

whether a particular process pair have a parent-child or sibling relationship;

whether the particular process pair have a same userId or groupId;

whether a signal was sent from a first process of the particular process pair to a second process of the particular process pair; or

whether a network connection between the particular process pair was established.

20. The system of claim 14 , wherein at least one of the first relationship score or the second relationship score is determined based at least in part on one or more factors, the one or more factors including at least one of:

whether a particular process pair share a same cgroup;

whether the particular process pair share a same namespace;

whether the particular process pair share a same interprocess communication (IPC);

whether the particular process pair share a same local domain socket;

whether the particular process pair share a same inode file access;

whether the particular process pair share a same exefile and parameters;

whether the particular process pair share running environment variables;

whether the particular process pair share port numbers in different hosts; or

whether the particular process pair share a same technical stack.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2019
From: ZHANG, JIANGTAO; VENKATADRI, SRIRAM; WANG, BOYU
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 050419/0695 →
Cited By (4)
US 12,468,569 US 12,561,231 US 12,566,633 US 12,566,689