# US 12,182,559 B2 · Deployment of updated services or layers on demand through containers

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

- Number: US 12,182,559 B2
- Document ID: US12182559B2
- Status: Granted
- Kind: B2
- Application number: 18/062,266
- Filed: 2022-12-06
- Published: 2024-06-06
- Granted: 2024-12-31
- Earliest claimed: 2022-12-06
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Xiao Ling Chen; Si Yu Chen; Juliet Candee; Yan Fei Qin; Hao Wu; Wen Bin Han
- Web page: https://patentgrep.com/patent/US12182559B2

## CPC

- G06F 8/63: {Image based installation; Cloning; Build to order}
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/544: {Buffers; Shared memory; Pipes}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Computer implemented method, systems, and computer program products include program code executing on a processor(s) obtain a first container comprising image layers, wherein the image layers include a base image layer and one or more image layers. The program code determines dependencies between the image layers. The program code obtains a request for an application where at least one image layer of the one or more image layers comprises features of the application. The program code identifies, based on the dependencies, at least one additional image layer related to the at least one image layer. The program code generates and deploys a second container, where image layers of the second container consist of the at least one image layer, the at least one additional image layer related to the at least one image layer, and the base layer.

## Claims

### Claim 1

A computer-implemented method of comprising:
requesting execution of an instruction to perform an action defined by the instruction, wherein the action defined by the instruction comprises automatically generating and deploying applications on-demand through container images, wherein the executing the instruction includes:
obtaining a first container comprising image layers, wherein the image layers include a base image layer and one or more image layers;
generating dependencies between the image layers, wherein the dependencies comprise, for each layer of the one or more layers, a submissive sequence and a dependent sequence, wherein the submissive sequence for each layer is based on determining if at least one layer of the one or more layers was committed after the layer, and wherein the dependent sequence for each layer is based on based on determining if at least one layer of the one or more layers modifies a common file with the layer;
obtaining a request for an application, wherein at least one image layer of the one or more image layers comprises features of the application;
identifying based on the dependencies, at least one additional image layer related to the at least one image layer; and
generating and deploying a second container, wherein image layers of the second container consist of the at least one image layer, the at least one additional image layer related to the at least one image layer, and the base layer.

### Claim 2 (depends on 1)

The computer-implemented of claim 1, wherein generating the submissive sequence comprises:
for each layer of the one or more layers:
determining, based on comparing a timestamp associated with the layer to one or more timestamps associated with the one or more layers, which layers of the one or more layers were committed after the layer;
based on determining that the at least one layer of the one or more layers was committed after the layer, for each layer of the at least one layer committed after the layer, creating a dependency between the at least one layer committed after the layer and the layer, wherein the dependency comprises the submissive sequence; and
based on determining that no layer of the one or more layers was committed after the layer, creating the dependency between the layer and the base layer, wherein the dependency between the layer and the base layer comprises the submissive sequence.

### Claim 3 (depends on 1)

The computer-implemented of claim 1, wherein generating the dependent sequence comprises:
for each layer of the one or more layers:
determining, based on comparing a timestamp associated with the layer to one or more timestamps associated with the one or more layers, which layers of the one or more layers modify the common file with the layer;
based on determining that the at least one layer of the one or more layers modifies the common file with the layer, for each layer of the at least one layer determined to be modifying the common file with the layer, creating a dependency between the at least one layer and the layer determined to be modifying the common file with the layer, wherein the dependency comprises the dependent sequence; and
based on determining that no layer of the one or more layers modifies the common file with the layer, creating the dependency between the layer and the base layer, wherein the dependency between the layer and the base layer comprises the dependent sequence.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein generating dependencies between the layers comprises:
generating the submissive sequence, comprising:
for each layer of the one or more layers:
determining, based on comparing a timestamp associated with the layer to one or more timestamps associated with the one or more layers, which layers of the one or more layers were committed after the layer;
based on determining that at least one layer of the one or more layers was committed after the layer, for each layer of the at least one layer committed after the layer, creating a first dependency between the at least one layer committed after the layer and the layer, wherein the first dependency comprises the submissive sequence; and
based on determining that no layer of the one or more layers was committed after the layer, creating the first dependency between the layer and the base layer, wherein the first dependency between the layer and the base layer comprises the submissive sequence; and
generating the dependent sequence, comprising:
for each layer of the one or more layers:
determining, based on comparing a timestamp associated with the layer to one or more timestamps associated with the one or more layers, which layers of the one or more layers modify the common file with the layer;
based on determining that at least one layer of the one or more layers modifies the common file with the layer, for each layer of the at least one layer that modifies the common file with the layer, creating a second dependency between the at least one layer that modifies the common file with the layer and the layer, wherein the second dependency comprises the dependent sequence; and
based on determining that no layer of the one or more layers modifies the common file with the layer, creating the second dependency between the layer and the base layer, wherein the second dependency between the layer and the base layer comprises the dependent sequence.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein generating dependencies between the layers further comprises:
generating, by the one or more processors, a directed graph to represent the dependencies.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising:
storing, by the one or more processors, the directed graph in a repository.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising:
appending, by the one or more processors, attributes to the one or more image layers to track the dependencies.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, wherein the attributes comprise a relationship identifier, and wherein a relationship identifier for a given image layer identifies each layer of the one or more layers that was committed after the given image layer was committed.

### Claim 9 (depends on 7)

The computer-implemented method of claim 7, wherein the attributes comprise a relationship identifier list, wherein a relationship identifier list appended to a given image layer identifies each layer of the one or more layers that modifies the common file with the given image layer.

### Claim 10 (depends on 8)

The computer-implemented method of claim 8, wherein each image layer comprises a unique image identifier, and wherein the relationship identifier of the given image layer comprises a hash of unique image identifiers for the one or more layers that were committed after the given image layer was committed.

