IP Library Granted Patent US 11,768,672
Granted Patent B1
US 11,768,672 · App. 17/137,054 · Granted Sep 26, 2023

Systems and methods for user-controlled deployment of software updates

Inventors: Denis Silakov (Moscow, RU); Igor Bazhitov (Moscow, RU)
Assignee: Virtuozzo International GmbH
G06F8/65G06F8/71G06F11/302G06F11/3495G06F9/4401
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,768,672
App. No.
17/137,054
Filed
Dec 29, 2020
Granted
Sep 26, 2023
Kind
B1
Examiner
WEI, ZENGPU
Art Unit
2192
USPC
717/172
Abstract

Disclosed herein are systems and methods for updating software object instances on a plurality of nodes. An exemplary method may comprise monitoring a software repository for an update to the software object instance installed on the plurality of nodes. In response to detecting the update, the method may comprise initiating installation of the update to the software object instance on a first subset of the plurality of nodes in accordance with an installation schedule. The method may comprise determining whether a functionality or performance issue in the software object instance or a respective node of the first subset was detected subsequent to updating the software object instance. In response to determining that the functionality or performance issue was not detected, the method may comprise updating the software object instance on a second subset of the plurality of nodes in accordance with the installation schedule.

Claims (58)

1. A method for updating software object instances on a plurality of nodes, the method comprising, by at least one computing device,

monitoring a software repository for an update to a software object instance installed on the plurality of nodes;

in response to detecting a first update, initiating installation of the first update to the software object instance on a first subset of the plurality of nodes in accordance with a first installation schedule;

determining whether a functionality or performance issue in the software object instance or a respective node of the first subset was detected, over a period of time, subsequent to updating the software object instance;

in response to determining that the functionality or performance issue was not detected over the period of time, updating the software object instance on a second subset of the plurality of nodes in accordance with the first installation schedule;

determining whether the functionality or performance issue in the software object instance or a respective node of the second subset was detected subsequent to updating the software object instance;

in response to determining that the functionality or performance issue was not detected, updating the software object instance on a third subset of the plurality of nodes in accordance with the first installation schedule; and

concurrently with the first installation schedule, detecting a second update that is newer than the first update and initiating installation of the second update, to the software object instance on the first subset of the plurality of nodes in accordance with a second installation schedule, wherein the first installation schedule and the second installation schedule run in parallel, and wherein the second update is installed on other subsets of the plurality of nodes based on whether the functionality or performance issue was detected on the first subset subsequent to installing the second update.

2. The method of claim 1 , wherein initiating the installation of the first update to the software object instance on the first subset of the plurality of nodes comprises sending corresponding commands to update agents on the plurality of nodes.

3. The method of claim 1 , further comprising:

in response to determining that the functionality or performance issue was detected, not updating the software object instance on the second subset of the plurality of nodes; and

in response to determining that the functionality or performance issue was detected, notifying a user of the functionality or performance issue.

4. The method of claim 1 , further comprising:

in response to determining that the functionality or performance issue was detected, reverting the software object instance on the first subset of the plurality of nodes to a version prior to the first update.

5. The method of claim 1 , wherein the first installation schedule indicates a time latency between updating the software object instance on the first subset and updating the software object instance on the second subset.

6. The method of claim 1 , wherein the first installation schedule indicates which nodes of the plurality of nodes are included in the first subset and which nodes of the plurality of nodes are included in the second subset.

7. The method of claim 1 , wherein determining whether the functionality or performance issue was detected further comprises:

performing a health check of the software object instance or nodes of the first subset by:

extracting attributes of the software object instance or the nodes of the first subset over the period of time subsequent to updating the software object instance; and

comparing the attributes of the software object instance or the nodes of the first subset to criteria of health checker rules, wherein the health checker rules indicate whether the functionality or performance issue exists.

8. The method of claim 1 , further comprising:

notifying a user when a reboot of at least one node of the plurality of nodes is needed; and

rebooting the at least one node of the plurality of nodes subsequent to updating the software object instance on the at least one node.

9. A system for updating software object instances on a plurality of nodes, the system comprising: one or more hardware processors configured to:

monitor a software repository for an update to a software object instance installed on the plurality of nodes;

in response to detecting a first update, initiate installation of the first update to the software object instance on a first subset of the plurality of nodes in accordance with a first installation schedule;

