Search

US-12621205-B2 - Agentless topology analysis

US12621205B2US 12621205 B2US12621205 B2US 12621205B2US-12621205-B2

Abstract

A computer system retrieves provisioning data and observability data (metrics, logs, events, alerts, inventory) for a plurality of components from remote servers. The computer system extracts component identifiers from the provisioning data and the log data. The computer system identifies relationships between components from the provisioning data and the log data, such as environmental variable relationships, network relationships, session relationships, access relationships, and network connection relationships. The computer system generates a topology in which nodes represent components and edges represent relationships. The topology is updated to show changes to components and relationships. A user may interact with a visual representation of the topology to change data displayed or invoke changes to the components and relationships represented by the topology.

Inventors

  • Ravi Kumar Alluboyina
  • Sree Nandan Atur
  • Stephanie Morel

Assignees

  • RAKUTEN SYMPHONY, INC.

Dates

Publication Date
20260505
Application Date
20221213

Claims (20)

  1. 1 . An apparatus comprising: a computing device including one or more processing devices and one or more memory devices operably coupled to the one or more processing devices, the one or more memory devices storing executable code that, when executed by the one or more processing devices, causes the one or more processing devices to: provision, by an orchestrator, computing resources of remote servers to a plurality of components according to provisioning data, the computing resources including computing power, memory, and storage; instantiating, by the orchestrator, the plurality of components on the remote servers according to the provisioning data; scaling, by the orchestrator, the plurality of components at least one of up or down according to the provisioning data; extract component identifiers of the plurality of components from the provisioning data; retrieve log data from the remote servers without use of an agent executing on the remote servers; process the provisioning data and the log data to obtain a topology of the plurality of components, the topology including nodes representing the plurality of components and edges representing relationships between pairs of components of the plurality of components; and outputting an interface representing criticality of one or more components of the plurality of components.
  2. 2 . The apparatus of claim 1 , wherein the interface represents density of components hosted by a server of the plurality of components.
  3. 3 . The apparatus of claim 1 , wherein the interface represents an aggregation of observability data from the plurality of components.
  4. 4 . The apparatus of claim 3 , wherein the aggregation of observability data is a time sequenced combination of observability data from the plurality of components.
  5. 5 . The apparatus of claim 1 , wherein the interface includes representations of a plurality of first components of the plurality of components dependent on a first server of the remote servers, one or more of the plurality of first components not executing on the first server.
  6. 6 . The apparatus of claim 1 , wherein the interface includes representations of a plurality of first components of the plurality of components dependent on a storage device of a first server of the remote servers, one or more of the plurality of first components not executing on the first server.
  7. 7 . The apparatus of claim 6 , wherein the plurality of first components are application instances.
  8. 8 . The apparatus of claim 6 , wherein each component of the plurality of first components has at least one relationship with respect to the first server or another component of the plurality of first components.
  9. 9 . The apparatus of claim 8 , the at least one relationship of each component includes at least one of a hosting relationship, an environmental variable relationship, a network relationship, a session relationship, an access relationship, and a network connection relationship.
  10. 10 . The apparatus of claim 1 , wherein the executable code, when executed by the one or more processing devices, further causes the one or more processing devices to: retrieve realtime observability data for one or more components of the plurality of components from the remote servers; and display the realtime observability data in the interface.
  11. 11 . A method comprising: provision, by an orchestrator executing on a computer system including one or more computing devices, computing resources of remote servers to a plurality of components according to provisioning data; instantiating, by the orchestrator, the plurality of components on the remote servers according to the provisioning data; scaling, by the orchestrator, the plurality of components at least one of up or down according to the provisioning data; extracting, by the computer system, component identifiers of the plurality of components from the provisioning data; retrieving, by the computer system, log data from the remote servers without use of an agent executing on the remote servers; processing, by the computer system, the provisioning data and the log data to obtain a topology of the plurality of components, the topology including nodes representing the plurality of components and edges representing relationships between pairs of components of the plurality of components; and outputting, by the computer system, an interface representing criticality of one or more components of the plurality of components.
  12. 12 . The method of claim 11 , wherein the interface represents density of components hosted by a server of the plurality of components.
  13. 13 . The method of claim 11 , wherein the interface represents an aggregation of observability data from the plurality of components.
  14. 14 . The method of claim 13 , wherein the aggregation of observability data is a time sequenced combination of observability data from the plurality of components.
  15. 15 . The method of claim 11 , wherein the interface includes representations of a plurality of first components of the plurality of components dependent on a first server of the remote servers, one or more of the plurality of first components not executing on the first server.
  16. 16 . The method of claim 11 , wherein the interface includes representations of a plurality of first components of the plurality of components dependent on a storage device of a first server of the remote servers, one or more of the plurality of first components not executing on the first server.
  17. 17 . The method of claim 16 , wherein the plurality of first components are application instances.
  18. 18 . The method of claim 16 , wherein each component of the plurality of first components has at least one relationship with respect to the first server or another component of the plurality of first components.
  19. 19 . The method of claim 18 , wherein the at least one relationship of each component includes at least one of a hosting relationship, an environmental variable relationship, a network relationship, a session relationship, an access relationship, and a network connection relationship.
  20. 20 . The method of claim 11 , further comprising: retrieving, by computer system, realtime observability data for one or more components of the plurality of components from the remote servers; and displaying, by the computer system, the realtime observability data in the interface.

