Networked Application Resiliency Validation via Component Termination
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
Figure 1
Figure 2
Figure 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.