determine whether a functionality or performance issue in the software object instance or a respective node of the first subset was detected, over a period of time, subsequent to updating the software object instance; [[and]]

in response to determining that the functionality or performance issue was not detected over the period of time, update the software object instance on a second subset of the plurality of nodes in accordance with the first installation schedule;

determine whether the functionality or performance issue in the software object instance or a respective node of the second subset was detected subsequent to updating the software object instance;

in response to determining that the functionality or performance issue was not detected, update the software object instance on a third subset of the plurality of nodes in accordance with the first installation schedule; and

concurrently with the first installation schedule, detect a second update that is newer than the first update and initiate installation of the second update, to the software object instance on the first subset of the plurality of nodes in accordance with a second installation schedule, wherein the first installation schedule and the second installation schedule run in parallel, and wherein the second update is installed on other subsets of the plurality of nodes based on whether the functionality or performance issue was detected on the first subset subsequent to installing the second update.

10. The system of claim 9 , wherein the one or more hardware processors are configured to initiate the installation of the first update to the software object instance on the first subset of the plurality of nodes by sending corresponding commands to update agents on the plurality of nodes.

11. The system of claim 9 , wherein the one or more hardware processors are further configured to:

in response to determining that the functionality or performance issue was detected, not update the software object instance on the second subset of the plurality of nodes; and

in response to determining that the functionality or performance issue was detected, notify a user of the functionality or performance issue.

12. The system of claim 9 , wherein the one or more hardware processors are further configured to:

in response to determining that the functionality or performance issue was detected, revert the software object instance on the first subset of the plurality of nodes to a version prior to the first update.

13. The system of claim 9 , wherein the one or more hardware processors are further configured to:

receive, from a user, the first installation schedule that indicates a time latency between updating the software object instance on the first subset and updating the software object instance on the second subset.

14. The system of claim 9 , wherein the one or more hardware processors are further configured to:

receive, from a user, an indication of which nodes of the plurality of nodes are included in the first subset and which nodes of the plurality of nodes are included in the second subset.

15. The system of claim 9 , wherein the one or more hardware processors are further configured to determine whether the functionality or performance issue was detected by:

performing a health check of the software object instance or nodes of the first subset by:

extracting attributes of the software object instance or the nodes of the first subset over the period of time subsequent to updating the software object instance; and

comparing the attributes of the software object instance or the nodes of the first subset to criteria of health checker rules, wherein the health checker rules indicate whether the functionality or performance issue exists.

16. The system of claim 9 , wherein the one or more hardware processors are further configured to:

notify a user when a reboot of at least one node of the plurality of nodes is needed; and

reboot the at least one node of the plurality of nodes subsequent to updating the software object instance on the at least one node.

17. A non-transitory computer readable medium storing thereon computer executable instructions for updating software object instances on a plurality of nodes, including instructions for:

monitoring a software repository for an update to a software object instance installed on the plurality of nodes;

in response to detecting a first update, initiating installation of the first update to the software object instance on a first subset of the plurality of nodes in accordance with a first installation schedule;

determining whether a functionality or performance issue in the software object instance or a respective node of the first subset was detected, over a period of time, subsequent to updating the software object instance;

in response to determining that the functionality or performance issue was not detected over the period of time, updating the software object instance on a second subset of the plurality of nodes in accordance with the first installation schedule;

determining whether the functionality or performance issue in the software object instance or a respective node of the second subset was detected subsequent to updating the software object instance;

in response to determining that the functionality or performance issue was not detected, updating the software object instance on a third subset of the plurality of nodes in accordance with the first installation schedule; and

concurrently with the first installation schedule, detecting a second update that is newer than the first update and initiating installation of the second update, to the software object instance on the first subset of the plurality of nodes in accordance with a second installation schedule, wherein the first installation schedule and the second installation schedule run in parallel, and wherein the second update is installed on other subsets of the plurality of nodes based on whether the functionality or performance issue was detected on the first subset subsequent to installing the second update.

18. The non-transitory computer readable medium of claim 17 , further comprising instructions for:

in response to determining that the functionality or performance issue was detected, not updating the software object instance on the second subset of the plurality of nodes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2023
From: SILAKOV, DENIS; BAZHITOV, IGOR
To: VIRTUOZZO INTERNATIONAL GMBH
Reel/Frame 064108/0940 →
Cited By (4)
US 12,265,817 US 12,277,414 US 12,360,796 US 12,554,682