IP Library Granted Patent US 9,535,684
Granted Patent B2
US 9,535,684 · App. 14/554,015 · Granted Jan 3, 2017

Management of software updates in a virtualized environment of a datacenter using dependency relationships

Inventors: Daniel Kerry Hiltgen (Los Altos, CA); Christopher P. Devine (Palo Alto, CA)
Assignee: VMware, Inc.
G06F8/65G06F8/60G06F9/45558G06F2009/45562
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 9,535,684
App. No.
14/554,015
Granted
Jan 3, 2017
Kind
B2
Abstract

An approach to managing software components in a datacenter having virtualized components includes maintaining a suitable data construct for representing the virtualized elements. In embodiments, virtualized elements include knowledge relating to instantiations of virtual machines. Management of software components includes traversing a data representation of the datacenter, and assessing the compatibility of the software component with components in the datacenter that relate to the target of the software component.

Claims (60)

1. A method of managing software in a datacenter comprising operating a computer to perform steps of:

storing a data construct representative of at least a portion of a datacenter having a distributed computer architecture, the data construct comprising a first component portion, a second component portion, and a relating portion, the first component portion comprising a first list of components within the datacenter, the second component portion comprising a second list of components within the datacenter, and the relating portion comprising a list of dependencies that signify a relationship between each component in the first list of components and a corresponding component in the second list of components;

receiving a request to change software on a target component in the datacenter;

receiving target information representative of the target component;

receiving a software bundle that includes the software to be installed on the target component, metadata that includes information used to describe a relationship between the software and components, and one or more probe scripts that discover a component dependency not listed in the relating portion;

updating the list of dependencies to include the component dependency not listed in the relating portion;

identifying, by a processor, the target component within at least one of the first component portion and the second component portion;

identifying, within the relating portion, one or more dependencies that associate the target component with one or more other components listed within at least one of the first component portion and the second component portion, the one or more dependencies including the component dependency discovered by the one or more probe scripts;

using the metadata and the identified one more dependencies to identify, by the processor, any affected components from among the one or more other components listed within at least one of the first component portion and the second component portion, wherein the affected components reflect a set of possible conflicts that occur due to the installing of the software;

when the set of possible conflicts cannot be resolved, outputting information for the set of possible conflicts that cannot be resolved for one or more of the affected components; and

when the set of possible conflicts are resolvable, enabling the change of the software to be performed on the target component.

2. The method of claim 1 , further comprising receiving task information representative of a desired change for the target component for installing software on the target component, and wherein the method further comprises using at least the task information to further identify the affected components.

3. The method of claim 2 , wherein the affected components reflect a set of possible conflicts that occur due to the installing of the software.

4. The method of claim 1 , further comprising adding the affected components to a data structure that includes the identified dependencies to allow the change of the software to be performed on the target component.

5. The method of claim 4 , further comprising:

transforming the data structure into a workflow that enables changes to the software on the target component by:

obtaining a set of action scripts from a set of feature bundles associated with the affected components, wherein the set of action scripts is added to the workflow based on the dependency relationships; and

remediating the affected components to resolve the set of possible conflicts by executing the action scripts in the workflow, each action script performing an action to resolve the possible conflicts.

6. The method of claim 1 , further comprising receiving input from a user indicating whether or not to proceed with installing the software component when one or more affected components are identified.

7. The method of claim 1 , wherein when the set of possible conflicts are resolvable, receive a request from a user to enable the change of the software to be performed on the target component.

8. The method of claim 1 , wherein the metadata identifies the target component as needing an update prior to installing the software.

9. A system for managing software in a datacenter, the system comprising:

memory for storing a data construct representative of at least a portion of a datacenter having a distributed computer architecture, the data construct comprising a first component portion, a second component portion, and a relating portion, the first component portion comprising a first list of components within the datacenter, the second component portion comprising a second list of components within the datacenter, and the relating portion comprising a list of dependencies that signify a relationship between each component in the first list of components and a corresponding component in the second list of components; and

a processor programmed to:

receive a request to change software on a target component in the datacenter;

receive target information representative of the target component;

