Debug Container Replication for Production Diagnostics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Enabling debug traces and capabilities in enterprise software often negatively impacts performance, making it difficult for customers to collect diagnostic information, especially when issues cannot be recreated in test environments, and complicates support services.

Innovation Solution

Replicating production containers as debug containers to execute software with specialized configurations, such as SSDs for reduced I/O costs and Record and Replay facilities, allowing for diagnostic information collection without impacting production performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If debug traces and capabilities are enabled in enterprise software, then diagnostic information collection is improved, but software performance deteriorates

Engineering Contradiction:
Improvediagnostic informationVSAvoidsoftware performance
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The system divides the software environment into separate production and debug containers. Debug capabilities are segmented into a dedicated debug container that runs in parallel with the production container, allowing diagnostic information collection without impacting production performance. The debug container captures and processes debug traces independently while the production container maintains optimal performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system creates a copy of the production container as a debug container. This copy replicates the production environment including software, configuration, and data, enabling comprehensive diagnostic information collection. The debug container serves as a faithful replica for troubleshooting while the original production system continues operating at full performance.

Inventive Principle:
Principle #26Copying

2Difficulty of detecting and measuring

If debug capabilities are enabled in production environment, then problem diagnosis is improved, but system reliability deteriorates

Engineering Contradiction:
Improveproblem diagnosisVSAvoidsystem reliability
Core Design Contradiction:
Difficulty of detecting and measuringVSReliability

Solution Approach 1:

The system segments diagnostic functions from production functions by running them in separate containers. The debug container handles all diagnostic activities including trace collection, logging, and analysis, while the production container maintains system reliability. This spatial separation ensures that diagnostic operations cannot compromise production stability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The debug container acts as an intermediary between the production system and diagnostic tools. It intercepts and processes debug requests, captures diagnostic information, and presents it for analysis without the production system directly exposing debug interfaces. This intermediary layer protects production reliability while enabling thorough problem diagnosis.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of information

If debug traces are collected in test environments, then diagnostic information is obtained, but issues cannot be recreated when production conditions differ

Engineering Contradiction:
Improvediagnostic informationVSAvoidenvironment compatibility
Core Design Contradiction:
Loss of informationVSAdaptability or versatility

Solution Approach 1:

The system creates an exact copy of the production container environment for debugging purposes. This copy includes identical software versions, configuration settings, runtime parameters, and data states, ensuring that issues can be recreated and diagnosed accurately. The debug container mirrors production conditions perfectly, eliminating environment-related diagnostic gaps.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system dynamically adjusts container parameters to match production conditions in the debug environment. Configuration files, environment variables, runtime settings, and resource allocations are synchronized between production and debug containers. This parameter synchronization ensures that diagnostic information collected in the debug container accurately reflects production behavior.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11782818B2Providing debug information on production containers using debug containers
Publication Date: 2023.10.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11782818B2 patent drawing
  • US11782818B2 patent drawing
  • US11782818B2 patent drawing

AI summary

A method, system and computer program product. A production container executes computer software in the production container. A debug container that is a replica of the production container executes in the debug container computer software corresponding to the computer software in the production container. A gateway through which (i) an outbound request from the computer software executing in the production container is sent to a remote server and (ii) inbound responses to the outbound request are received from the remote server. A data store receives the outbound request together with the inbound responses via an indirect path from the gateway to the data store. The indirect path is routed through at least one intervening connection between the gateway and the data store.