Canary Deployment Service Graphs for Microservice Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In microservice architectures, updating or upgrading individual microservices can require rebuilding and deploying the entire application, leading to complexities in monitoring and identifying issues introduced by new versions, especially when network traffic passes through a series of microservices.

Innovation Solution

Implementing a canary deployment method where a canary version of a microservice is deployed within a call chain, with identifiers in request headers to differentiate transactions processed by canary and production versions, allowing for monitoring and generating service graphs to identify issues introduced by the new version.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a canary version of a microservice is deployed within a call chain to enable individual upgrading, then the ability to upgrade microservices independently is improved, but the complexity of monitoring and identifying issues introduced by the new version increases

Engineering Contradiction:
Improveability to upgrade microservices independentlyVSAvoidcomplexity of monitoring and identifying issues
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary device (service mesh or proxy) that sits between clients and microservices. This intermediary automatically injects version identifiers into request headers, routes traffic to appropriate microservice versions, and collects response data. This mediator handles the complexity of version management and monitoring, allowing independent microservice upgrading without directly complicating the monitoring system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements a feedback mechanism where the intermediary device collects response data from microservices, compares it against expected outcomes, and provides feedback on the health and performance of canary deployments. This automated feedback loop enables continuous monitoring of canary versions without manual intervention, resolving the monitoring complexity issue.

Inventive Principle:
Principle #23Feedback

2Measurement precision

If version identifiers are included in request headers to differentiate canary and production transactions, then the precision of transaction tracking is improved, but the overhead of processing and transmitting headers increases

Engineering Contradiction:
Improveprecision of transaction trackingVSAvoidoverhead of processing and transmitting headers
Core Design Contradiction:
Measurement precisionVSLoss of energy

Solution Approach 1:

The patent applies partial action by only adding version identifier headers to a subset of requests (canary deployment traffic) rather than all requests. The intermediary device intelligently determines which requests need version tracking and adds identifiers only to those, reducing overall header processing overhead while maintaining precise tracking for canary transactions.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If canary deployment is implemented to reduce risk in production environment, then the reliability of deployment process is improved, but the time required for deployment and monitoring increases

Engineering Contradiction:
Improvereliability of deployment processVSAvoidtime required for deployment and monitoring
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-configuring the intermediary device with deployment manifests that specify canary deployment parameters, version identifiers, and monitoring thresholds before deployment begins. The system pre-establishes the monitoring framework and routing rules, so when canary deployment starts, the infrastructure is already in place to handle it efficiently, reducing deployment time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11281447B2Service graphs for canary deployment systems and methods
Publication Date: 2022.03.22 CITRIX SYSTEMS INC
  • US11281447B2 patent drawing
  • US11281447B2 patent drawing
  • US11281447B2 patent drawing

AI summary

Described embodiments provide systems and methods for generating service graphs for canary deployment of microservices is provided. A call chain can include a canary version of a microservice and one or more production versions of microservices. The canary version microservice can receive a request and include into header portion of the request an identifier indicating the microservice is the canary version of the microservice. The microservice can provide, to the one or more subsequent microservices of the call chain, the request with the identifier. The one or more subsequent microservices can include one or more tags in the request to identify that the one or more subsequent microservices are executing the production versions while retaining the identifier with the request. A service graph can be generated identifying transactions processed by the canary version microservice and the production versions of the one or more subsequent microservices.