Multi-Version Software Traffic Scaling for Gradual Deployment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems lack an efficient method to transition from an old version of a software application to a new version by gradually phasing out the old version while ensuring stability and reliability of the new version, especially in containerized environments.

Innovation Solution

A system comprising a load balancer, toggle interface, and version control service that dynamically allocates network traffic between two versions of a software application, allowing for simultaneous operation with varying degrees of traffic, enabling gradual deployment and validation of the new version before complete replacement.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a new version of software is deployed to replace an old version, then the software can fix bugs and improve functionality, but the risk of introducing new issues and reducing system stability increases

Engineering Contradiction:
Improvesoftware stabilityVSAvoidversion flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system dynamically adjusts traffic allocation between old and new software versions based on real-time performance monitoring. The load balancer can shift traffic proportions flexibly, allowing the new version to be gradually introduced while maintaining system stability through controlled exposure to production traffic.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the traffic allocation parameter to control the proportion of requests routed to different versions. By adjusting this parameter, operators can control the risk exposure to the new version while maintaining the ability to fix bugs and improve functionality through version updates.

Inventive Principle:
Principle #35Parameter changes

2Speed

If all network traffic is immediately routed to a new software version, then the deployment speed is fast, but the risk of system failure and loss of service continuity increases

Engineering Contradiction:
Improvedeployment speedVSAvoidservice continuity
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system performs preliminary testing with a portion of traffic before full deployment. By routing initial traffic to the new version and monitoring its performance, the system validates the deployment before complete replacement, ensuring both speed and reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of routing all traffic immediately to the new version, the system uses partial action by directing only a portion of traffic to the new version initially. This gradual approach maintains service continuity while enabling fast deployment through controlled progression.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If multiple versions of software are operated simultaneously with traffic splitting, then the risk reduction and validation capability improve, but the system complexity and traffic management overhead increase

Engineering Contradiction:
Improvedeployment safetyVSAvoidtraffic management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The load balancer serves as an intermediary that manages traffic distribution between multiple versions. It abstracts the complexity of version management from the application layer, providing a centralized control point for traffic allocation while maintaining simple version deployment configurations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The load balancer performs multiple functions including traffic routing, version management, performance monitoring, and automatic failover. This multi-functionality consolidates complexity into a single component rather than distributing it across multiple systems.

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

4Reliability

If gradual traffic allocation is used to validate the new version, then the reliability and stability testing improve, but the deployment time and validation period extend

Engineering Contradiction:
Improveversion validation accuracyVSAvoiddeployment duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system continuously monitors performance metrics from both old and new versions and uses this feedback to automatically adjust traffic allocation. This feedback loop enables faster validation by accelerating traffic shifts when performance is stable and preventing issues by detecting problems early in the gradual deployment process.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs periodic performance assessments and traffic allocation adjustments during the deployment process. This structured periodic validation enables systematic testing over time while maintaining a predictable deployment timeline rather than continuous monitoring and adjustment.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS20250265078A1Deploying multiple versions of software simultaneously, with scaling of traffic between versions
Publication Date: 2025.08.21 PNC FINANCIAL SERVICES GROUP INC
  • US20250265078A1 patent drawing
  • US20250265078A1 patent drawing
  • US20250265078A1 patent drawing

AI summary

Computer-based systems and methods control network traffic allocation to different versions of a software application for a service. A first version of the software application runs on a first network resource and a second, different version of the software application runs on a second network resource. A load balancer is in communication with the first and second network resources. A toggle interface receives user input indicative of a desired network traffic allocation between the first and second versions of the software application. A version control service is for: periodically polling the toggle interface for an updated network traffic allocation between the first and second versions of the software application, where the updated network traffic allocation is based on the user input received by the toggle interface; and communicating the updated network traffic allocation between the first and second versions of the software application to the load balancer. The load balancer is for allocating network traffic for the software application to the first and second versions of the software application in accordance with the updated network traffic allocation.