Virtual machine image lineage
First Claim
1. A method performed by one or more computers to track virtual machine images (VMIs) deployed on hosts, respectively, the method comprising:
- automatically maintaining linking information that links application elements to the hosts, the linking information comprising element linkage information indicating which of the application elements were used to build or compile which of the applications, the linking information further comprising application linkage information indicating which of the applications are installed on which of the VMIs, the linking information further comprising VMI linkage information indicating which of the VMIs reside on which of the hosts, the application elements comprising source code files not present on the VMIs, wherein the applications comprise binary executable files executable within the VMIs, and wherein the VMIs are executed as virtual machines by hypervisors on the hosts, respectively; and
responding to queries identifying respective source code files by, for a given query for a given source code file, accessing the linking information, using the element linkage information to identify any of the applications that were used to build or compile the given source code file, using the application linkage information to identify any of the VMIs having any of the identified applications installed thereon, and by using the VMI linkage information to identify any of the hosts hosting any of the identified VMIs, wherein a reply to the given query comprises indicia of the identified hosts.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for tracking and maintaining the lineage of virtual machines (VMs). As applications are built or compiled, information about the makeup or elements of the applications is captured. As applications are installed on VMs, that information is also captured. As the VMs are deployed to hosts, decommissioned, migrated between hosts, etc., that information is also maintained. Therefore, it is possible to trace relations between live VMs (and/or hosts they execute on) and the elements of applications installed on the VMs. For example, if an element is a source code file, it may be possible to link that source code file with particular hosts or VMs. Or, it may be possible to determine whether a given host or VM has a dependency on an application element. Given a dataset of lineage information, a wide range of previously unavailable information can be obtained.
52 Citations
19 Claims
-
1. A method performed by one or more computers to track virtual machine images (VMIs) deployed on hosts, respectively, the method comprising:
-
automatically maintaining linking information that links application elements to the hosts, the linking information comprising element linkage information indicating which of the application elements were used to build or compile which of the applications, the linking information further comprising application linkage information indicating which of the applications are installed on which of the VMIs, the linking information further comprising VMI linkage information indicating which of the VMIs reside on which of the hosts, the application elements comprising source code files not present on the VMIs, wherein the applications comprise binary executable files executable within the VMIs, and wherein the VMIs are executed as virtual machines by hypervisors on the hosts, respectively; and responding to queries identifying respective source code files by, for a given query for a given source code file, accessing the linking information, using the element linkage information to identify any of the applications that were used to build or compile the given source code file, using the application linkage information to identify any of the VMIs having any of the identified applications installed thereon, and by using the VMI linkage information to identify any of the hosts hosting any of the identified VMIs, wherein a reply to the given query comprises indicia of the identified hosts. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method performed by one or more computing devices, the method comprising:
-
executing virtual machines (VMs), comprised of virtual machine images (VMIs), respectively, on a plurality of hosts, each VMI having one or more applications installed thereon, each application having been compiled from one or more application elements comprising source code files, the applications comprising respective binary executables that can be executed by guest operating systems of the respective VMs; as VMs are added to and removed from the hosts, maintaining queryable relation information indicating which of the application elements are related to which of the VMs currently available on the hosts; and receiving queries identifying respective source code files, and using the queryable relation information to, for a given query for a given source code file, according to an indication of the given source code file, identify from the queryable relation information any of the hosts hosting any of the VMs hosting any of the applications that were compiled with the given source code file has been installed, wherein the identifying identifies the hosts without regard for which of the applications are installed thereon. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. An apparatus comprising a memory storing information to enable one or more computers to perform a process, the process comprising:
-
compiling source code files into executable applications and maintaining corresponding application-file linkage information indicating which of the source code files were used to compile which of the applications; building virtual machine images (VMIs) by installing the applications on the VMIs, and storing VMI-application linkage information indicating which of the applications are installed on which of the VMIs; with the VMIs serving as templates, creating pluralities of VMs from copies of the VMIs, respectively; in a network of hosts running the VMs, for each VM created by copying from a corresponding VMI, maintaining VMI-host linkage information by tracking which of the hosts have VMs based on which of the VMIs and updating the VMI-host linkage information accordingly; and receiving a query for any arbitrary hosts that correspond to a source code file identified by the query, using the application-file linkage information to identify all applications in the application-file linking information that were compiled with the source code file, using the identified applications in combination with the VMI-application linkage information to identify any of the VMs having any of the identified applications thereon, and using the identified VMs in combination with the VMI-host linkage information to identify all of the hosts in the VMI-host linkage information that corresponding to the query. - View Dependent Claims (16, 17, 18, 19)
-
Specification