Description

BACKGROUND Field of the Invention This invention relates to generating a topology of components in a distributed computing system in an agentless manner. Background of the Invention Whether processing ecommerce transactions, streaming content, providing back-end data management for mobile applications, or other services, the modern company requires a large amount of computing resources including processor time, memory, and persistent data storage. The amount of computing resources varies over time. Modern computing installations can dynamically sale up and scale down in order to adapt to changes in usage. For example, Kubernetes is a popular tool for adding and removing instances of applications based on usage. The high variability in usage of computing resources makes it difficult to manage on-premise computing hardware and purchased cloud computing resources. It would be an advancement in the art to enable better management of on-premise computing hardware and purchased cloud computing resources. SUMMARY OF THE INVENTION An apparatus includes a computing device including one or more processing devices and one or more memory devices operably coupled to the one or more processing devices. The one or more memory devices storing executable code that, when executed by the one or more processing devices, causes the one or more processing devices to retrieve provisioning data describing instantiation of a plurality of components on remote servers over a network and extract component identifiers of the plurality of components from the provisioning data. The executable code further causes the one or more processing devices to retrieve log data from the remote servers without use of an agent executing on the remote servers. The provisioning data and log data are processed to obtain a topology of the plurality of components, the topology including nodes representing the plurality of components and edges representing relationships between pairs of components of the plurality of components. BRIEF DESCRIPTION OF THE DRAWINGS In order that the advantages of the invention will be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered limiting of its scope, the invention will be described and explained with additional specificity and detail through use of the accompanying drawings, in which: FIG. 1 is a schematic block diagram of a network environment in which discovery of active and available inventory (AAI) may be performed in accordance with an embodiment; FIG. 2 is a schematic block diagram showing components for collecting and processing log data in accordance with an embodiment; FIG. 3 is a schematic block diagram showing sources of provisioning data in accordance with an embodiment; FIG. 4 is a schematic block diagram showing components showing processing of log data to obtain AAI in accordance with an embodiment; FIG. 5 is a process flow diagram of a method for collecting provisioning data in accordance with an embodiment; FIG. 6 is a process flow diagram of a method for deriving AAI in accordance with an embodiment; and FIG. 7 is a schematic block diagram showing the derivation of relationships between components in accordance with an embodiment; FIG. 8 is a schematic block diagram of a topology of components of a network environment in accordance with an embodiment; FIG. 9 is a process flow diagram of a method for identifying relationships between components according to a manifest and dynamic provisioning data in accordance with an embodiment; FIG. 10 is a process flow diagram of a method for identifying session relationships between components in accordance with an embodiment; FIG. 11 is a process flow diagram of a method for identifying access relationships between components in accordance with an embodiment; FIG. 12 is a process flow diagram of a method for identifying network relationships in accordance with an embodiment; FIG. 13 is a process flow diagram of a method for generating a representation of a topology in accordance with an embodiment; FIG. 14A is an example representation of a topology in accordance with an embodiment; FIG. 14B is an example view of application data in accordance with an embodiment; FIG. 14C is an example view of cluster data in accordance with an embodiment; FIG. 14D is an example view showing the criticality of a storage volume in accordance with an embodiment; FIG. 15 is a diagram showing data used to redeploy applications and perform cluster consolidation in accordance with an embodiment; FIGS. 16A to 16C illustrate example application redeployments and cluster consolidation in accordance with an embodiment; FIG. 17A is a process flow diagram of an example method for performing application redeployments in accordance with an embo