### Claim 11

A computer system comprising:
at least one computing device;
a set of one or more computer-readable storage media; and
program instructions, collectively stored in the set of one or more computer-readable storage media, for causing the at least one computing device to perform computer operations to automatically generate and deploy applications on-demand through container images, the computer operations including:
obtaining a first container comprising image layers, wherein the image layers include a base image layer and one or more image layers;
generating dependencies between the image layers, wherein the dependencies comprise, for each layer of the one or more layers, a submissive sequence and a dependent sequence, wherein the submissive sequence for each layer is based on determining if at least one layer of the one or more layers was committed after the layer, and wherein the dependent sequence for each layer is based on based on determining if at least one layer of the one or more layers modifies a common file with the layer;
obtaining a request for an application, wherein at least one image layer of the one or more image layers comprises features of the application;
identifying based on the dependencies, at least one additional image layer related to the at least one image layer; and
generating and deploying a second container, wherein image layers of the second container consist of the at least one image layer, the at least one additional image layer related to the at least one image layer, and the base layer.

### Claim 12 (depends on 11)

The computer system of claim 11, wherein generating the submissive sequence comprises:
for each layer of the one or more layers:
determining, based on comparing a timestamp associated with the layer to one or more timestamps associated with the one or more layers, which layers of the one or more layers were committed after the layer;
based on determining that at least one layer of the one or more layers was committed after the layer, for each layer of the at least one layer committed after the layer, creating a dependency between the at least one layer committed after the layer and the layer, wherein the dependency comprises the submissive sequence; and
based on determining that no layer of the one or more layers was committed after the layer, creating the dependency between the layer and the base layer, wherein the dependency between the layer and the base layer comprises the submissive sequence.

### Claim 13 (depends on 11)

The computer system of claim 11, wherein generating the dependent sequence comprises:
for each layer of the one or more layers:
determining, based on comparing a timestamp associated with the layer to one or more timestamps associated with the one or more layers, which layers of the one or more layers modify the common file with the layer;
based on determining that at least one layer of the one or more layers modifies the common file with the layer, for each layer of the at least one layer determined to be modifying the common file with the layer, creating a dependency between the at least one layer and the layer determined to be modifying the common file with the layer, wherein the dependency comprises the dependent sequence; and
based on determining that no layer of the one or more layers modifies the common file with the layer, creating the dependency between the layer and the base layer, wherein the dependency between the layer and the base layer comprises the dependent sequence.

### Claim 14 (depends on 11)

The computer system of claim 11, wherein generating dependencies between the layers comprises:
generating the submissive sequence, comprising:
for each layer of the one or more layers:
determining, based on comparing a timestamp associated with the layer to one or more timestamps associated with the one or more layers, which layers of the one or more layers were committed after the layer;
based on determining that at least one layer of the one or more layers was committed after the layer, for each layer of the at least one layer committed after the layer, creating a first dependency between the at least one layer committed after the layer and the layer, wherein the first dependency comprises the submissive sequence; and
based on determining that no layer of the one or more layers was committed after the layer, creating the first dependency between the layer and the base layer, wherein the first dependency between the layer and the base layer comprises the submissive sequence; and
generating the dependent sequence, comprising:
for each layer of the one or more layers:
determining, based on comparing a timestamp associated with the layer to one or more timestamps associated with the one or more layers, which layers of the one or more layers modify the common file with the layer;
based on determining that at least one layer of the one or more layers modifies the common file with the layer, for each layer of the at least one layer that modifies the common file with the layer, creating a second dependency between the at least one layer that modifies the common file with the layer and the layer, wherein the second dependency comprises the dependent sequence; and
based on determining that no layer of the one or more layers modifies the common file with the layer, creating the second dependency between the layer and the base layer, wherein the second dependency between the layer and the base layer comprises the dependent sequence.

### Claim 15 (depends on 14)

The computer system of claim 14, wherein generating dependencies between the layers further comprises:
generating, by the one or more processors, a directed graph to represent the dependencies.

### Claim 16 (depends on 15)

The computer system of claim 15, the computer operations further comprising:
storing the directed graph in a repository.

### Claim 17 (depends on 11)

The computer system of claim 11, the computer operations further comprising:
appending attributes to the one or more image layers to track the dependencies.

### Claim 18 (depends on 17)

The computer system of claim 17, wherein the attributes comprise a relationship identifier, and wherein a relationship identifier for a given image layer identifies each layer of the one or more layers that was committed after the given image layer was committed.

### Claim 19 (depends on 17)

The computer system of claim 17, wherein the attributes comprise a relationship identifier list, wherein a relationship identifier list appended to a given image layer identifies each layer of the one or more layers that modifies the common file with the given image layer.

### Claim 20

A computer program product comprising:
a set of one or more computer-readable storage media; and
program instructions, collectively stored in the set of one or more computer-readable storage media, for causing at least one computing device to perform computer operations to automatically generate and deploy applications on-demand through container images, the computer operations including:
obtaining a first container comprising image layers, wherein the image layers include a base image layer and one or more image layers;
generating dependencies between the image layers, wherein the dependencies comprise, for each layer of the one or more layers, a submissive sequence and a dependent sequence, wherein the submissive sequence for each layer is based on determining if at least one layer of the one or more layers was committed after the layer, and wherein the dependent sequence for each layer is based on based on determining if at least one layer of the one or more layers modifies a common file with the layer;
obtaining a request for an application, wherein at least one image layer of the one or more image layers comprises features of the application;
identifying based on the dependencies, at least one additional image layer related to the at least one image layer; and
generating and deploying a second container, wherein image layers of the second container consist of the at least one image layer, the at least one additional image layer related to the at least one image layer, and the base layer.
