# US 11,442,765 B1 · Identifying dependencies for processes for automated containerization

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,442,765 B1
- Document ID: US11442765B1
- Status: Granted
- Kind: B1
- Application number: 16/574,850
- Filed: 2019-09-18
- Granted: 2022-09-13
- Earliest claimed: 2019-09-18
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Jiangtao Zhang; Sriram Venkatadri; Boyu Wang
- Web page: https://patentgrep.com/patent/US11442765B1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 11/3051: {Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs (verification or detection of system hardware configuration G06F11/2247)}
- G06F 8/36: Software reuse
- G06F 8/61: Installation
- G06F 9/30145: {Instruction analysis, e.g. decoding, instruction word fields}
- G06F 11/0712: {in a virtual computing platform, e.g. logically partitioned systems}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/301: {where the computing system is a virtual computing platform, e.g. logically partitioned systems (virtual machines G06F9/45533; logical partitioning of resources G06F9/5077)}
- G06F 11/302: {where the computing system component is a software system}
- G06F 11/3024: {where the computing system component is a central processing unit [CPU]}
- G06F 11/3093: {Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes}
- G06F 11/3495: {for systems}
- G06F 16/128: {Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion (error detection or correction of the data by redundancy in operations or in hardware G06F11/14, G06F11/16)}
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2201/815: Virtual
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

This disclosure describes techniques implemented partly by a service provider network for containerizing applications. In an example, the techniques may include determining one or more processes to be included in a containerized version of an application, preparing and initializing a sandbox including at least executable files of the one or more determined processes, monitoring the execution of a particular process of the one or more determined processes in the sandbox to determine one or more dependencies of the particular process, and selecting the one or more dependencies of the particular process to be components of the containerized version of the application.

## Claims

### Claim 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 a request for a containerized version of an application executing on an on-premise user system that includes one or more second processors executing the application;
install a monitoring agent on the on-premise user system executing the application to be containerized;
determine an application definition including one or more processes in a list of processes, the one or more processes to be included in the containerized version of the application;
prepare a sandbox that includes one or more executable files of the one or more processes;
initialize the sandbox; and
for each particular process of the one or more processes:
monitor first execution of the particular process in the sandbox;
select one or more dependencies of the particular process to be components of the containerized version of the application;
add, to the list of processes and based on the one or more dependencies and an interrelationship of the one or more processes, one or more additional processes selected for inclusion in the containerized version of the application;
determine that second execution of the one or more additional processes is to include, as one or more additional dependencies, one or more additional components; and
generate the containerized version of the application using the components and the one or more additional components.

### Claim 2 (depends on 1)

The system of claim 1, wherein preparing the sandbox comprises:
generating a filesystem image of the on-premise user system;
generating an application template that includes static metadata information about the one or more processes; and
initializing the sandbox from the filesystem image using the static metadata information.

### Claim 3 (depends on 1)

The system of claim 1, wherein:
preparing the sandbox comprises:
obtaining one or more executable files of the one or more processes; and
initializing the sandbox from the one or more executable files, and
wherein monitoring the first execution of the particular process comprises:
during the first execution of the particular process, detecting a dependency fault associated with a dependency being absent from the sandbox; and
adding a dependency associated with the dependency fault to the sandbox.

### Claim 4 (depends on 3)

The system of claim 3, wherein the adding the dependency associated with the dependency fault to the sandbox is performed by requesting the dependency from the monitoring agent in response to detection of the dependency fault.

### Claim 5

A computer-implemented method comprising:
determining one or more processes in a list of processes, the one or more processes to be included in a containerized version of an application;
preparing a sandbox including one or more executable files of the one or more processes;
initializing the sandbox;
monitoring execution of a particular process of the one or more processes in the sandbox to determine one or more dependencies of the particular process;
selecting the one or more dependencies of the particular process to be components of the containerized version of the application; and
adding, to the list of processes and based at least in part on an interrelationship of the one or more processes, one or more additional processes selected for inclusion in the containerized application.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising performing the monitoring and the selecting for each process of the one or more processes.

