IP Library Granted Patent US 10,789,057
Granted Patent B2
US 10,789,057 · App. 16/036,102 · Granted Sep 29, 2020

Predicting a success rate of deploying a software bundle

Inventors: Nikhil M. Vichare (Austin, TX); Arturo Ramos, Jr. (Austin, TX); Abhinav Gupta (Austin, TX)
Assignee: Dell Products L.P.
G06F8/60G06N20/00G06F8/61G06F8/65G06N5/04
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 10,789,057
App. No.
16/036,102
Granted
Sep 29, 2020
Kind
B2
Abstract

In some examples, a server may determine a plurality of variables associated with a software package. For example, the plurality of variables may include a size of the software package, a reboot variable associated with the software package indicating whether a reboot is to be performed after installing the software package, and an installation type indicating whether the software package is a first install or an upgrade. The server may execute a machine learning model to determine, based on the plurality of variables, a risk score predicting an installation success rate of the software package. The server may select a deployment strategy from a plurality of deployment strategies based at least in part on the risk score and the plurality of variables. The server may provide the software package to a plurality of computing devices in accordance with the deployment strategy.

Claims (112)

1. A method comprising:

determining, by a server, a plurality of variables associated with a software package, the plurality of variables comprising:

a software package variable indicating that the software package comprises one of a native application, a universal application, a driver, a firmware update, or a basic input/output system (BIOS);

a size of the software package;

a reboot variable associated with the software package indicating whether a reboot is to be performed after installing the software package; and

an installation type indicating whether the software package is a first install or an upgrade to a previously installed software package;

determining, by a machine learning model that is being executed by the server, a risk score predicting an installation success rate of the software package, the risk score determined based at least in part on the plurality of variables associated with the software package; and

selecting, by the server, a deployment strategy from a plurality of deployment strategies based at least in part on:

the risk score; and

the plurality of variables associated with the software package;

based at least in part on determining that the risk score satisfies a predetermined threshold, initiating deployment of the software package to a plurality of computing devices according to the deployment strategy of the plurality of deployment strategies;

receiving, from one or more computing devices of the plurality of computing devices, a plurality of installation logs associated with an installation of the software package;

determining a success rate associated with the software package based at least in part on the plurality of installation logs;

based at least in part on determining that the success rate satisfies a success threshold, continuing deployment of the software package to the plurality of computing devices; and

based at least in part on determining that the success rate fails to satisfy the success threshold, stopping deployment of the software package to the plurality of computing devices.

2. The method of claim 1 , wherein the plurality of variables further comprise at least one of:

a provider variable identifying a provider of the software package, the provider comprising one or more of a manufacturer of the computing device or a vendor to the manufacturer;

a validation variable indicating a number of validation passes associated with the software package prior to the software package passing a validation process;

an installation time variable indicating an average installation time to install the software package;

a region variable indicating one or more particular geographic regions where the software package is to be provided;

a platform variable indicating one or more particular computing device platforms in which the software package is to be installed;

an operating system variable indicating one or more particular operating system versions associated with the software package; or

a deployment timing variable indicating when the software package is to be deployed.

3. The method of claim 1 , wherein the plurality of variables further comprise at least one of:

a development team variable identifying information associated with a development team that created a software update included in the software package; or

a validation team variable identifying additional information associated with a validation team that validated the software package.

4. The method of claim 1 , wherein the machine learning model learns multiple weights and multiple coefficients from historical data comprising historical success rates associated with previous software package installations.

5. The method of claim 1 , wherein the deployment strategy comprises at least one of:

providing the software package to a first plurality of computing devices located in a particular geographic region;

providing the software package to a second plurality of computing devices that are each based on a particular computing device platform;

providing the software package to a third plurality of computing devices that are each executing a particular operating system or a particular version of the particular operating system; or

providing the software package to a fourth plurality of computing devices at a particular time of a day, a particular day, a particular month, or a particular season.

6. The method of claim 1 , further comprising:

providing the installation logs and the success rate to one or more developers of the software package.

7. The method of claim 6 , further comprising:

adding the plurality of installation logs to training data associated with the machine learning model to create updated training data; and

re-training the machine learning model based at least in part on the updated training data.

8. A server comprising:

one or more processors; and

one or more non-transitory computer readable media storing instructions executable by the one or more processors to perform operations comprising:

determining a plurality of variables associated with a software package, the plurality of variables comprising:

a software package variable indicating that the software package comprises one of a native application, a universal application, a driver, a firmware update, or a basic input/output system (BIOS);

a size of the software package;

a reboot variable associated with the software package indicating whether a reboot is to be performed after installing the software package; and

an installation type indicating whether the software package is a first install or an upgrade to a previously installed software package;

determining, by a machine learning model that is being executed by the server, a risk score predicting an installation success rate of the software package, the risk score determined based at least in part on the plurality of variables associated with the software package; and

selecting a deployment strategy from a plurality of deployment strategies based at least in part on:

the risk score; and

the plurality of variables associated with the software package;

based at least in part on determining that the risk score satisfies a predetermined threshold, initiating deployment of the software package to a plurality of computing devices according to the deployment strategy of the plurality of deployment strategies;

receiving, from one or more computing devices of the plurality of computing devices, a plurality of installation logs associated with an installation of the software package;

determining a success rate associated with the software package based at least in part on the plurality of installation logs;

based at least in part on determining that the success rate satisfies a success threshold, continuing deployment of the software package to the plurality of computing devices; and

