Runtime Software Version Routing for Multi-Tenant Cloud Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cloud-based computing systems face challenges in implementing beta testing for new software versions, as multiple customers share a common computing environment, making it difficult to dynamically route traffic to different software versions for testing and feedback purposes.
Innovation Solution
A computer system that dynamically maps traffic to different software versions at runtime by identifying tenants based on information in traffic packets or frames and injecting flags or bits into headers, allowing concurrent execution of multiple software versions and enabling feedback-driven release.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a new version of software is released to the entire customer base at the same time, then the software can be deployed quickly, but the testing quality and reliability are insufficient
Solution Approach 1:
The patent segments the customer base into different groups (beta testers, early adopters, general customers) and assigns different software versions to each segment. This allows simultaneous full-scale deployment while maintaining controlled testing through segmentation of the customer population.
Solution Approach 2:
The system dynamically routes customer traffic to different software versions at runtime based on configuration. This dynamic routing enables flexible control over which customer group accesses which software version, allowing rapid deployment while maintaining testing quality through adaptable customer segmentation.
2Reliability
If a new version of software is released to a selected subset of customers for beta testing, then the testing quality and reliability improve, but the deployment time and complexity increase
Solution Approach 1:
The dynamic runtime routing system allows beta testing configuration to be changed without code modifications or redeployment. Administrators can dynamically adjust which customers receive the beta version, enabling rapid iteration and feedback incorporation while maintaining testing quality.
Solution Approach 2:
The system uses configuration parameters (such as customer identifiers, hashing algorithms, or routing rules) to control software version distribution. By changing these parameters dynamically, the system can adjust beta testing participation without time-consuming code changes or full redeployment cycles.
3Ease of operation
If multiple different customers access a common computing environment with a common version of the software, then the system maintains simplicity and ease of operation, but it becomes difficult to implement beta testing with different software versions
Solution Approach 1:
The patent introduces an intermediary layer (routing mechanism or proxy) between customers and the software execution environment. This intermediary dynamically determines which software version to execute based on customer identity or configuration, maintaining a simple common computing environment while enabling versatile beta testing capabilities.
Solution Approach 2:
The common computing environment is designed to be universal, supporting multiple software versions and customer types through a single infrastructure. The dynamic routing mechanism provides multi-functionality, allowing the same system to serve both stable production customers and beta testing customers without requiring separate environments.
Data Source
AI summary
A computer that dynamically maps traffic to different versions of software is described. During operation, the computer may receive first traffic from a first tenant and second traffic from a second tenant, where the first traffic and the second traffic are addressed to a common computing environment that supports multiple, different tenants. Then, the computer may identify the first tenant based at least in part on first information included in the first traffic, and may identify the second tenant based at least in part on second information included in the second traffic. Moreover, the computer may dynamically map the first traffic to a first version of software and the second traffic to a second version of the software, where the dynamic mapping occurs at runtime. Note that the computer may concurrently execute the first version of the software and the second version of the software.


