SaaS Upgrade Testing via Load Balancer Routing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


