# US 10,374,930 B2 · Off-peak patching for enterprise stability

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

- Number: US 10,374,930 B2
- Document ID: US10374930B2
- Status: Granted
- Kind: B2
- Application number: 15/009,809
- Filed: 2016-01-28
- Published: 2017-08-03
- Granted: 2019-08-06
- Earliest claimed: 2016-01-28
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Jianfeng Cai; Dexter Dauz; Brad Smith; Zohar Raz; Neetha Tuluri; Nick Alfeo; Roshane Silva
- Web page: https://patentgrep.com/patent/US10374930B2

## CPC

- H04L 43/16: Threshold monitoring
- H04L 43/0876: Network utilisation, e.g. volume of load or congestion level
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L 67/62: Establishing a time schedule for servicing the requests
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In one example, a server farm patching system may wait until fewer users are accessing a server farm to apply a patch code set to a server application executed by a server at the server farm. The server farm patching system may identify an off-peak usage time range for a server farm describing when the server farm has an activity level below an activity threshold. The server farm patching system may apply a patch code set at an off-peak usage patching aggressiveness level indicating an off-peak upper bound percentage of servers in the server farm receiving the patch code set when within the off-peak usage time range. The server farm patching system may apply the patch code set at a peak usage patching aggressiveness level indicating a peak upper bound percentage of servers in the server farm receiving the patch code set when outside the off-peak usage time range.

## Claims

### Claim 1

A server farm patching system comprising:
a processor;
a memory in communication with the processor, the memory storing instructions that, when executed by the processor, causes the server farm patching system to identify an off-peak usage time range for a server farm having a plurality of servers, the off-peak usage time range describing when the server farm has an activity level below an activity threshold; and
a data interface configured to apply a patch code set to one of the plurality of servers in the server farm;
wherein the data interface is configured such that:
the patch code set is applied at an off-peak usage aggressiveness level when the server farm is operating within the off-peak usage time range, the off-peak usage aggressiveness level indicating an off-peak upper bound percentage of servers in the server farm receiving the patch code set when within the off-peak usage time range, and
the patch code set is applied at a peak usage aggressiveness level when the server farm is operating outside the off-peak usage time range, the peak usage aggressiveness level indicating a peak upper bound percentage of servers in the server farm receiving the patch code set when outside the off-peak usage time range.

### Claim 2 (depends on 1)

The server farm patching system of claim 1,
wherein the instructions further cause the server farm patching system to determine a geographic location for the server farm to identify the off-peak usage time range.

### Claim 3 (depends on 1)

The server farm patching system of claim 1, wherein the memory is configured to define the off-peak usage time range in a network container object describing the server farm.

### Claim 4 (depends on 1)

The server farm patching system of claim 1, wherein the memory is configured to designate the server farm as a single tenant server farm dedicated to a single client.

### Claim 5 (depends on 1)

The server farm patching system of claim 1, wherein the memory is configured to define a tenant mandated off-peak usage time range in a network container object describing a single tenant server farm.

### Claim 6 (depends on 1)

The server farm patching system of claim 1, wherein the data interface is further configured to apply the patch code set at a pre-set shoulder aggressiveness level to the server farm proximate to an off-peak usage time range bound.

### Claim 7 (depends on 1)

The server farm patching system of claim 1,
wherein the instructions further cause the server farm patching system to override the off-peak usage aggressiveness level upon receiving an administrator override.

### Claim 8 (depends on 1)

The server farm patching system of claim 1, wherein the memory is configured to associate a geographic region for the server farm with the patch code set for the server farm.

### Claim 9 (depends on 1)

The server farm patching system of claim 1,
wherein the instructions further cause the server farm patching system to validate the patch code set based on an execution of the patch code set in an execution environment for a server application incorporating the patch code set.

### Claim 10 (depends on 1)

The server farm patching system of claim 1,
wherein the instructions further cause the server farm patching system to rate the patch code set based on at least one of a build age and a regression history for the patch code set.

### Claim 11 (depends on 1)

The server farm patching system of claim 1, wherein the data interface is further configured to place a patching bid for the patch code set for the server farm requesting to apply the patch code set.

### Claim 12 (depends on 1)

The server farm patching system of claim 1,
wherein the instructions further cause the server farm patching system to assign a farm temperature to the server farm describing a server characteristic used to determine when to deploy the patch code set to the server farm.

### Claim 13 (depends on 1)

The server farm patching of claim 1, further comprising:
wherein the instructions further cause the server farm patching system to schedule a deployment of the patch code set based on a farm temperature for the server farm.

### Claim 14 (depends on 1)

The server farm patching system of claim 1, wherein the memory is configured to mark the patch code set upon a regression occurrence indicating that the patch code set had to be removed to revert server application to an earlier version.

### Claim 15

A computing device comprising:
a processor;
a memory in communication with the processor, the memory storing a series of instructions that, when executed by the processor, cause the computing device to:
apply a patch code set to a server farm,
analyze a request-per-second history for the server farm to identify an off-peak usage time range for the sever farm describing when the server farm has an activity level below an activity threshold;
wherein:
the patch code set is applied at an off-peak usage aggressiveness level when the server farm is operating within the off-peak usage time range, the off-peak usage aggressiveness level indicating an off-peak upper bound percentage of servers in the server farm receiving the patch code set when within the off-peak usage time range, and
the patch code set is applied at a peak usage aggressiveness level when the server farm is operating outside the off-peak usage time range, the peak usage aggressiveness level indicating a peak upper bound percentage of servers in the server farm receiving the patch code set when outside the off-peak usage time range.

### Claim 16 (depends on 15)

The computing device of claim 15, wherein the instructions further cause the computing device to adjust the off-peak usage time range based on a current request-per-second report for the server farm.

### Claim 17 (depends on 15)

The computing device of claim 15, wherein the instructions further cause the computing device to adjust an aggressiveness level based on a proximity to an off-peak usage time range bound.

### Claim 18 (depends on 15)

The computing device of claim 15, wherein the instructions further cause the computing device to adjust an aggressiveness level based on a current request-per-second report.

### Claim 19

A method, comprising:
identifying an off-peak usage time range for a server farm having a plurality of servers, the off-peak usage time range describing when the server farm has an activity level below an activity threshold;
applying a patch code set to one of the plurality of servers in the server farm;
wherein:
the patch code set is applied at an off-peak usage aggressiveness level when the server farm is operating within the off-peak usage time range, the off-peak usage aggressiveness level indicating of an off-peak upper bound percentage of servers in the servers farm receiving the patch code set when within the off-peak usage time range, and
the patch code set is applied at a peak usage aggressiveness level when the server farm is operating outside the off-peak usage time range, the peak usage aggressiveness level indicating a peak upper bound percentage of servers in the server farm receiving the patch code when outside the off-peak usage time range.

### Claim 20 (depends on 19)

The method of claim 19, further comprising
placing a patching bid for the patch code set for the server farm, the patching bid requesting to apply the patch code set.
