Cloud Application Resilience via Dynamic Failure Simulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current testing systems for cloud computing environments struggle to accurately simulate production environments and dynamically test multiple components against failure scenarios, making it difficult to evaluate the performance of software applications under various conditions and common failure scenarios.

Innovation Solution

A performance testing system that generates test workflows targeting specific application and infrastructure components, allowing for the simulation of failure scenarios by modifying resources such as network connections or compute instances, and automatically executing tests to identify limitations and build resiliency patterns.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If current testing systems are used to evaluate application performance, then testing can be performed, but the testing environment cannot accurately imitate production environment conditions and dynamically simulate failure scenarios

Engineering Contradiction:
Improveaccuracy of production environment simulationVSAvoidability to dynamically change resources and simulate failure scenarios
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The testing system dynamically modifies compute resources, network configurations, and container states during test execution to simulate various failure scenarios. The system can spin up additional virtual compute instances, terminate containers, modify network policies, and adjust resource allocations in real-time to recreate production environment conditions and test application resilience.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system creates a testing environment that copies the production cloud computing environment's architecture, components, and configurations. By replicating the production environment's structure including virtual machines, containers, networks, and services, the testing system accurately imitates production conditions while allowing controlled failure scenario injection.

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If multiple components are orchestrated on demand for comprehensive testing, then multiple aspects of application code can be tested, but the system complexity and difficulty of orchestrating components increases

Engineering Contradiction:
Improveability to test multiple aspects of application codeVSAvoidcomplexity of orchestrating multiple components
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system introduces a testing intermediary layer that manages the orchestration of multiple cloud computing components. This intermediary automatically coordinates the provisioning, configuration, and termination of virtual compute instances, containers, networks, and services, simplifying the complexity of orchestrating multiple components while enabling comprehensive multi-aspect application testing.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If additional virtual compute instances are spun up to accommodate peak demand, then the software application can serve more users, but the complexity of managing and testing these dynamic resources increases

Engineering Contradiction:
Improveability to serve additional users during peak demandVSAvoidcomplexity of managing dynamic compute instances
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary provisioning and configuration of virtual compute instances, networks, and services before testing begins. By pre-establishing the infrastructure components and their interconnections, the system reduces the complexity of managing dynamic resources during testing while maintaining the ability to scale to accommodate peak demand scenarios.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12135639B2Systems and methods for workflow based application testing in cloud computing environments
Publication Date: 2024.11.05 INTUIT INC
  • US12135639B2 patent drawing
  • US12135639B2 patent drawing
  • US12135639B2 patent drawing

AI summary

A testing system and method for testing application code against various failure scenarios. The testing system and method generate a test workflow including test source code implementing a series of actions that affect an application component and or an infrastructure component included in application code. The testing system and method execute the test workflow to determine the performance of the application code during one or more failure scenarios caused by the series of actions included in the test workflow. Performance data generated by the test code is analyzed by a performance analysis service or method to identify limitations of the application code and build resiliency patterns that address the limitations and improve the performance of the application code.