# US 10,372,433 B2 · Caching and analyzing images for faster and simpler cloud application deployment

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

- Number: US 10,372,433 B2
- Document ID: US10372433B2
- Status: Granted
- Kind: B2
- Application number: 15/849,021
- Filed: 2017-12-20
- Published: 2018-04-26
- Granted: 2019-08-06
- Earliest claimed: 2013-12-12
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Charles D. Brant; ChunHui Y. Higgins; William P. Higgins; John L. Ryding, III; Andrew N. Trossman
- Web page: https://patentgrep.com/patent/US10372433B2

## CPC

- G06F 8/61: Installation
- G06F 8/63: {Image based installation; Cloning; Build to order}
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 16/148: {File search processing}
- H04L 41/082: the condition being updates or upgrades of network functionality
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 67/5682: Policies or rules for updating, deleting or replacing the stored data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques provide include analyzing a first node, associated with a first version of an service, to extract first configuration metadata; analyzing the first node, associated with a second version, subsequent to the first version, of the aservice, to extract second configuration metadata; determining, based upon a comparison of the first configuration metadata and the second configuration metadata, that the first node has not been modified between the first version and the second version; generating a first image of the node for distribution in conjunction with the service in response to the determining that the particular node has not been modified; and caching the first image for use in conjunction with the service.

## Claims

### Claim 1

A method, stored as program code on a non-transitory computer-readable storage medium, the program code executable by a plurality of processors, the method comprising:
analyzing a first cloud node, associated with a first version of a service, to extract first configuration metadata;
analyzing the first cloud node, associated with a second version, subsequent to the first version, of the service, to extract second configuration metadata;
determining based upon a comparison of the first configuration metadata and the second configuration metadata, that a first application package common to the first cloud node and the second cloud node has not been modified between the first version and the second version;
generating a first cloud image of the first application package in response to the determining that the particular software package has not been modified; and
caching the first cloud image for distribution in response to a request for deployment of the service.

### Claim 2 (depends on 1)

The method of claim 1, the determining that the first application package has not been modified between the first version and the second version comprising determining that a change in the first application package between the first version and the second version is less than a threshold amount of change.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
determining, based upon a comparison of the first configuration metadata and the second configuration metadata, that a second application package common to the first cloud node and the second cloud node has been modified between the first version and the second version; and
distributing the second software package in conjunction of the service in response to the determining that the second application package has been modified.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining, based upon a comparison of the first configuration metadata and the second configuration metadata, that a second application package common to the first cloud node and the second cloud node has been modified more than a threshold amount of change between the first version and the second version; and
distributing the second software package in conjunction of the service in response to the determining that the second application package has been modified more than the threshold amount of change.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
analyzing the first cloud node, associated with a third version, subsequent to both the first and second version, of the service, to extract third configuration metadata;
determining, based upon a comparison of the second configuration metadata and the third configuration metadata, that the first software package of the first cloud node has been modified between the second version and the third version;
generating a second cloud image of the first software package in response to the determining that the first software package has been modified;
caching the second cloud image for distribution in response to a request for deployment of the service; and
deleting the cached, first cloud image.

### Claim 6 (depends on 5)

The method of claim 5, the determining, based upon a comparison of the second configuration metadata and the third configuration metadata that the first software package of the first cloud node has been modified between the second version and the third version, comprising determining that a change in the first portion between the second version and the third version exceeds a threshold amount of change.

### Claim 7 (depends on 1)

The method of claim 1, wherein the software application may be any of a list of computing entities, the list of computing entities comprising:
an operating system;
a web application server;
a middleware;
a database server;
a reverse proxy;
a native library;
a web application; and
a web application archive (WAR) file.

### Claim 8 (depends on 1)

The method of claim 1, further comprising receiving the first cloud node from a deployment test environment for the application.

### Claim 9 (depends on 8)

The method of claim 8, further comprising generating, with a source control system, the service in the deployment test environment.

### Claim 10

