Automated Update Testing via Pseudo-Production Server Cloning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Update providers face challenges in ensuring compatibility of updates across various execution environments, as conventional testing methods lack the ability to thoroughly test updates using actual production data, leading to potential incompatibility issues and risks of damaging live data or crashing production servers.

Innovation Solution

Implementing an automated update testing and deployment system that uses a test server to simulate production environments by cloning a production server and testing updates with real production data, comparing responses to ensure compatibility before applying the update to the production environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If update providers perform general tests on updates prior to sending them to systems administrators, then the updates can be sent to customers, but the updates may be incompatible with specific customer execution environments

Engineering Contradiction:
Improveupdate deployment speedVSAvoidupdate compatibility
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary testing of updates in a pseudo-production environment that replicates the actual production execution environment. This preliminary action occurs before the update is deployed to production, allowing compatibility issues to be detected and resolved in advance, thus ensuring both rapid deployment and high compatibility.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a pseudo-production server that is a copy of the actual production server, including cloning the execution environment and using production data copies for testing. This copying approach allows realistic testing without risking the actual production system, enabling compatibility verification while maintaining production availability.

Inventive Principle:
Principle #26Copying

2Measurement precision

If systems administrators test updates after receipt using conventional methods, then they can identify some incompatibility issues, but the tests cannot produce accurate results because they do not use actual production data

Engineering Contradiction:
Improvetest accuracyVSAvoidtesting system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system clones the actual production server to create a pseudo-production environment and uses copies of production data for testing. This copying approach enables highly accurate testing that reflects real production conditions without requiring access to the actual production system during testing, thus achieving high measurement precision while managing complexity through automated processes.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The pseudo-production server acts as an intermediary between the update provider and the actual production system. It provides a realistic testing environment that accurately reflects production conditions while isolating the actual production system from testing activities, thereby achieving accurate results without direct production system involvement.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If updates are tested thoroughly in all possible execution environments, then compatibility can be ensured, but the testing process becomes impractical and time-consuming

Engineering Contradiction:
Improveupdate compatibilityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Instead of testing in multiple physical environments, the system creates one pseudo-production environment that replicates the specific execution environment of the target production system. This copying approach achieves environment-specific compatibility verification without the time cost of maintaining and testing across multiple physical test environments.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system focuses testing resources on creating a highly accurate local replica of the specific production execution environment rather than attempting broad coverage across multiple environments. This local quality approach ensures deep compatibility verification for the specific target environment, making thorough testing practical and time-efficient.

Inventive Principle:
Principle #3Local quality

4Reliability

If production data is used for testing updates, then realistic compatibility can be verified, but there is risk of damaging live data or crashing production servers

Engineering Contradiction:
Improvecompatibility verificationVSAvoidrisk to production system
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system uses copies of production data in a pseudo-production environment rather than the actual production data. This copying approach enables realistic compatibility verification using production-like data while completely isolating the actual production system from any potential harm, thus achieving high reliability without exposing production assets to risk.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The pseudo-production server serves as a protective cushion that absorbs the risks of update testing. By performing all potentially harmful testing operations in this protected environment beforehand, the system eliminates the risk of damaging live production data or crashing production servers while still achieving realistic compatibility verification.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS9639452B2Automated update testing and deployment
Publication Date: 2017.05.02 RED HAT INC
  • US9639452B2 patent drawing
  • US9639452B2 patent drawing
  • US9639452B2 patent drawing

AI summary

Systems and methods for testing and deploying an update are provided. A first server can execute a current version of an application in a production environment. A client communication from a client to the first server can be identified. The client communication can be transmitted to a second server in the production environment. The second server can be executing an updated version of the application. A first response to the client communication from the first server and a second response to the client communication from the second server can be received. The first response from the first server can be compared with the second response from the second server to determine whether the updated version of the application is compatible with the production environment.