IP Library Granted Patent US 11,526,347
Granted Patent B2
US 11,526,347 · App. 17/231,516 · Granted Dec 13, 2022

Intelligent software patch management

Inventors: Kannan Parthasarathy (Palo Alto, CA); Srinivas Rao Doddi (Palo Alto, CA); Hayden Davis (Atlanta, GA)
Assignee: VMware, Inc.
G06F8/658G06F11/3051G06F11/3409
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,526,347
App. No.
17/231,516
Granted
Dec 13, 2022
Kind
B2
Abstract

Systems and methods are described for intelligent software patch management. In an example, a system can receive a selection of device attributes. The system can associate a group of computing devices with attribute values that correspond to each device. The system can also create value pairs of unique pairs of values for each computing device. The system can select a set of computing devices for a deployment ring that maximizes diversity of the values or value pairs. The system can deploy the software patch to the selected devices and monitor device performance for a predetermined period of time before continuing to the next deployment ring or rolling back the update.

Claims (77)

1. A method for intelligent software patch management, comprising:

receiving a selection of a first device attribute;

constructing, in a database, a data table that associates each computing device of a plurality of computing devices with at least one value corresponding to the first device attribute;

assigning, in the data table of the database, a weight to the at least one value for each computing device of the plurality of computing devices;

determining, using the data table of the database, a first deployment device limit for a first deployment ring, wherein the first deployment device limit for the first deployment ring is based at least on a number of computing devices and the weight of the at least one value for each computing device of the plurality of computing devices;

selecting, using the data table of the database, a first deployment set of computing devices from the plurality of computing devices, wherein the first deployment set of computing devices from the plurality of computing devices maximizes diversity of the at least one value for each computing device of the plurality of computing devices within the first deployment set of computing devices from the plurality of computing devices; and

deploying a software patch to the first deployment set of computing devices from the plurality of computing devices.

2. The method of claim 1 , further comprising:

receiving a selection of a second device attribute; and

receiving at least one value associated with the second device attribute, wherein constructing, in the database, the data table includes associating each computing device of the plurality of computing devices with at least one value corresponding to the second device attribute, and wherein the first deployment set of computing devices from the plurality of computing devices maximizes the diversity of the values corresponding to the first and second device attributes within the first deployment set of computing devices from the plurality of computing devices.

3. The method of claim 1 , further comprising:

monitoring performance metrics on the first deployment set of computing devices from the plurality of computing devices; and

in an instance where the performance metrics fall within a threshold:

determining a second deployment device limit for a second deployment ring;

selecting a second deployment set of computing devices from the plurality of computing devices, wherein the second deployment set of computing devices from the plurality of computing devices:

excludes the first deployment set of computing devices from the plurality of computing devices, and

maximizes diversity of the first device attribute within the second deployment set of computing devices from the plurality of computing devices without causing an associated aggregate weight to exceed the second deployment device limit for the second deployment ring; and

deploying the software patch to the second deployment set of computing devices from the plurality of computing devices.

4. The method of claim 1 , further comprising assigning a device weight associated with each computing device of the plurality of computing devices, wherein the first deployment set of computing devices from the plurality of computing devices maximizes diversity of the first device attribute within the first deployment set of computing devices from the plurality of computing devices without causing an associated aggregate device weight to exceed the first deployment device limit for the first deployment ring.

5. The method of claim 1 , wherein the first device attribute comprises at least one of a device model, a device manufacturer, an operating system (“OS”) type, an OS version, a firmware version, a memory size, a storage disk size, OS settings, application settings, a set of installed applications, a primary geographic location, and a user group.

6. The method of claim 1 , wherein constructing, in the database, the data table further comprises:

determining that the at least one value corresponding to the first device attribute is a numerical value; and

categorizing the numerical value based on at least one threshold.

7. The method of claim 1 , further comprising:

monitoring performance metrics on the first deployment set of computing devices from the plurality of computing devices; and

in an instance where the performance metrics fall outside of a threshold, rolling back the deployed software patch to the first deployment set of computing devices from the plurality of computing devices.

8. A non-transitory, computer-readable medium containing instructions that, when executed by a hardware-based processor, perform stages for intelligent software patch management, the stages comprising:

receiving a selection of a first device attribute;

constructing, in a database, a data table that associates each computing device of a plurality of computing devices with at least one value corresponding to the first device attribute;

assigning, in the data table of the database, a weight to the at least one value for each computing device of the plurality of computing devices;

determining, using the data table of the database, a first deployment device limit for a first deployment ring, wherein the first deployment device limit for the first deployment ring is based at least on a number of computing devices and the weight of the at least one value for each computing device of the plurality of computing devices;

selecting, using the data table of the database, a first deployment set of computing devices from the plurality of computing devices, wherein the first deployment set of computing devices from the plurality of computing devices maximizes diversity of the at least one value for each computing device of the plurality of computing devices within the first deployment set of computing devices from the plurality of computing devices; and

deploying a software patch to the first deployment set of computing devices from the plurality of computing devices.

9. The non-transitory, computer-readable medium of claim 8 , the stages further comprising:

receiving a selection of a second device attribute; and

receiving at least one value associated with the second device attribute, wherein constructing, in the database, the data table includes associating each computing device of the plurality of computing devices with at least one value corresponding to the second device attribute, and wherein the first deployment set of computing devices from the plurality of computing devices maximizes the diversity of the values corresponding to the first and second device attributes within the first deployment set of computing devices from the plurality of computing devices.

