# US 2019/0356560 A1 · Quality assessment and decision recommendation for continuous deployment of cloud infrastructure components

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

- Number: US 2019/0356560 A1
- Document ID: US20190356560A1
- Status: Published application
- Kind: A1
- Application number: 16/516,654
- Filed: 2019-07-19
- Published: 2019-11-21
- Earliest claimed: 2017-06-29
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Ken Hsieh; Pankaj Kumar Singh; Sree Krishna Chaitanya Vadrevu; Ze Li; Murali Mohan Chintalapati; Yingnong Dang
- Web page: https://patentgrep.com/patent/US20190356560A1

## CPC

- H04L 41/5054: Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
- G06F 8/60: Software deployment
- 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 11/0709: {in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems}
- G06F 11/0766: {Error or fault reporting or storing}
- G06F 11/079: {Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36)}
- G06F 11/34: Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation {; Recording or statistical evaluation of user activity, e.g. usability assessment}
- H04L 41/0631: using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
- H04L 43/04: Processing captured monitoring data, e.g. for logfile generation
- H04L 67/303: Terminal profiles
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- H04L 69/40: for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06)
- G06F 2201/865: Monitoring of software
- H04L 41/5096: {wherein the managed service relates to distributed or central networked applications}
- H04L 43/091: Measuring contribution of individual network components to actual service level
- H04L 47/78: Architectures of resource allocation
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, systems and computer program products are described for obtaining deployment signals comprising information relating to deployments of software components to a plurality of computing devices, obtaining fault signals comprising information relating to faults encountered by the plurality of computing devices, and obtaining device type information that describes a device type of each of the plurality of computing devices. Based on the deployment signals, fault signals, and device type information, a correlation score for each combination of software component, fault, and device type is obtained. Based on the correlation scores, attribution level decisions, fault type level decisions and device type level decisions are made. Based on these decisions, an overall decision is rendered whether to proceed or not proceed with a future deployment of the software component.

## Claims

### Claim 1

A method, comprising:
attributing each fault occurring on computing devices having a given device type to a particular software component having a highest correlation score; and
for each software component to which a fault is attributed, rendering a decision to proceed or not proceed with a future deployment of the software component to additional computing devices based at least on a number of computing devices impacted by one or more faults attributed to the software component.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
obtaining one or more of:
deployment signals comprising information relating to deployments of software components to a plurality of computing devices;
fault signals comprising information relating to faults encountered by the plurality of computing devices; and
device type information that describes a device type of each of the plurality of computing devices; and
based on the one or more of the deployment signals, fault signals, and device type information, obtaining a correlation score for each combination of software component, fault and device type.

### Claim 3 (depends on 2)

The method of claim 2, wherein each deployment signal comprises a deployment time, an identifier of a deployed software component, a version of the deployed software component, and an identifier of a computing device upon which the deployed software component was deployed;
wherein each fault signal comprises a time that a computing device encountered a fault, an identifier of the computing device that encountered the fault, a type associated with the fault, and an error code associated with the fault; and
wherein the device type information comprises a set of attributes, wherein each attribute may be assigned a value from a corresponding set of values.

### Claim 5 (depends on 2)

The method of claim 2, wherein the correlation score for a given combination of software component, fault and device type is calculated as a weighted sum of time-based correlation scores for the given combination of software component, fault and device type, wherein each time-based correlation score is obtained by comparing a number of computing devices of the device type of the given combination that encountered the fault of the given combination a different number of hours after deployment of the software component of the given combination to a baseline number of faults.

### Claim 6 (depends on 5)

The method of claim 5, wherein a first time-based correlation score of the time-based correlation scores calculated for a first number of hours after deployment of the software component is weighted more heavily than a second time-based correlation score of the time-based correlation scores calculated for a second number of hours after deployment of the software component, the first number of hours being less than the second number of hours.

### Claim 7 (depends on 5)

The method of claim 5, wherein the baseline number of faults comprises a number of computing devices of the device type of the given combination that encountered the fault of the given combination a certain number of hours before deployment of the software component of the given combination.

### Claim 8 (depends on 2)

The method of claim 2, wherein rendering a decision to proceed or not proceed with a future deployment of the software component to additional computing devices comprises:
for each combination of fault, software component to which the fault is attributed, and device type, rendering a decision to proceed or not proceed with the future deployment of the software component based on the number of computing devices impacted by one or more faults attributed to the software component;
for each combination of software component to which a fault has been attributed and device type, rendering a decision to proceed or not proceed with the future deployment of the software component based on whether a decision to not proceed with the deployment was rendered for any fault associated with the combination; and
for each software component to which a fault has been attributed, rendering a decision to proceed or not proceed with the future deployment of the software component based on whether a decision to not proceed with the future deployment was rendered for any device type associated with the software component to which the fault has been attributed.

### Claim 9 (depends on 8)

The method of claim 8, wherein rendering the decision to proceed or not proceed with the future deployment of the software component based on the number of computing devices impacted by one or more faults attributed to the software component comprises comparing the number of computing devices impacted to a historical threshold.

