Dynamic Load Balancer Debugging in Cloud Production

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging in-cloud distributed code in a live load environment is challenging due to the difficulty in spotting, localizing, and repairing issues such as load management problems and interference between customer demands, as conventional debugging methods often fail to accurately model the live production environment, missing faults present only in production.

Innovation Solution

A dynamic load balancer is configured to distinguish between routine production traffic and transaction requests from a development and debugging server, routing a mix of both to instrumented production servers for remote debugging and performance reporting, allowing interaction and correction of under-development process code within a live production environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If conventional debugging methods are used in isolated environments, then debugging simplicity is improved, but debugging accuracy deteriorates because faults present only in live production environment are missed

Engineering Contradiction:
Improvedebugging simplicityVSAvoiddebugging accuracy
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

A load balancer acts as an intermediary to route production traffic to servers running under-development code, enabling debugging in the actual production environment without requiring code isolation. The load balancer mediates between production traffic and debugging targets, allowing accurate observation of real-world faults while maintaining system operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Production servers are made multi-functional by simultaneously handling both production workloads and under-development code execution. This allows the same infrastructure to serve dual purposes: maintaining production services while enabling accurate debugging of new code in the actual production environment.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Measurement precision

If production traffic is routed to servers with under-development code, then debugging accuracy is improved, but system stability deteriorates due to potential interference between customer demands and development processes

Engineering Contradiction:
Improvedebugging accuracyVSAvoidsystem stability
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The load balancer segments production traffic by routing different portions to different server groups. It can route a first amount of production traffic to servers with stable code and a second amount to servers with under-development code, isolating potential instability to specific segments while maintaining overall system reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of routing all production traffic to debugging servers, the system uses partial action by routing only a portion (second amount) of traffic to under-development code servers. This limited exposure allows debugging accuracy while minimizing potential stability issues through controlled traffic allocation.

Inventive Principle:
Principle #16Partial or excessive action

3Measurement precision

If a mix of production traffic and under-development traffic is routed to production servers, then completeness of debugging is improved, but load management complexity increases

Engineering Contradiction:
Improvedebugging completenessVSAvoidload management complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The load balancer implements feedback mechanisms to monitor server performance and traffic patterns, dynamically adjusting routing decisions based on observed conditions. This feedback loop enables the system to manage the complexity of mixed traffic routing automatically, maintaining debugging completeness while adapting to changing system states.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10445222B2Debugging in-cloud distributed code in live load environment
Publication Date: 2019.10.15 CA TECH INC
  • US10445222B2 patent drawing
  • US10445222B2 patent drawing
  • US10445222B2 patent drawing

AI summary

A multi-device data processing machine system includes a plurality of network-connected cliental servers including first and second production servers coupled to a dynamic load balancer. The machine system also includes an SaaS development server that is configured to pass under-development process requests to the load balancer in combination with a mix command such that the load balancer routes a mix of routine production traffic and the under-development process requests to at least one of the production servers that is instrumented for enabling remote debugging of code executing therein so that the under-development process requests can be debugged under the full or partial stresses of a live production environment.