Distributed Application Topology Discovery via Network Traffic Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed applications with complex topologies are difficult for developers and operations engineers to reason about, troubleshoot, and analyze due to their dynamic and evolving nature, especially in large-scale environments with multiple interconnected hosts and microservices, where the 'as-designed' topology often deviates from the 'as-built' configuration.

Innovation Solution

A process is developed to infer the topology of a distributed application by analyzing transport-layer metadata in network traffic, identifying connected components and gateway hosts, and presenting a visual representation of the topology in a graphical user interface, allowing users to select and edit inferred entry points and hosts, thereby facilitating understanding and management of the application's structure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If distributed applications use more and more diverse services to handle complex functionality, then the application's functionality and scalability are improved, but the complexity of the topology and difficulty of reasoning about the system increase

Engineering Contradiction:
ImprovefunctionalityVSAvoidtopology complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary system (topology discovery system) that mediates between the complex distributed application infrastructure and the users/developers. This system automatically discovers, infers, and visualizes the topology by analyzing network traffic metadata, serving as a bridge that translates complex infrastructure into understandable visual representations without requiring users to directly comprehend the underlying complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The topology discovery system enables the distributed application infrastructure to self-document and self-describe its own topology. By automatically analyzing network traffic and inferring topology information without requiring manual configuration or intervention, the system allows the infrastructure to serve its own documentation needs, reducing the burden on developers and operations engineers.

Inventive Principle:
Principle #25Self-service

2Productivity

If the scale of computing loads grows and functionality is broken into microservices, then scalability and code reuse are improved, but the difficulty of troubleshooting and analyzing the system increases

Engineering Contradiction:
ImprovescalabilityVSAvoidtroubleshooting difficulty
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces an intermediary system (topology discovery system) that mediates between the complex distributed application infrastructure and the users/developers. This system automatically discovers, infers, and visualizes the topology by analyzing network traffic metadata, serving as a bridge that translates complex infrastructure into understandable visual representations without requiring users to directly comprehend the underlying complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces manual troubleshooting and topology analysis methods with an automated system that uses network traffic metadata analysis. Instead of requiring developers and operations engineers to manually trace through complex microservice interactions, the system automatically infers topology by analyzing packet metadata, substituting mechanical manual analysis with automated computational analysis.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Adaptability or versatility

If distributed applications are designed with dynamic and evolving configurations, then adaptability and responsiveness to changing requirements are improved, but the reliability of maintaining accurate topology information decreases

Engineering Contradiction:
ImproveadaptabilityVSAvoidtopology accuracy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements a dynamic topology discovery approach that continuously monitors and updates topology information by analyzing network traffic metadata in real-time. Rather than relying on static configuration files or periodic snapshots, the system dynamically adapts to configuration changes as they occur, ensuring topology information remains current and accurate in evolving distributed application environments.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback mechanisms by continuously analyzing network traffic metadata and using this information to infer and update topology information. The analysis of actual network communications provides feedback about the true operational topology, allowing the system to self-correct and maintain accurate topology information even as configurations change, ensuring the visual representation reflects the actual 'as-built' state.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10389596B2Discovering application topologies
Publication Date: 2019.08.20 CA TECH INC
  • US10389596B2 patent drawing
  • US10389596B2 patent drawing
  • US10389596B2 patent drawing

AI summary

Provided is a process including: obtaining, with one or more processors, network-traffic data describing a graph of network traffic among a plurality of hosts of one or more distributed applications executing on a plurality of computing devices between which the network traffic is sent; inferring, with one or more processors, a topology of a first distributed application among the one or more distributed applications based on the network-traffic data; causing, with one or more processors, a visual representation of the topology to be presented in a graphical user interface.