10. The non-transitory, computer-readable medium of claim 8 , the stages further comprising:

monitoring performance metrics on the first deployment set of computing devices from the plurality of computing devices; and

in an instance where the performance metrics fall within a threshold:

determining a second deployment device limit for a second deployment ring;

selecting a second deployment set of computing devices from the plurality of computing devices, wherein the second deployment set of computing devices from the plurality of computing devices:

excludes the first deployment set of computing devices from the plurality of computing devices, and

maximizes diversity of the first device attribute within the second deployment set of computing devices from the plurality of computing devices without causing an associated aggregate weight to exceed the second deployment device limit for the second deployment ring; and

deploying the software patch to the second deployment set of computing devices from the plurality of computing devices.

11. The non-transitory, computer-readable medium of claim 8 , the stages further comprising assigning a device weight associated with each computing device of the plurality of computing devices, wherein the first deployment set of computing devices from the plurality of computing devices maximizes diversity of the first device attribute within the first deployment set of computing devices from the plurality of computing devices without causing an associated aggregate device weight to exceed the first deployment device limit for the first deployment ring.

12. The non-transitory, computer-readable medium of claim 8 , wherein the first device attribute comprises at least one of a device model, a device manufacturer, an operating system (“OS”) type, an OS version, a firmware version, a memory size, a storage disk size, OS settings, application settings, a set of installed applications, a primary geographic location, and a user group.

13. The non-transitory, computer-readable medium of claim 8 , wherein constructing, in the database, the data table further comprises:

determining that the at least one value corresponding to the first device attribute is a numerical value; and

categorizing the numerical value based on at least one threshold.

14. The non-transitory, computer-readable medium of claim 8 , the stages further comprising:

monitoring performance metrics on the first deployment set of computing devices from the plurality of computing devices; and

in an instance where the performance metrics fall outside of a threshold, rolling back the deployed software patch to the first deployment set of computing devices from the plurality of computing devices.

15. A system for intelligent software patch management, comprising:

a memory storage including a non-transitory, computer-readable medium comprising storing instructions; and

a computing device including a hardware-based processor that executes the instructions to perform stages comprising:

receiving a selection of a first device attribute;

constructing, in a database, a data table that associates each computing device of a plurality of computing devices with at least one value corresponding to the first device attribute;

assigning, in the data table of the database, a weight to the at least one value for each computing device of the plurality of computing devices;

determining, using the data table of the database, a first deployment device limit for a first deployment ring, wherein the first deployment device limit for the first deployment ring is based at least on a number of computing devices and the weight of the at least one value for each computing device of the plurality of computing devices;

selecting, using the data table of the database, a first deployment set of computing devices from the plurality of computing devices, wherein the first deployment set of computing devices from the plurality of computing devices maximizes diversity of the at least one value for each computing device of the plurality of computing devices within the first deployment set of computing devices from the plurality of computing devices; and

deploying a software patch to the first deployment set of computing devices from the plurality of computing devices.

16. The system of claim 15 , the stages further comprising:

receiving a selection of a second device attribute; and

receiving at least one value associated with the second device attribute, wherein constructing, in the database, the data table includes associating each computing device of the plurality of computing devices with at least one value corresponding to the second device attribute, and wherein the first deployment set of computing devices from the plurality of computing devices maximizes the diversity of the values corresponding to the first and second device attributes within the first deployment set of computing devices from the plurality of computing devices.

17. The system of claim 15 , the stages further comprising:

monitoring performance metrics on the first deployment set of computing devices from the plurality of computing devices; and

in an instance where the performance metrics fall within a threshold:

determining a second deployment device limit for a second deployment ring;

selecting a second deployment set of computing devices from the plurality of computing devices, wherein the second deployment set of computing devices from the plurality of computing devices:

excludes the first deployment set of computing devices from the plurality of computing devices, and

maximizes diversity of the first device attribute within the second deployment set of computing devices from the plurality of computing devices without causing an associated aggregate weight to exceed the second deployment device limit for the second deployment ring; and

deploying the software patch to the second deployment set of computing devices from the plurality of computing devices.

18. The system of claim 15 , the stages further comprising assigning a device weight associated with each computing device of the plurality of computing devices, wherein the first deployment set of computing devices from the plurality of computing devices maximizes diversity of the first device attribute within the first deployment set of computing devices from the plurality of computing devices without causing an associated aggregate device weight to exceed the first deployment device limit for the first deployment ring.

19. The system of claim 15 , wherein the first device attribute comprises at least one of a device model, a device manufacturer, an operating system (“OS”) type, an OS version, a firmware version, a memory size, a storage disk size, OS settings, application settings, a set of installed applications, a primary geographic location, and a user group.

20. The system of claim 15 , wherein constructing, in the database, the data table further comprises:

determining that the at least one value corresponding to the first device attribute is a numerical value; and

categorizing the numerical value based on at least one threshold.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2021
From: PARTHASARATHY, KANNAN; DODDI, SRINIVAS RAO; DAVIS, HAYDEN
To: VMWARE, INC.
Reel/Frame 055932/0009 →
Continuity (1)
Related Publication 20220342659A1 · Oct 27, 2022