### Claim 7 (depends on 5)

The computer-implemented method of claim 5, further comprising:
selecting the one or more 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 one or more additional processes to be additional components of the containerized version of the application.

### Claim 8 (depends on 6)

The computer-implemented method of claim 6, further comprising
obtaining the components of the containerized version of the application, the components including executable files of the one or more processes and dependencies of each process of the one or more processes; and
generating the containerized version of the application using the components.

### Claim 9 (depends on 5)

The computer-implemented method of claim 5, wherein preparing the sandbox comprises:
generating a filesystem image of an on-premise user system including one or more processors executing the application;
generating an application template that includes static metadata information about the one or more processes; and
initializing the sandbox from the filesystem image using the static metadata information.

### Claim 10 (depends on 5)

The computer-implemented method of claim 5, wherein:
preparing the sandbox comprises:
obtaining one or more executable files of the one or more processes; and
initializing the sandbox from the one or more executable files, and
wherein monitoring the execution of the particular process comprises:
during the execution of the particular process, detecting a dependency fault associated with a dependency being absent from the sandbox; and
adding a dependency associated with the dependency fault to the sandbox.

### Claim 11 (depends on 10)

The computer-implemented method of claim 10, further comprising installing a monitoring agent on a system executing the application, wherein the adding the dependency associated with the dependency fault to the sandbox is performed by requesting the dependency from the monitoring agent in response to detection of the dependency fault.

### Claim 12 (depends on 5)

The computer-implemented method of claim 5, wherein the determining the one or more processes to be included in the containerized version of the application comprises receiving a user selection of the one or more processes to be included in the containerized version of the application via a console accessible via a computing device of a user.

### Claim 13

A system comprising:
one or more processors; and
one or more computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to:
determine one or more processes in a list of processes, the one or more processes to be included in a containerized application, wherein the containerized application is a containerized version of an application;
prepare a sandbox including at least executable files of the one or more processes;
initialize the sandbox;
monitor execution of a particular process of the one or more processes in the sandbox to determine one or more dependencies of the particular process;
select the one or more dependencies of the particular process to be components of the containerized application; and
add, to the list of processes and based at least in part on an interrelationship of the one or more processes, one or more additional processes selected for inclusion in the containerized application.

### Claim 14 (depends on 13)

The system of claim 13, comprising further instructions that, when executed by the one or more processors, cause the one or more processors to perform the monitoring and selecting for each of the processes.

### Claim 15 (depends on 13)

The system of claim 13, comprising further instructions that, when executed by the one or more processors, cause the one or more processors to:
select the one or more 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 one or more additional processes to be additional components of the containerized version of the application.

### Claim 16 (depends on 14)

The system of claim 14, comprising further instructions that, when executed by the one or more processors, cause the one or more processors to:
obtain the components of the containerized version of the application, the components including executable files of the one or more processes and dependencies of each process of the one or more processes; and
generate the containerized version of the application using the components.

### Claim 17 (depends on 13)

The system of claim 13, wherein preparing the sandbox comprises:
generating a filesystem image of an on-premise user system including one or more processors executing the application;
generating an application template that includes static metadata information about the one or more processes; and
initializing the sandbox from the filesystem image using the static metadata information.

### Claim 18 (depends on 13)

The system of claim 13, wherein:
preparing the sandbox comprises:
obtaining one or more executable files of the one or more processes; and
initializing the sandbox from the one or more executable files, and
wherein monitoring the execution of the particular process comprises:
during the execution of the particular process, detecting a dependency fault associated with a dependency being absent from the sandbox; and
adding a dependency associated with the dependency fault to the sandbox.

### Claim 19 (depends on 18)

The system of claim 18, comprising further instructions that, when executed by the one or more processors, cause the one or more processors to:
install a monitoring agent on a system executing the application, wherein the adding the dependency associated with the dependency fault to the sandbox is performed by requesting the dependency from the monitoring agent in response to detection of the dependency fault.

### Claim 20 (depends on 19)

The system of claim 19, wherein the system is an on-premise user system including one or more system processors executing the application.
