IP Library Granted Patent US 12,164,899
Granted Patent B2
US 12,164,899 · App. 17/501,236 · Granted Dec 10, 2024

System for software service upgrade

Inventors: Naveen Kumar Kalaskar (Freemont, CA); Sudipto Mukhopadhyay (Pleasanton, CA); Naveen Chandra Gorijala (San Jose, CA); Swapneel Dattaram Ambre (Milpitas, CA)
Assignee: VMware LLC
G06F8/65
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 12,164,899
App. No.
17/501,236
Filed
Oct 14, 2021
Granted
Dec 10, 2024
Kind
B2
Art Unit
2192
USPC
717/170
Abstract

Examples are disclosed for upgrading services of a software-based service according to a predefined sequence to account for dependencies between services. An upgrade package that includes a manifest defining an order for upgrading services of the software-based system is retrieved. Each service is upgraded according to the sequence and a status log is modified following each upgrade to include a unified status summary associated with all services being upgraded.

Claims (49)

1. A computing system, comprising:

one or more processors; and

a non-transitory computer readable memory storing instructions executable by the one or more processors to cause the computing system to perform operations comprising:

retrieving, by a management service of the computing system, an upgrade package for upgrading a software-based system of a virtualized computing environment (VCE) including one or more virtual machines (VM), the management service managing the VCE;

identifying, by the management service, a manifest within the upgrade package, the manifest defining a plurality of services included in the software-based system to upgrade and a predefined sequence for which individual services of the plurality of services are to be upgraded to account for dependencies between the plurality of services;

generating, by the management service, a status log associated with upgrading the software-based system, the status log being generated to include a unified status summary associated with all of the services; and

for the individual services and in accordance to the predefined sequence:

executing a respective service upgrade;

determining, by the management service, a status of the respective service upgrade; and

modifying, by the management service the status log to include the status of the respective service upgrade.

2. The computing system of claim 1 , wherein the individual services correspond to a respective upgrade element in a list of upgrade elements included in the manifest, the upgrade elements being listed in the list of upgrade elements according to the predefined sequence.

3. The computing system of claim 2 , wherein individual upgrade elements in the list of upgrade elements include at least one of a location of executable code, an executable name, an executable type, a timeout value, or version information.

4. The computing system of claim 1 , wherein determining the status of the respective service upgrade further comprises determining whether an amount of time executing the respective service upgrade exceeds a maximum upgrade time defined in the manifest for the respective service upgrade.

5. The computing system of claim 4 , the operations further comprising:

halting the upgrade of the software-based system in response to determining the amount of time executing the respective service upgrade exceeds the maximum upgrade time, the status log being modified to include an error message to indicate an error in the respective service upgrade.

6. The computing system of claim 1 , the operations further comprising:

selecting the upgrade package from a plurality of upgrade bundle based at least in part on the software-based system to be upgraded and a version associated with the software-based system.

7. The computing system of claim 1 , wherein at least one of the one or more VMs executes on a host computer within a software-defined data center (SDDC), the host computer having installed thereon a hypervisor to support a VM execution space within which the VM is instantiated and executed.

8. A non-transitory computer-readable medium embodying executable instructions, which, when executed by a processor, cause at least one computing device to perform operations comprising:

retrieving, by a management service of the computing device, an upgrade package for upgrading a software-based system of a virtualized computing environment (VCE) including one or more virtual machines (VM), the management service managing the VCE;

identifying, by the management service, a manifest within the upgrade package, the manifest defining a plurality of services included in the software-based system to upgrade and a predefined sequence for which individual services of the plurality of services are to be upgraded to account for dependencies between the plurality of services;

generating, by the management service, a status log associated with upgrading the software-based system, the status log being generated to include a unified status summary associated with all of the services; and

for the individual services and in accordance to the predefined sequence:

executing a respective service upgrade;

determining, by the management service, a status of the respective service upgrade; and

modifying, by the management service, the status log to include the status of the respective service upgrade.

9. The non-transitory computer-readable medium of claim 8 , wherein the individual services correspond to a respective upgrade element in a list of upgrade elements included in the manifest, the upgrade elements being listed in the list of upgrade elements according to the predefined sequence.

10. The non-transitory computer-readable medium of claim 9 , wherein individual upgrade elements in the list of upgrade elements include at least one of a location of executable code, an executable name, an executable type, a timeout value, or version information.

11. The non-transitory computer-readable medium of claim 8 , wherein determining the status of the respective service upgrade further comprises determining whether an amount of time executing the respective service upgrade exceeds a maximum upgrade time defined in the manifest for the respective service upgrade.

12. The non-transitory computer-readable medium of claim 11 , the operations further comprising:

halting the upgrade of the software-based system in response to determining the amount of time executing the respective service upgrade exceeds the maximum upgrade time, the status log being modified to include an error message to indicate an error in the respective service upgrade.

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

selecting the upgrade package from a plurality of upgrade bundle based at least in part on the software-based system to be upgraded and a version associated with the software-based system.

14. A method, comprising:

retrieving, by a management service of a computing system, an upgrade package for upgrading a software-based system of a virtualized computing environment (VCE) including one or more virtual machines (VM), the management service managing the VCE;

identifying, by the management service, a manifest within the upgrade package, the manifest defining a plurality of services included in the software-based system to upgrade and a predefined sequence for which individual services of the plurality of services are to be upgraded to account for dependencies between the plurality of services;

generating, by the management service, a status log associated with upgrading the software-based system, the status log being generated to include a unified status summary associated with all of the services; and

for the individual services and in accordance to the predefined sequence:

executing a respective service upgrade;

determining, by the management service, a status of the respective service upgrade; and

modifying, by the management service, the status log to include the status of the respective service upgrade.

15. The method of claim 14 , wherein the individual services correspond to a respective upgrade element in a list of upgrade elements included in the manifest, the upgrade elements being listed in the list of upgrade elements according to the predefined sequence.

16. The method of claim 15 , wherein individual upgrade elements in the list of upgrade elements include at least one of a location of executable code, an executable name, an executable type, a timeout value, or version information.

17. The method of claim 14 , wherein determining the status of the respective service upgrade further comprises determining whether an amount of time executing the respective service upgrade exceeds a maximum upgrade time defined in the manifest for the respective service upgrade.

18. The method of claim 17 , further comprising:

halting the upgrade of the software-based system in response to determining the amount of time executing the respective service upgrade exceeds the maximum upgrade time, the status log being modified to include an error message to indicate an error in the respective service upgrade.

19. The method of claim 14 , further comprising:

selecting the upgrade package from a plurality of upgrade bundle based at least in part on the software-based system to be upgraded and a version associated with the software-based system.

20. The method of claim 14 , wherein at least one of the one or more VMs executes on a host computer within a software-defined data center (SDDC), the host computer having installed thereon a hypervisor to support a VM execution space within which the VM is instantiated and executed.