receive a software bundle that includes the software to be installed on the target component, metadata that includes information used to describe a relationship between the software and components, and one or more probe scripts that discover a component dependency not listed in the relating portion;

update the list of dependencies to include the component dependency not listed in the relating portion;

identify the target component within at least one of the first component portion and the second component portion;

identify, within the relating portion, one or more dependencies that associate the target component with one or more other components listed within at least one of the first component portion and the second component portion, the one or more dependencies including the component dependency discovered by the one or more probe scripts; and

use metadata and the identified one more dependencies to identify any affected components from among the one or more other components listed within at least one of the first component portion and the second component portion, wherein the affected components reflect a set of possible conflicts that occur due to the installing of the software;

when the set of possible conflicts cannot be resolved, output information for the set of possible conflicts that cannot be resolved for one or more of the affected components; and

when the set of possible conflicts are resolvable, enable the change of the software to be performed on the target component.

10. The system of claim 9 , wherein the processor is further programmed to:

receive task information representative of a desired change for the target component for installing software on the target component; and

use at least the task information to further identify the affected components.

11. The system of claim 10 , wherein the affected components reflect a set of possible conflicts that occur due to the installing of the software.

12. The system of claim 9 , wherein the processor is further programmed to add the affected components to a data structure that includes the identified dependencies to allow the change of the software to be performed on the target component.

13. The system of claim 12 , wherein the processor is further programmed to:

transform the data structure into a workflow that enables changes to the software on the target component by:

obtaining a set of action scripts from a set of feature bundles associated with the affected components, wherein the set of action scripts is added to the workflow based on the dependency relationships; and

remediating the affected components to resolve the set of possible conflicts by executing the action scripts in the workflow, each action script performing an action to resolve the possible conflicts.

14. The system of claim 9 , wherein when the set of possible conflicts are resolvable, the processor is further programmed to receive a request from a user to enable the change of the software to be performed on the target component.

15. The system of claim 9 , wherein the metadata identifies the target component as needing an update prior to installing the software.

16. A non-transitory computer-readable storage medium having computer executable instructions embodied thereon, wherein, when executed by a processor, the computer-executable instructions cause the processor to:

store a data construct representative of at least a portion of a datacenter having a distributed computer architecture, the data construct comprising a first component portion, a second component portion, and a relating portion, the first component portion comprising a first list of components within the datacenter, the second component portion comprising a second list of components within the datacenter, and the relating portion comprising a list of dependencies that signify a relationship between each component in the first list of components and a corresponding component in the second list of components;

receive a request to change software on a target component in the datacenter;

receive target information representative of the target component;

receive a software bundle that includes the software to be installed on the target component, metadata that includes information used to describe a relationship between the software and components, and one or more probe scripts that discover a component dependency not listed in the relating portion;

update the list of dependencies to include the component dependency not listed in the relating portion;

identify the target component within at least one of the first component portion and the second component portion;

identify, within the relating portion, one or more dependencies that associate the target component with one or more other components listed within at least one of the first component portion and the second component portion, the one or more dependencies including the component dependency discovered by the one or more probe scripts; and

use the metadata and the identified one more dependencies to identify any affected components from among the one or more other components listed within at least one of the first component portion and the second component portion, wherein the affected components reflect a set of possible conflicts that occur due to the installing of the software;

when the set of possible conflicts cannot be resolved, output information for the set of possible conflicts that cannot be resolved for one or more of the affected components; and

when the set of possible conflicts are resolvable, enable the change of the software to be performed on the target component.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the computer executable instructions further cause the processor to:

receive task information representative of a desired change for the target component for installing software on the target component; and

use at least the task information to further identify the affected components.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the affected components reflect a set of possible conflicts that occur due to the installing of the software.

19. The non-transitory computer-readable storage medium of claim 16 , wherein when the set of possible conflicts are resolvable, the computer-executable instructions further cause the processor to receive a request from a user to enable the change of the software to be performed on the target component.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2016
From: HILTGEN, DANIEL KERRY; DEVINE, CHRISTOPHER PATRICK
To: VMWARE, INC.
Reel/Frame 039491/0766 →
Continuity (2)
Continuation 13219479 · Aug 26, 2011
Related Publication 20150205596A1 · Jul 23, 2015