IP Library Granted Patent US 10,924,367
Granted Patent B2
US 10,924,367 · App. 16/415,874 · Granted Feb 16, 2021

Using service graphs to compare performance of a plurality of versions of a microservice

Inventor: Rajiv Sinha (Santa Clara, CA)
Assignee: Citrix Systems, Inc.
H04L43/045H04L43/062H04L43/0817H04L43/0823H04L43/0852H04L43/0876
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,924,367
App. No.
16/415,874
Granted
Feb 16, 2021
Kind
B2
Abstract

Described embodiments provide systems and methods for using service graphs to compare performance of a plurality of versions of a microservice. A device may establish metrics from execution of a plurality of versions of a microservice of a service. The plurality of versions of the microservice are deployed concurrently for a portion of execution of the service. The device generates service graphs for each version of the plurality of versions of the microservice. The service graphs include metrics from monitoring execution of a respective version of the microservice. The device identifies differences in metrics between the service graphs for different versions of the microservice. The device requests a change in network traffic of the service between respective versions of the microservice based at least on the one or more differences.

Claims (28)

1. A method of using service graphs to compare performance of a plurality of versions of a microservice, the method comprising:

(a) identifying, by one or more devices, metrics for a plurality of versions of a microservice of a service, the plurality of versions being executable concurrently for at least a portion of execution of the service, each of the plurality of versions receiving a respective portion of network traffic of the service;

(b) generating, by the one or more devices, a service graph for each version of the plurality of versions of the microservice, each of the service graphs comprising metrics from execution of a respective version of the microservice;

(c) identifying, by the one or more devices, one or more differences in metrics between the service graphs for different versions of the microservice; and

(d) requesting a change in the respective portion of network traffic of the service between respective versions of the microservice based at least on the one or more differences.

2. The method of claim 1 , wherein the plurality of versions of the microservice are deployed via a canary deployment.

3. The method of claim 1 , wherein (a) further comprises distributing a first percentage of network traffic to a first version of the microservice and a second percentage of network traffic to a second version of the microservice.

4. The method of claim 3 , further comprising increasing over time the first percentage of network traffic distributed to the first version of the microservice while decreasing the second percentage of the network traffic distributed to the second version of the microservice.

5. The method of claim 1 , further comprising generating, by the one or more devices, the service graphs to comprise an arc between a plurality of microservices of the service, the arc identifying one or more metrics.

6. The method of claim 5 , wherein the arc identifies traffic volume between at least two microservices of the plurality of microservices.

7. The method of claim 5 , wherein the arc identifies latency between at least two microservices of the plurality of microservices.

8. The method of claim 5 , wherein the arc identifies an error rate between at least two microservices of the plurality of microservices.

9. The method of claim 5 , wherein the arc is connected between a first node representing a state of the microservice and a second node representing a state of a second microservice.

10. The method of claim 1 , wherein (e) further comprises requesting to switch at least a portion of network traffic from one version of the microservice to another version of the microservice based on the one or more differences.

11. A system of using service graphs to compare performance of a plurality of versions of a microservice, the system comprising:

one or more devices comprising one or more processors coupled to memory and configured to identify metrics for a plurality of versions of a microservice of a service, the plurality of versions being executable concurrently for at least a portion of execution of the service, each of the plurality of versions receiving a respective portion of network traffic of the service;

wherein the one or more devices are configured to generate service graph for each version of the plurality of versions of the microservice, each of the service graphs comprising metrics from execution of a respective version of the microservice;

wherein the one or more devices are configured to identify one or more differences in metrics between the service graphs; and

wherein the one or more devices are configured to request a change in the respective portion of network traffic of the service between respective versions of the microservice based at least on the one or more differences.

12. The system of claim 11 , wherein the plurality of versions of the microservice are deployed via a canary deployment.

13. The system of claim 11 , wherein a first percentage of network traffic is distributed to a first version of the microservice and a second percentage of network traffic to a second version of the microservice.

14. The system of claim 13 , wherein over time the first percentage of network traffic distributed to the first version of the microservice is increased while the second percentage of the network traffic distributed to the second version of the microservice is decreased.

15. The system of claim 11 , wherein the one or more devices are configured to generate the service graphs to comprise an arc between a plurality of microservices of the service, the arc identifying one or more metrics.

16. The system of claim 15 , wherein the arc identifies traffic volume between at least two microservices of the plurality of microservices.

17. The system of claim 15 , wherein the arc identifies latency between at least two microservices of the plurality of microservices.

18. The system of claim 15 , wherein the arc identifies an error rate between at least two microservices of the plurality of microservices.

19. The system of claim 15 , wherein the arc is connected between a first node representing a state of the microservice and a second node representing a state of a second microservice.

20. The system of claim 11 , wherein the one or more devices are configured to switch at least a portion of network traffic from one version of the microservice to another version of the microservice based on the one or more differences.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2019
From: SINHA, RAJIV
To: CITRIX SYSTEMS, INC.
Reel/Frame 049485/0376 →
Continuity (1)
Related Publication 20200366580A1 · Nov 19, 2020
Cited By (1)
US 12,634,375