based at least in part on determining that the success rate fails to satisfy the success threshold, stopping deployment of the software package to the plurality of computing devices.

9. The server of claim 8 , wherein the plurality of variables further comprise at least one of:

a provider variable identifying a provider of the software package, the provider comprising one or more of a manufacturer of the computing device or a vendor to the manufacturer;

a validation variable indicating a number of validation passes associated with the software package prior to the software package passing a validation process;

an installation time variable indicating an average installation time to install the software package;

a region variable indicating one or more particular geographic regions where the software package is to be provided;

a platform variable indicating one or more particular computing device platforms in which the software package is to be installed;

an operating system variable indicating one or more particular operating system versions associated with the software package; or

a deployment timing variable indicating when the software package is to be deployed.

10. The server of claim 8 , wherein the plurality of variables further comprise at least one of:

a development team variable identifying information associated with a development team that created a software update included in the software package; or

a validation team variable identifying additional information associated with a validation team that validated the software package.

11. The server of claim 8 , wherein the deployment strategy comprises at least one of:

providing the software package to a first plurality of computing devices located in a particular geographic region;

providing the software package to a second plurality of computing devices that are each based on a particular computing device platform;

providing the software package to a third plurality of computing devices that are each executing a particular operating system or a particular version of the particular operating system; or

providing the software package to a fourth plurality of computing devices at a particular time of a day, a particular day, a particular month, or a particular season.

12. The server of claim 8 , further comprising:

based at least in part on determining that the risk score fails to satisfy the predetermined threshold, initiating deployment of the software package to a second plurality of computing devices according to a second deployment strategy of the plurality of deployment strategies, wherein the second plurality of computing devices has fewer computing devices than the plurality of computing devices.

13. The server of claim 12 , further comprising:

adding the plurality of installation logs to training data associated with the machine learning model to create updated training data; and

re-training the machine learning model based at least in part on the updated training data.

14. One or more non-transitory computer readable media storing instructions executable by one or more processors of a server to perform operations comprising:

determining a plurality of variables associated with a software package, the plurality of variables comprising:

a software package variable indicating that the software package comprises one of a native application, a universal application, a driver, a firmware update, or a basic input/output system (BIOS);

a size of the software package;

a reboot variable associated with the software package indicating whether a reboot is to be performed after installing the software package; and

an installation type indicating whether the software package is a first install or an upgrade to a previously installed software package;

determining, by a machine learning model that is being executed by the server, a risk score predicting an installation success rate of the software package, the risk score determined based at least in part on the plurality of variables associated with the software package; and

selecting a deployment strategy from a plurality of deployment strategies based at least in part on:

the risk score; and

the plurality of variables associated with the software package;

based at least in part on determining that the risk score satisfies a predetermined threshold, initiating deployment of the software package to a plurality of computing devices according to the deployment strategy of the plurality of deployment strategies;

receiving, from one or more computing devices of the plurality of computing devices, a plurality of installation logs associated with an installation of the software package;

determining a success rate associated with the software package based at least in part on the plurality of installation logs;

based at least in part on determining that the success rate satisfies a success threshold, continuing deployment of the software package to the plurality of computing devices; and

based at least in part on determining that the success rate fails to satisfy the success threshold, stopping deployment of the software package to the plurality of computing devices.

15. The one or more non-transitory computer readable media of claim 14 , wherein the plurality of variables further comprise at least one of:

a provider variable identifying a provider of the software package, the provider comprising one or more of a manufacturer of the computing device or a vendor to the manufacturer;

a validation variable indicating a number of validation passes associated with the software package prior to the software package passing a validation process;

an installation time variable indicating an average installation time to install the software package;

a region variable indicating one or more particular geographic regions where the software package is to be provided;

a platform variable indicating one or more particular computing device platforms in which the software package is to be installed;

an operating system variable indicating one or more particular operating system versions associated with the software package; or

a deployment timing variable indicating when the software package is to be deployed.

16. The one or more non-transitory computer readable media of claim 14 , wherein the plurality of variables further comprise at least one of:

a development team variable identifying information associated with a development team that created a software update included in the software package; or

a validation team variable identifying additional information associated with a validation team that validated the software package.

17. The one or more non-transitory computer readable media of claim 14 , wherein the deployment strategy comprises at least one of:

providing the software package to a first plurality of computing devices located in a particular geographic region;

providing the software package to a second plurality of computing devices that are each based on a particular computing device platform;

providing the software package to a third plurality of computing devices that are each executing a particular operating system or a particular version of the particular operating system; or

providing the software package to a fourth plurality of computing devices at a particular time of a day, a particular day, a particular month, or a particular season.

18. The one or more non-transitory computer readable media of claim 14 , wherein the machine learning model comprises a random forest model.

19. The one or more non-transitory computer readable media of claim 14 , further comprising:

based at least in part on determining that the risk score fails to satisfy the predetermined threshold, initiating deployment of the software package to a second plurality of computing devices according to a second deployment strategy of the plurality of deployment strategies, wherein the second plurality of computing devices has fewer computing devices than the plurality of computing devices.

20. The one or more non-transitory computer readable media of claim 19 , further comprising:

adding the plurality of installation logs to training data associated with the machine learning model to create updated training data; and

re-training the machine learning model based at least in part on the updated training data.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2018
From: VICHARE, NIKHIL M.; RAMOS, ARTURO, JR.; GUPTA, ABHINAV
To: DELL PRODUCTS L. P.
Reel/Frame 046360/0427 →