# US 11,029,936 B2 · Deploying packages to devices in a fleet in stages

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

- Number: US 11,029,936 B2
- Document ID: US11029936B2
- Status: Granted
- Kind: B2
- Application number: 16/381,582
- Filed: 2019-04-11
- Published: 2020-10-15
- Granted: 2021-06-08
- Earliest claimed: 2019-04-11
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Christopher G. Kaler; Ashish Munjal
- Web page: https://patentgrep.com/patent/US11029936B2

## CPC

- G06F 8/64: {Retargetable}
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06N 3/044: Recurrent networks, e.g. Hopfield networks
- G06N 3/0442: characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
- G06N 3/08: Learning methods
- G06N 3/09: Supervised learning
- G06N 20/00: Machine learning
- G06F 8/60: Software deployment
- G06F 11/302: {where the computing system component is a software system}
- G06F 11/3065: {Monitoring arrangements determined by the means or processing involved in reporting the monitored data (error or fault reporting or logging G06F11/0766)}
- G06F 11/366: {using diagnostics (G06F11/0703 takes precedence)}
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06N 7/01: Probabilistic graphical models, e.g. probabilistic networks
- G06N 20/10: using kernel methods, e.g. support vector machines [SVM]
- G06N 20/20: Ensemble learning
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Systems and methods for deploying packages to devices in a fleet in stages are provided. A method includes first scanning hardware configured to handle functions unrelated to the customer workloads in a first stage to determine whether a selected diversity target for deploying the package is met. The method further includes, if the selected diversity target for deploying the package is not met, then scanning hardware configured to handle at least a subset of the customer workloads in a second stage to determine whether the selected diversity target for deploying the package is met. The method further includes, if the selected diversity target for deploying the package is met after the scanning, then using the processor, deploying the package to the first subset of the set of devices in the first stage and to a second subset of the set of devices in the second stage.

## Claims

### Claim 1

A method for deploying a package to a set of devices in a fleet comprising hardware configurable to perform functions related to customer workloads, the method comprising:
first scanning hardware in a first stage to determine whether a selected diversity target for deploying the package is met, wherein the first scanning further comprises generating a first information regarding a first minimum scanning tree comprising a first subset of a set of devices in the first stage, wherein the first stage comprises hardware configured to handle functions unrelated to the customer workloads, and wherein the selected diversity target is based on at least a package type associated with the package and a type of impact associated with the package;
if the selected diversity target for deploying the package is met after the first scanning, then using a processor, deploying the package to at least the first subset of the set of devices in the first stage based on instructions associated with the package;
if the selected diversity target for deploying the package is not met after the first scanning, then second scanning hardware in a second stage to determine whether the selected diversity target for deploying the package is met, wherein the second stage comprises hardware configured to handle at least a subset of the customer workloads; and
if the selected diversity target for deploying the package is met after the second scanning, then using the processor, deploying the package to the first subset of the set of devices in the first stage and to a second subset of the set of devices in the second stage based on the instructions associated with the package.

### Claim 2 (depends on 1)

The method of claim 1 further comprising scanning the hardware in the fleet to obtain information about the hardware and storing the information about the hardware in a database; wherein the information includes at least the package type associated with the package and the type of impact associated with the package.

### Claim 3 (depends on 1)

The method of claim 1 further comprising classifying the hardware in the fleet into deployment categories by volume.

### Claim 4 (depends on 1)

The method of claim 1 further comprising generating a second information regarding a second minimum scanning tree comprising the second subset of the set of devices.

### Claim 5 (depends on 1)

The method of claim 1, wherein the fleet comprises a predetermined number of types of the set of devices including a first type of devices, and wherein the selected diversity target specifies a percentage of the first type of devices.

### Claim 6 (depends on 1)

The method of claim 1 further comprising, if the selected diversity target for deploying the package is not met after the second scanning, then continuing to scan any remaining stages until the selected diversity target for deploying the package is met or all of the remaining stages have been scanned.

### Claim 7

