Canary Instance Traffic Routing for Software Performance Diagnosis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In complex, distributed software systems, diagnosing the root cause of performance issues across numerous interconnected services is challenging due to dependencies between services, making it difficult to differentiate between issues caused by new software versions and those caused by other services or workload fluctuations.

Innovation Solution

Implementing a canary analysis method that routes incoming requests between baseline and canary instances, collecting performance data, calculating relative performance metrics, and determining a final measure of performance to assess the impact of new software versions on system health and efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If canary instances are deployed to test new software versions, then software quality and reliability are improved, but system complexity and difficulty of diagnosing performance issues worsen

Engineering Contradiction:
Improvesoftware qualityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the software deployment by creating separate canary instances that run the new software version alongside baseline instances running the old version. This segmentation allows independent testing and comparison, improving reliability while managing complexity through isolated evaluation units.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A canary analysis component is introduced as an intermediary that selectively routes incoming requests to either canary or baseline instances and monitors their performance. This mediator manages the complexity of having multiple software versions by providing a centralized control mechanism for traffic routing and performance comparison.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If multiple canary instances are deployed simultaneously, then testing coverage and measurement precision are improved, but resource consumption and cost increase

Engineering Contradiction:
Improveperformance measurement accuracyVSAvoidresource consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

Instead of deploying a large number of canary instances simultaneously, the system uses a small number of canary instances (partial action) and achieves precise measurements by repeatedly sampling and comparing their performance against baseline instances over time. This approach maintains measurement precision while minimizing resource consumption.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system continuously monitors and compares performance metrics of canary instances against baseline instances over an extended period. This continuous observation accumulates sufficient data for precise measurements without requiring multiple instances to run simultaneously, thereby reducing resource consumption.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If canary instances are deployed to detect performance issues, then reliability is improved, but time to identify root causes worsens

Engineering Contradiction:
Improvesystem stabilityVSAvoiddiagnostic time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The canary analysis component continuously monitors performance metrics of canary instances and provides feedback by comparing them against baseline instances. When performance deviations are detected, the system immediately identifies which canary instance is affected and routes traffic away from it, enabling rapid detection and response to performance issues while maintaining system reliability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10355950B2Progressive deployment and termination of canary instances for software analysis
Publication Date: 2019.07.16 NETFLIX INC
  • US10355950B2 patent drawing
  • US10355950B2 patent drawing
  • US10355950B2 patent drawing

AI summary

A data processing method, comprising: using computing apparatus, causing instantiating a plurality of baseline application instances that are running a first version of software, and one or more canary application instances that are running a second version of the software; using computing apparatus including a load balancer, causing selectively routing a first proportion of incoming requests to the baseline instances, and routing a second proportion of the incoming requests to the canary instances; monitoring the plurality of canary instances to collect performance data for performance metrics; determining that the performance data indicates a negative performance issue, and in response thereto: using computing apparatus, automatically updating the first proportion to be larger and updating the second proportion to be smaller, and then reconfiguring the load balancer based upon the first proportion and the second proportion; terminating one or more of the canary application instances.