Networked Application Resiliency Validation via Component Termination

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed computing services face disruptions due to unintended dependencies between servers, making it challenging to assess and ensure resiliency, especially in cloud-based deployments where server failures can occur unpredictably.

Innovation Solution

A computer-implemented method that identifies active application components, selects one for termination, and monitors the impact on the remaining components, allowing for controlled evaluation of system resilience and detection of potential single-point failures, which can be used in both test and production environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If servers in a networked application depend on one another to provide functionality, then the application can deliver comprehensive services, but unintended dependencies may arise that reduce system resiliency and cause disruptions when a server fails

Engineering Contradiction:
Improveservice functionalityVSAvoidsystem resiliency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs preliminary resiliency validation by proactively terminating application components before actual failures occur and observing whether the remaining components can maintain functionality. This advance testing identifies unintended dependencies and potential single points of failure before they cause disruptions in production environments.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a test environment that copies the production networked application architecture, allowing resiliency validation to be performed on the copied system without affecting actual production services. This enables comprehensive testing of failure scenarios while maintaining service availability in the original system.

Inventive Principle:
Principle #26Copying

2Measurement precision

If fault injection and stress testing are performed by injecting faults at specific moments in program code, then specific failure scenarios can be tested, but the complexity of implementing and managing such testing frameworks increases

Engineering Contradiction:
Improvefailure scenario testingVSAvoidtesting framework complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system extracts the resiliency validation logic from complex fault injection frameworks and implements it as a separate, dedicated system that directly terminates application components and monitors system response. This simplifies the testing approach by removing the need for intricate fault injection mechanisms while maintaining precise failure scenario testing capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The resiliency validation system operates autonomously by automatically selecting application components to terminate, monitoring the system's response, and determining whether resiliency requirements are met without requiring manual intervention or complex external testing frameworks.

Inventive Principle:
Principle #25Self-service

3Reliability

If resiliency validation is performed by terminating application components and monitoring remaining components, then system fault tolerance can be verified, but the time and resources required for testing increase

Engineering Contradiction:
Improvefault tolerance verificationVSAvoidtesting duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs partial validation by testing a representative subset of failure scenarios rather than exhaustively testing all possible component failures. This approach verifies critical resiliency requirements while reducing overall testing time and resource consumption compared to comprehensive failure mode analysis.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP2619664B1Validating the resiliency of networked applications
Publication Date: 2021.12.22 NETFLIX INC
  • EP2619664B1 patent drawingFigure 1
  • EP2619664B1 patent drawingFigure 2
  • EP2619664B1 patent drawingFigure 3

AI summary

Techniques are disclosed for validating the resiliency of a networked application made available using a collection of interacting servers. In one embodiment, a network monitoring application observes each running server (or application) and at unspecified intervals, picks one and terminates it. In the case of a cloud based deployment, this may include terminating a virtual machine instance or terminating a process running on the server. By observing the effects of the failed server on the rest of the network application, a provider can ensure that each component can tolerate any single instance disappearing without warning.