A method for deploying a package to a set of devices in a fleet comprising hardware configurable to perform functions related to customer workloads, the method comprising:
first scanning hardware in a first stage to determine whether a selected diversity target for deploying the package is met, wherein the first scanning further comprises generating a first information regarding a first minimum scanning tree comprising a first subset of a set of devices in the first stage, wherein the first stage comprises hardware configured to not handle any workloads, and wherein the selected diversity target is based on at least a package type associated with the package and a type of impact associated with the package;
if the selected diversity target for deploying the package is not met after the first scanning, then second scanning hardware in a second stage to determine whether the selected diversity target for deploying the package is met, wherein the second stage comprises hardware configured to handle a first selected number of the customer workloads;
if the selected diversity target for deploying the package is not met after the second scanning, then third scanning a third stage to determine whether the selected diversity target for deploying the package is met, wherein the third stage comprises hardware configured to handle a second selected number of the customer workloads, wherein the second selected number is greater than the first selected number; and
if the selected diversity target for deploying the package is met after third scanning the third stage, using the processor, deploying the package to at least the first subset of the set of devices in the first stage, a second subset of the set of devices in the second stage, and a third subset of the set of devices in the third stage based on the instructions associated with the package.

### Claim 8 (depends on 7)

The method of claim 7 further comprising scanning the hardware in the fleet to obtain information about the hardware and storing the information about the hardware in a database.

### Claim 9 (depends on 7)

The method of claim 7 further comprising classifying the hardware in the fleet into deployment categories by volume.

### Claim 10 (depends on 7)

The method of claim 7 further comprising generating a second information regarding a second minimum scanning tree comprising the second subset of the set of devices.

### Claim 11 (depends on 10)

The method of claim 10 further comprising generating a third information regarding a third minimum scanning tree comprising the third subset of the set of devices.

### Claim 12 (depends on 7)

The method of claim 7 further comprising, if the selected diversity target for deploying the package is not met after the third scanning, then continuing to scan any remaining stages until the selected diversity target for deploying the package is met or all of the remaining stages have been scanned.

### Claim 13

A system for deploying a package to a set of devices in a fleet comprising hardware configurable to perform functions related to customer workloads, wherein the system comprises at least one processor and a set of instructions stored in at least one memory, the set of instructions when executed by the at least one processor, configured to:
first scan hardware in a first stage to determine whether a selected diversity target for deploying the package is met, wherein at least a first subset of the set of instructions is further configured to generate a first information regarding a first minimum scanning tree comprising a first subset of a set of devices in the first stage, wherein the first stage comprises hardware configured to handle functions unrelated to the customer workloads, and wherein the selected diversity target is based on at least a package type associated with the package and a type of impact associated with the package;
if the selected diversity target for deploying the package is met after the first scan, then deploy the package to at least the first subset of the set of devices in the first stage based on instructions associated with the package;
if the selected diversity target for deploying the package is not met after the first scan, then second scan hardware in a second stage to determine whether the selected diversity target for deploying the package is met, wherein the second stage comprises hardware configured to handle at least a subset of the customer workloads; and
if the selected diversity target for deploying the package is met after the second scan, then deploy the package to the first subset of the set of devices in the first stage and to a second subset of the set of devices in the second stage based on the instructions associated with the package.

### Claim 14 (depends on 13)

The system of claim 13, wherein at least a second subset of the set of instructions is further configured to scan the hardware in the fleet to obtain information about the hardware and store the information about the hardware in a database.

### Claim 15 (depends on 13)

The system of claim 13, wherein at least a second subset of the set of instructions is further configured to classify the hardware in the fleet into deployment categories by volume.

### Claim 16 (depends on 13)

The system of claim 13, wherein at least a second subset of the set of instructions is further configured to generate a second information regarding a second minimum scanning tree comprising the second subset of the set of devices.

### Claim 17 (depends on 16)

The system of claim 16, wherein at least a third subset of the set of instructions is further configured to, if the selected diversity target for deploying the package is not met after the second scan, then continue to scan any remaining stages until the selected diversity target for deploying the package is met or all of the remaining stages have been scanned.