An apparatus, comprising:
a processor;
a non-transitory, computer-readable storage medium coupled to the processor; and
logic, stored on the computer-readable storage medium and executed on the processor, for:
analyzing a first cloud node, associated with a first version of a service, to extract first configuration metadata;
analyzing the first cloud node, associated with a second version, subsequent to the first version, of the service, to extract second configuration metadata;
determining, based upon a comparison of the first configuration metadata and the second configuration metadata, that a first application package common to the first cloud node and the second cloud node has not been modified between the first version and the second version;
generating a first cloud image of the first application package in response to the determining that the particular software package has not been modified; and
caching the first cloud image for distribution in response to a request for deployment of the service.

### Claim 11 (depends on 10)

The apparatus of claim 10, the logic for determining comprising logic for the determining that the first application package has not been modified between the first version and the second version comprising determining that a change in the first application package between the first version and the second version is less than a threshold amount of change.

### Claim 12 (depends on 10)

The apparatus of claim 10, the logic further comprising logic for:
determining, based upon a comparison of the first configuration metadata and the second configuration metadata, that a second application package common to the first cloud node and the second cloud node has been modified between the first version and the second version; and
distributing the second software package in conjunction of the service in response to the determining that the second application package has been modified.

### Claim 13 (depends on 10)

The apparatus of claim 10, the logic further comprising logic for:
determining, based upon a comparison of the first configuration metadata and the second configuration metadata, that a second application package common to the first cloud node and the second cloud node has been modified more than a threshold amount of change between the first version and the second version; and
distributing the second software package in conjunction of the service in response to the determining that the second application package has been modified more than a threshold amount of change.

### Claim 14 (depends on 10)

The apparatus of claim 10, the logic further comprising log for:
analyzing the first cloud node, associated with a third version, subsequent to both the first and second version, of the service, to extract third configuration metadata;
determining, based upon a comparison of the second configuration metadata and the third configuration metadata, that the first software package of the first cloud node has been modified between the second version and the third version;
generating a second cloud image of the first software package in response to the determining that the first software package has been modified;
caching the second cloud image for distribution in response to a request for deployment of the service; and
deleting the cached, first cloud image.

### Claim 15 (depends on 14)

The apparatus of claim 14, the logic for determining, based upon a comparison of the second configuration metadata and the third configuration metadata that the first portion of the first cloud node has been modified between the second version and the third version, comprising logic for determining that a change in the first portion between the second version and the third version exceeds a threshold amount of change.

### Claim 16

A computer programming product, comprising:
a non-transitory, computer-readable storage medium; and
logic, stored on the computer-readable storage medium for execution on a processor, for:
analyzing a first cloud node, associated with a first version of a service, to extract first configuration metadata;
analyzing the first cloud node, associated with a second version, subsequent to the first version, of the service, to extract second configuration metadata;
determining, based upon a comparison of the first configuration metadata and the second configuration metadata, that a first application package common to the first cloud node and the second cloud node has not been modified between the first version and the second version;
generating a first cloud image of the first application package in response to the determining that the particular software package has not been modified; and
caching the first cloud image for distribution in response to a request for deployment of the service.

### Claim 17 (depends on 16)

The computer programming product of claim 16, the logic for the determining that the first application package has not been modified between the first version and the second version comprising determining that a change in the first application package between the first version and the second version is less than a threshold amount of change.

### Claim 18 (depends on 16)

The computer programming product of claim 16, the logic further comprising logic for:
determining, based upon a comparison of the first configuration metadata and the second configuration metadata, that a second application package common to the first cloud node and the second cloud node has been modified between the first version and the second version; and
distributing the second software package in conjunction of the service in response to the determining that the second application package has been modified.

### Claim 19 (depends on 16)

The computer programming product of claim 16, the logic further comprising logic for:
determining, based upon a comparison of the first configuration metadata and the second configuration metadata, that a second application package common to the first cloud node and the second cloud node has been modified more than a threshold amount of change between the first version and the second version; and
distributing the second software package in conjunction of the service in response to the determining that the second application package has been modified more than a threshold amount of change.

### Claim 20 (depends on 16)

The computer programming product of claim 16, the logic further comprising log for:
analyzing the first cloud node, associated with a third version, subsequent to both the first and second version, of the service, to extract third configuration metadata;
determining, based upon a comparison of the second configuration metadata and the third configuration metadata, that the first software package of the first cloud node has been modified between the second version and the third version;
generating a second cloud image of the first software package in response to the determining that the first software package has been modified;
caching the second cloud image for distribution in response to a request for deployment of the service; and
deleting the cached, first cloud image.
