Dynamic Steering for HTTP Calls in Kubernetes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In microservices-based Kubernetes cluster environments, implementing a controlled canary deployment of new application versions is challenging due to the need for manual control of replica ratios and limitations in traffic management tools like Istio.

Innovation Solution

The solution involves selectively steering data traffic in a Kubernetes cluster environment to multiple versions of a microservice based on information in the data message, using a proprietary HTTP header to specify the target microservice version and traffic steering mode.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual control of replica ratios is used to limit traffic to canary release, then traffic management is achieved, but operational complexity increases

Engineering Contradiction:
Improvetraffic controlVSAvoidoperational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a service mesh as an intermediary layer between clients and microservices. This service mesh automatically manages traffic routing based on headers, versions, and routing rules, eliminating the need for manual replica ratio control while maintaining reliable traffic management. The service mesh acts as a mediator that handles the complexity of canary deployments, A/B testing, and version routing automatically.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If Istio service mesh is used for traffic management, then separation between replica counts and traffic management is achieved, but traffic steering granularity is limited

Engineering Contradiction:
Improvetraffic management separationVSAvoidtraffic steering granularity
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic traffic steering by evaluating HTTP request headers in real-time and dynamically routing requests to appropriate microservice versions. The routing decisions are made at request level rather than relying on static replica ratios, enabling fine-grained control where each request can be independently directed based on its headers, user identity, or other dynamic criteria.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent enables different routing behaviors for different requests by examining local characteristics of each HTTP request (headers, cookies, user agents). This allows specific users or user groups to be directed to specific microservice versions based on their individual request properties, providing localized and granular traffic steering control rather than uniform routing.

Inventive Principle:
Principle #3Local quality

3Reliability

If traditional canary deployment is used, then controlled percentage traffic shift is achieved, but fine-tuned steering based on user identity is not possible

Engineering Contradiction:
Improvecontrolled deploymentVSAvoiduser-specific steering
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements preliminary routing rule configuration where routing decisions are predetermined based on header patterns, user identities, or request characteristics. Before actual traffic flows, routing rules are established that specify which users or request types should be directed to which microservice versions. This preliminary configuration enables both controlled deployment and user-specific steering simultaneously.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12284114B2Dynamic steering for http calls
Publication Date: 2025.04.22 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12284114B2 patent drawing
  • US12284114B2 patent drawing
  • US12284114B2 patent drawing

AI summary

Techniques are disclosed for deploying, by a packet processing system in a cloud computing environment, microservice instances in the cloud computing environment comprising a plurality of computing devices executing a plurality of Kubernetes clusters comprising one or more containers. The packet processing system is configured to selectively steer data traffic between multiple versions of microservice instances executing in the cloud computing environment.