Remote Debug Service for Cloud Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging in cloud environments is challenging due to virtualization obscuring resources and unstable IP addresses, making it difficult for debuggers to connect to transient processes and requiring large, cumbersome traces that are often collected post-mortem, without real-time decision-making capabilities.

Innovation Solution

A remote debug service is provided as a shared service in the network environment, which initiates a debug session by gathering required information and attaching to the workload process, allowing for real-time debugging of virtualized environments through a debug agent, enabling attachment to transient processes and providing a way to debug virtualized environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If trace and logs are collected for post-mortem analysis, then problem diagnosis is possible, but the trace becomes very large and causes performance problems

Engineering Contradiction:
Improveproblem diagnosis capabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts only the essential debugging information needed for problem diagnosis rather than collecting complete traces. The debugger selectively gathers data about specific processes and threads that are relevant to the crash, excluding unnecessary information from other processes. This extraction approach maintains diagnostic capability while avoiding the performance overhead of collecting and processing large volumes of trace data.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by collecting only the portion of trace information that is necessary for debugging the specific crashed process, rather than collecting complete traces of all processes. The system gathers sufficient information to diagnose the problem without the excessive data collection that would degrade system performance.

Inventive Principle:
Principle #16Partial or excessive action

2Loss of information

If complete traces from all processes are collected, then analysis can be performed without real-time data, but locating the right log becomes a major task

Engineering Contradiction:
Improvetrace completenessVSAvoidlog location task
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent extracts and isolates trace information specifically from the crashed process and related threads, separating it from traces of other processes. This extraction creates a focused debug session that automatically filters out irrelevant information, making it easy to locate and analyze the problematic logs without manually searching through traces from multiple processes.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a debugger as an intermediary that automatically filters, organizes, and presents only the relevant trace information from the crashed process. This intermediary layer abstracts away the complexity of locating logs among multiple processes, automatically directing the user to the pertinent diagnostic data.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If debugger connects to process after it is running, then debugging can be performed, but the process must be killed at the end of debug session

Engineering Contradiction:
Improvedebugger connectionVSAvoidprocess continuity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies preliminary action by having the debugger attach to the process before it crashes or before the debug session begins. The debugger is positioned and prepared in advance, allowing it to intercept and handle the crash gracefully without requiring process termination. This preliminary positioning enables the debugger to maintain process continuity throughout the debugging session.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic behavior where the debugger can attach to and detach from processes dynamically without killing them. The system supports multiple debug sessions with the same process, allowing the process to continue running while being debugged, and to be re-attached to for subsequent debugging needs, thereby maintaining process continuity and adaptability.

Inventive Principle:
Principle #15Dynamics

4Adaptability or versatility

If traditional debugging methods are used where debugger is attached before process runs, then debugging control is maintained, but it does not fit transient cloud processes

Engineering Contradiction:
Improvecloud environment compatibilityVSAvoiddebugger control
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent implements dynamic debugging capabilities that adapt to the transient nature of cloud processes. The debugger can dynamically attach to processes at runtime, including crashed processes, and maintain debugging control without requiring the process to be long-lived or pre-configured for debugging. This dynamic approach makes the debugger compatible with ephemeral cloud workloads while preserving full debugging control.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent enables processes to self-register with the debugger service and self-report crashes or debugging needs. The debugger service automatically detects and attaches to processes that need debugging, reducing the manual configuration overhead. This self-service mechanism allows transient cloud processes to be debugged without pre-configuration, maintaining ease of operation while adapting to cloud environments.

Inventive Principle:
Principle #25Self-service

5Adaptability or versatility

If virtualization is used in cloud environment, then resource sharing is enabled, but resources are obscured and IP addresses are unstable

Engineering Contradiction:
Improveresource sharingVSAvoidresource visibility
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces a debugger service as an intermediary layer between the virtualized cloud infrastructure and the debugging tools. This intermediary service maintains stable connections and process identities despite the underlying virtualization and IP address changes. The debugger service abstracts the complexity of virtualized resources, providing consistent access points for debugging transient processes in cloud environments.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9632913B2Remote debug service in a cloud environment
Publication Date: 2017.04.25 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9632913B2 patent drawing
  • US9632913B2 patent drawing
  • US9632913B2 patent drawing

AI summary

A method provides a debug service in a network environment. One or more processors initiate a debug service as a remote shared service in the network environment. The debug service receives a call from a deployed workload process within a virtual machine in the network environment, and gathers required information for a debug session of the workload process, where the required information includes source code used by the workload process. One or more processors attach the debug service to the workload process to carry out the debug session, such that the debug service working with a debug agent at the workload process attaches to and debugs a virtual environment that obscures the virtual machine.