### Claim 10

A system, comprising:
one or more processing units; and
one or more memory devices coupled to the one or more processing units, the one or more memory devices storing program instructions for execution by the one or more processing units, the program instructions including:
an attribution component configured to attribute each fault occurring on computing devices having a given device type to a particular software component having a highest correlation score; and
a decision component configured to render a decision to proceed or not proceed with a future deployment of the software component to additional computing devices based at least on a number of computing devices impacted by one or more faults attributed to the software component for each software component to which a fault is attributed.

### Claim 11 (depends on 10)

The system of claim 10, wherein the program instructions further include one or more of:
a deployment signal collection component configured to obtain deployment signals comprising information relating to deployments of software components to a plurality of computing devices;
a fault signal collection component configured to obtain fault signals comprising information relating to faults encountered by the plurality of computing devices;
a device type collection component configured to obtain device type information that describes a device type of each of the plurality of computing devices; and
a correlation scoring component configured to obtain a correlation score for each combination of software component, fault, and device type based on the deployment signals, fault signals, and device type information.

### Claim 12 (depends on 11)

The system of claim 11, wherein each deployment signal comprises a deployment time, an identifier of a deployed software component, a version of the deployed software component, and an identifier of a computing device upon which the deployed software component was deployed;
wherein each fault signal comprises a time that a computing device encountered a fault, an identifier of the computing device that encountered the fault, a type associated with the fault, and an error code associated with the fault; and
wherein the device type information comprises a set of attributes, wherein each attribute may be assigned a value from a corresponding set of values.

### Claim 13 (depends on 11)

The system of claim 11, wherein the correlation scoring component is configured to obtain a correlation score for a given combination of software component, fault and device type by calculating a weighted sum of time-based correlation scores for the given combination of software component, fault and device type, wherein each time-based correlation score is obtained by comparing a number of computing devices of the device type of the given combination that encountered the fault of the given combination a different number of hours after deployment of the software component of the given combination to a baseline number of faults.

### Claim 14 (depends on 13)

The system of claim 13, wherein a first time-based correlation score of the time-based correlation scores calculated for a first number of hours after deployment of the software component is weighted more heavily than a second time-based correlation score of the time-based correlation scores calculated for a second number of hours after deployment of the software component, the first number of hours being less than the second number of hours.

### Claim 15 (depends on 13)

The system of claim 13, wherein the baseline number of faults comprises a number of computing devices of the device type of the given combination that encountered the fault of the given combination a certain number of hours before deployment of the software component of the given combination.

### Claim 16 (depends on 11)

The system of claim 11, wherein the decision component is configured to render the decision to proceed or not proceed with the future deployment of the software component by:
for each combination of fault, software component to which the fault is attributed, and device type, rendering a decision to proceed or not proceed with the future deployment of the software component based on the number of computing devices impacted by one or more faults attributed to the software component;
for each combination of software component to which a fault has been attributed and device type, rendering a decision to proceed or not proceed with the future deployment of the software component based on whether a decision to not proceed with the deployment was rendered for any fault associated with the combination; and
for each software component to which a fault has been attributed, rendering a decision to proceed or not proceed with the future deployment of the software component based on whether a decision to not proceed with the future deployment was rendered for any device type associated with the software component to which the fault has been attributed.

### Claim 17

A computer program product comprising a computer-readable storage device having computer program logic recorded thereon that when executed by a processor-based computer system causes the processor-based system to perform a method, the method comprising:
attributing each fault occurring on computing devices having a given device type to a particular software component having a highest correlation score; and
for each software component to which a fault is attributed, rendering a decision to proceed or not proceed with a future deployment of the software component to additional computing devices based at least on a number of computing devices impacted by one or more faults attributed to the software component.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein the method further comprises:
obtaining deployment signals comprising information relating to deployments of software components to a plurality of computing devices;
obtaining fault signals comprising information relating to faults encountered by the plurality of computing devices;
obtaining device type information that describes a device type of each of the plurality of computing devices; and
based on the deployment signals, fault signals, and device type information obtaining a correlation score for each combination of software component, fault, and device type.

### Claim 19 (depends on 18)

The computer program product of claim 18, wherein each deployment signal comprises a deployment time, an identifier of a deployed software component, a version of the deployed software component, and an identifier of a computing device upon which the deployed software component was deployed;
wherein each fault signal comprises a time that a computing device encountered a fault, an identifier of the computing device that encountered the fault, a type associated with the fault, and an error code associated with the fault; and
wherein the device type information comprises a set of attributes, wherein each attribute may be assigned a value from a corresponding set of values.

### Claim 20 (depends on 18)

The computer program product of claim 18, wherein the correlation score for a given combination of software component, fault and device type is calculated as a weighted sum of time-based correlation scores for the given combination of software component, fault and device type, wherein each time-based correlation score is obtained by comparing a number of computing devices of the device type of the given combination that encountered the fault of the given combination a different number of hours after deployment of the software component of the given combination to a baseline number of faults.
