# US 11,307,839 B2 · Updating of container-based applications

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

- Number: US 11,307,839 B2
- Document ID: US11307839B2
- Status: Granted
- Kind: B2
- Application number: 16/453,665
- Filed: 2019-06-26
- Published: 2020-12-31
- Granted: 2022-04-19
- Earliest claimed: 2019-06-26
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Kiran Kumar Vaddi; Om Kumar; Lokesh Shivashankara
- Web page: https://patentgrep.com/patent/US11307839B2

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Example techniques for updating of container-based applications are described. In an example, a second version of an application code or application code changes are retrieved from a code storage location. Based on the retrieved second version or the retrieved application code changes, an application hosted in a container is updated.

## Claims

### Claim 1

A system comprising:
a processor; and
a memory coupled to the processor and storing a container image that includes a first set of instructions executable by the processor and storing a second set of instructions, where a container is instantiable from the container image and the container is to host an application that corresponds to a first version of an application code,
wherein the first set of instructions, when executed by the processor, cause the processor to:
detect updates to a code storage location based on at least one of polling and receipt of an update notification;
retrieve application code changes from the code storage location in response to detection of the updates to the code storage location, the application code changes being a difference between the first version and a second version; and
update the application hosted in the container based on the retrieved application code changes;
wherein the second set of instructions, when executed by the processor, cause the processor to create a production container image corresponding to a production container to be deployed in a production environment, wherein the production container image comprises a final version of the application code corresponding to a final version of the application, and the production container image excludes the first set of instructions.

### Claim 2 (depends on 1)

The system of claim 1, wherein the code storage location is one of a code repository that is to receive a plurality of versions of the application code from a developer of the application and a persistent volume associated with the container.

### Claim 3 (depends on 1)

The system of claim 1, wherein the memory comprises a third set of instructions executable to:
request a repository node that is to receive a plurality of versions of the application code from a developer for the application code changes; and
store the application code changes in the code storage location.

### Claim 4 (depends on 1)

The system of claim 1, wherein, to update the application hosted in the container, the first set of instructions are executable to perform at least one of:
restart of the application; and
restart of the container.

### Claim 5 (depends on 1)

The system of claim 1, wherein in response to retrieving the application code changes, the first set of instructions is executable to build the second version based at least in part on the first version and the application code changes.

### Claim 6 (depends on 1)

The system of claim 1, wherein the container is to test a plurality of versions of the application, each version of the application corresponding to a version of the application code, prior to deployment of the application in the production environment.

### Claim 7

A method comprising:
detecting, by a processing resource, presence of an updated version of an application code in a repository node;
determining, by the processing resource, based on the detection, that an application hosted in a container is to be updated corresponding to the updated version of the application code;
requesting, by the processing resource, the repository node for the updated version of the application code;
receiving, by the processing resource, the updated version of the application code from the repository node;
updating, by the processing resource, the application hosted in the container based on the updated version of the application code, wherein the detecting, the determining, the requesting, the receiving, and the updating are performed by a processor executing a set of instructions that are part of a container image from which the container is instantiable; and
creating a production container image corresponding to a production container to be deployed in a production environment, wherein the production container image comprises a final version of the application code corresponding to a final version of the application, and the production container image excludes the set of instructions.

### Claim 8 (depends on 7)

The method of claim 7, comprising detecting the presence of the updated version based on polling of the repository node.

### Claim 9 (depends on 7)

The method of claim 7, comprising detecting the presence of the updated version in response to receipt of an update notification from the repository node.

### Claim 10 (depends on 7)

The method of claim 7, wherein updating the application comprises at least one of:
restarting the application; and
restarting the container.

### Claim 11 (depends on 7)

The method of claim 7, wherein the repository node comprises a code repository that is to store a plurality of versions of the application code.

### Claim 12 (depends on 7)

The method of claim 7, wherein the container is to test a plurality of versions of the application, each version of the application corresponding to a version of the application code, prior to deployment of the application in the production environment.

### Claim 13

A non-transitory computer-readable medium comprising instructions, the instructions being executable by a processing resource to:
determine that an application running in a container is to be updated, the determination being based on detection of presence of changes to an application code in a code storage location, wherein the application code corresponds to the application;
retrieve one of the changes to the application code and an updated version of the application code from the code storage location in response to the detection, the updated version comprising the changes to the application code; and
update the application being hosted in the container based on the retrieved one of the changes to the application code and the updated version of the application code; and
create a production container image corresponding to a production container to be deployed in a production environment,
wherein the production container image comprises a final version of the application code corresponding to a final version of the application,
the instructions that cause the processing resource to determine, to retrieve, and to update from a first set of instructions, and the first set of instructions are part of a container image from which the container is instantiable, and
the production container image excludes the first set of instructions.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the code storage location is one of a code repository that is to receive a plurality of versions of the application code from a developer of the application and a persistent volume associated with the container.

### Claim 15 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein, to update the application being hosted in the container, the instructions are executable to perform at least one of:
restart of the container; and
restart of the application.
