SaaS Upgrade Testing via Load Balancer Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for deploying software updates in SaaS applications, such as canary deployments, may expose users to errors and are not suitable for enterprises with low tolerance for user errors, and traditional testing solutions require duplicating the entire application architecture, which is inefficient.

Innovation Solution

A cloud computing system that includes an application stack with unmodified, test, and modified service containers, along with an application load balancer that routes service requests based on custom headers, allowing for testing in a live environment without disrupting customer access, enabling incremental deployment and reducing costs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If canary deployments are used to test new software versions, then user access continuity is maintained, but users are exposed to potential errors in the new software version

Engineering Contradiction:
Improveuser access continuityVSAvoiduser exposure to software errors
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system segments the application stack into multiple isolated service containers (unmodified, test, and modified versions) that can operate independently. This segmentation allows testing of new software versions in isolated containers without exposing all users to potential errors, while maintaining user access continuity through selective routing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The load balancer acts as an intermediary that intelligently routes service requests to appropriate service containers based on custom headers and routing rules. This intermediary mechanism enables controlled exposure to new software versions by directing only specific traffic (e.g., from testers or with specific headers) to modified containers while keeping user-facing traffic routed to stable versions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If traditional testing solutions duplicate the entire application architecture, then comprehensive testing can be performed, but system complexity and resource requirements increase significantly

Engineering Contradiction:
Improvetesting comprehensivenessVSAvoidarchitecture duplication
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

Instead of duplicating the entire application architecture, the system creates selective copies of only the specific service containers that need testing. Modified service containers are deployed alongside unmodified ones, allowing comprehensive testing of changes without replicating the full architecture stack.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The load balancer provides multi-functional capabilities by handling both production traffic routing and testing traffic routing through a single system. It can route requests to unmodified containers for production stability, to test containers for ongoing testing, and to modified containers for deployment validation, eliminating the need for separate test environments.

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

3Productivity

If modified service containers are deployed to test new features, then feature updates can be validated in production, but risk of introducing errors into live environment increases

Engineering Contradiction:
Improvefeature update validation speedVSAvoidproduction environment stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary testing actions by deploying modified service containers alongside unmodified ones before full production rollout. Test containers can be validated in the production environment with controlled traffic, allowing feature updates to be tested under real production conditions while maintaining stability through the presence of unmodified containers.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically routes traffic between unmodified and modified service containers based on testing needs and validation results. The load balancer can adjust routing in real-time, directing traffic to modified containers when validation is successful and back to unmodified containers if errors are detected, providing dynamic control over production stability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12028386B1System and method for testing upgrades to SaaS applications in a live cloud environment
Publication Date: 2024.07.02 POWER ADVOCATE INC
  • US12028386B1 patent drawing
  • US12028386B1 patent drawing
  • US12028386B1 patent drawing

AI summary

The present disclosure provides a cloud computing system including an application stack including a plurality of service containers including: a unmodified service container in electronic communication with at least one other service container from the plurality of service containers; a test service container in electronic communication with at least one other service container from the plurality of service containers; and a modified test service container in electronic communication with either the at least one unmodified service container or at least one other modified test service container; and an application load balancer to: receive a service request to and from each of the plurality of service containers, a user; determine whether the service request received is from the at least one unmodified service container, the at least one test service container, the at least one modified test service container, the user, or the tester; and route the service request.