Discovery and inventory control for remote resource integration with cloud services
Techniques are disclosed herein for extending a cloud service's reach into on- or off-premises environments and other cloud platforms to enable migration and multi-cloud use cases. In one aspect, a computer-implemented method is provided that includes deploying a remote agent appliance with a discovery plugin in an external environment of a user, creating an asset source specifying a location of the external environment from which external assets and associated asset metadata should be discovered, generating a discovery job for the purpose of retrieving the asset metadata for the external assets discovered within the asset source, executing, using the discovery plugin, the discovery job to discover and retrieve the external assets and the associated asset metadata within the asset source, and providing a collection of assets that includes the asset metadata for the external assets as at least part of an inventory to the user.
1 . A computer-implemented method comprising:
deploying, by a computing system, a remote agent appliance comprising a discovery plugin in an external environment of a user, wherein the remote agent appliance comprises a virtual appliance that is sealed to prevent a remote access of the user and prohibit execution of arbitrary code by the user, so that the user is capable of interacting with the remote agent appliance via a local console for registration, with all other management operations of the remote agent appliance being orchestrated by a cloud infrastructure;
creating, by the computing system, an asset source specifying a location of the external environment from which external assets and associated asset metadata should be discovered, wherein the asset source references credentials stored in a secure data store of the cloud infrastructure, with credential access for discovery operations being orchestrated by the cloud infrastructure;
creating, by the computing system, a discovery policy for discovering the external assets within the asset source;
generating, by the computing system, a discovery job for retrieving the asset metadata for the external assets discovered within the asset source;
executing, by the computing system using the discovery plugin, the discovery job to discover the external assets within the asset source based on the discovery policy, wherein the executing the discovery job comprises retrieving the asset metadata for the external assets discovered within the asset source and populating an inventory with the asset metadata, and wherein the inventory contains a collection of assets that includes the asset metadata for the external assets and comprises a single global view of assets across multiple external environments, wherein each asset is uniquely identified by a tuple of external identifier and source identifier, and de-duplication logic is employed to ensure that assets discovered from different sources or environments are presented as a single representation to the user; and
providing, by the computing system, the collection of assets and the associated asset metadata within the inventory to the user.
2 . The computer-implemented method of claim 1 , further comprising generating, by the computing system, the inventory on the cloud infrastructure, wherein the cloud infrastructure is in communication with the remote agent appliance.
3 . The computer-implemented method of claim 1 , wherein the discovery policy is a schedule that identifies a time for when the computing system is to execute the discovery job.
4 . The computer-implemented method of claim 1 , further comprising:
receiving, by the computing system, a query from the user regarding the asset metadata;
executing, by the computing system, the query on the inventory; and
providing, by the computing system, results of the query to the user based on the executing.
5 . The computer-implemented method of claim 1 , further comprising in response to generating the asset source, generating, by the computing system, connectors between the discovery plugin and the location of the external environment, wherein the asset metadata is retrieved for the external assets using the connectors.
6 . The computer-implemented method of claim 1 , further comprising:
generating, by the computing system, a migration project based on one or more assets within the collection of assets and the associated asset metadata within the inventory; and
executing, by the computing system, a migration of the one or more assets to the cloud infrastructure based on the migration project.
7 . The computer-implemented method of claim 1 , wherein the providing the collection of assets and the associated asset metadata within the inventory to the user comprises displaying the collection of assets and the associated asset metadata to the user in a graphical user interface.
8 . A system comprising:
one or more processors; and
one or more non-transitory computer-readable media storing instructions which, when executed by the one or more processors, cause the one or more processors to perform operations including:
deploying a remote agent appliance comprising a discovery plugin in an external environment of a user, wherein the remote agent appliance comprises a virtual appliance that is sealed to prevent a remote access of the user and prohibit execution of arbitrary code by the user, so that the user is capable of interacting with the remote agent appliance via a local console for registration, with all other management operations of the remote agent appliance being orchestrated by a cloud infrastructure;
creating an asset source specifying a location of the external environment from which external assets and associated asset metadata should be discovered, wherein the asset source references credentials stored in a secure data store of the cloud infrastructure, with credential access for discovery operations being orchestrated by the cloud infrastructure;
creating a discovery policy for discovering the external assets within the asset source;
generating a discovery job for retrieving the asset metadata for the external assets discovered within the asset source;
executing, by the discovery plugin, the discovery job to discover the external assets within the asset source based on the discovery policy, wherein the executing the discovery job includes retrieving the asset metadata for the external assets discovered within the asset source and populating an inventory with the asset metadata, and wherein the inventory contains a collection of assets that includes the asset metadata for the external assets; and comprises a single global view of assets across multiple external environments, wherein each asset is uniquely identified by a tuple of external identifier and source identifier, and de-duplication logic is employed to ensure that assets discovered from different sources or environments are presented as a single representation to the user; and
providing the collection of assets and the associated asset metadata within the inventory to the user.
9 . The system of claim 8 , wherein the operations further include generating the inventory on the cloud infrastructure, and wherein the cloud infrastructure is in communication with the remote agent appliance.
10 . The system of claim 8 , wherein the discovery policy is a schedule that identifies a time for when the one or more processors are to execute the discovery job.
11 . The system of claim 8 , wherein the operations further include:
receiving a query from the user regarding the asset metadata;
executing the query on the inventory; and
providing results of the query to the user based on the executing.
12 . The system of claim 8 , wherein the operations further include:
in response to generating the asset source, generating connectors between the discovery plugin and the location of the external environment, and wherein the asset metadata is retrieved for the external assets using the connectors.
13 . The system of claim 8 , wherein the operations further include:
generating a migration project based on one or more assets within the collection of assets and the associated asset metadata within the inventory; and
executing a migration of the one or more assets to the cloud infrastructure based on the migration project.
14 . The system of claim 8 , wherein the providing the collection of assets and the associated asset metadata within the inventory to the user includes displaying the collection of assets and the associated asset metadata to the user in a graphical user interface.
15 . A computer-program product tangibly embodied in one or more non-transitory machine-readable media, including instructions that, when executed by one or more data processors, cause the one or more data processors to perform operations including:
deploying a remote agent appliance comprising a discovery plugin in an external environment of a user, wherein the remote agent appliance comprises a virtual appliance that is sealed to prevent a remote access of the user and prohibit execution of arbitrary code by the user, so that the user is capable of interacting with the remote agent appliance via a local console for registration, with all other management operations of the remote agent appliance being orchestrated by a cloud infrastructure;
creating an asset source specifying a location of the external environment from which external assets and associated asset metadata should be discovered, wherein the asset source references credentials stored in a secure data store of the cloud infrastructure, with credential access for discovery operations being orchestrated by the cloud infrastructure;
creating a discovery policy for discovering the external assets within the asset source;
generating a discovery job for retrieving the asset metadata for the external assets discovered within the asset source;
executing, by the discovery plugin, the discovery job to discover the external assets within the asset source based on the discovery policy, wherein the executing the discovery job includes retrieving the asset metadata for the external assets discovered within the asset source and populating an inventory with the asset metadata, and wherein the inventory contains a collection of assets that includes the asset metadata for the external assets and comprises a single global view of assets across multiple external environments, wherein each asset is uniquely identified by a tuple of external identifier and source identifier, and de-duplication logic is employed to ensure that assets discovered from different sources or environments are presented as a single representation to the user; and
providing the collection of assets and the associated asset metadata within the inventory to the user.
16 . The computer-program product of claim 15 , wherein the operations further include generating the inventory on the cloud infrastructure, and wherein the cloud infrastructure is in communication with the remote agent appliance.
17 . The computer-program product of claim 15 , wherein the discovery policy is a schedule that identifies a time for when the one or more data processors are to execute the discovery job.
18 . The computer-program product of claim 15 , wherein the operations further include:
receiving a query from the user regarding the asset metadata;
executing the query on the inventory; and
providing results of the query to the user based on the executing.
19 . The computer-program product of claim 15 , wherein the operations further include:
in response to generating the asset source, generating connectors between the discovery plugin and the location of the external environment, and wherein the asset metadata is retrieved for the external assets using the connectors.
20 . The computer-program product of claim 15 , wherein the operations further include:
generating a migration project based on one or more assets within the collection of assets and the associated asset metadata within the inventory; and
executing a migration of the one or more assets to the cloud infrastructure based on the migration project.