IP Library Granted Patent US 11,057,271
Granted Patent B2
US 11,057,271 · App. 16/447,130 · Granted Jul 6, 2021

Systems and method updating ADC configuration with intended state using desired state API

Inventors: Swetha Garipally (Bengaluru, IN); Pradeep Gangishetty (Bengaluru, IN); Chandra Keerthi Reddy (Bengaluru, IN); Subrata Sarkar (Bengaluru, IN); Vemula Srimithra (Bengaluru, IN); Vinay Shivananda (Bengaluru, IN); Raghav S N (Bengaluru, IN); Aman Chaudhary (Bengaluru, IN)
Assignee: Citrix Systems, Inc.
H04L41/082H04L67/34
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 11,057,271
App. No.
16/447,130
Granted
Jul 6, 2021
Kind
B2
Abstract

Described herein are systems and methods for updating configuration of a device based on changes to microservices. A device may receive a request via a desired state application programming interface (API) to update a configuration of the device to manage a desired set of instances of microservices. The device may identify from the request, a first set of endpoint information for each instance of a microservice in the desired set of instances of microservices. The first set of endpoint information may include an internet protocol (IP) address and port of an endpoint of a respective instance of the microservice. The first set or second set of endpoint information may include a weight for each instance of the microservice.

Claims (31)

1. A method for updating configuration of a device based on changes to microservices, the method comprising:

(a) receiving, by a device intermediary to a plurality of clients and microservices on one or more servers, a request via a desired state application programming interface (API) to update a configuration of the device to manage a desired set of instances of microservices;

(b) identifying, by the device from the request, a first set of endpoint information for each instance of a microservice in the desired set of instances of microservices, the first set of endpoint information comprising an internet protocol (IP) address and port of an endpoint of a respective instance of the microservice;

(c) communicating, by the device, the first set of endpoint information to each of one or more packet engines of the device, the one or more packet engines configured to manage network traffic over one or more networks to a current set of instances of microservices;

(d) determining, by the one or more packet engines, a change between the first set of endpoint information and a second set of endpoint information configured on the one or more packet engine for each instance of the microservice in the current set of instance of microservices; and

(e) updating, by the one or more packet engines based at least on the change, the configuration of the one or more packet engines to manage the network traffic over the one or more networks to the desired set of instances of microservices.

2. The method of claim 1 , wherein (a) further comprising receiving, by the device, the request from a controller of a cluster of microservices.

3. The method of claim 2 , wherein the controller is configured to receive information for the request from an API server for the microservices.

4. The method of claim 1 , wherein one of the first set or second set of endpoint information further comprises a weight for each instance of the microservice.

5. The method of claim 1 , wherein (d) further comprises determining, by the one or more packet engines, one or more endpoints in the first set of endpoints that are not in the second set of endpoints.

6. The method of claim 5 , wherein (e) further comprises adding, by the one or more packet engines, configuration on the one or more packet engines for the one or more endpoints.

7. The method of claim 1 , wherein (d) further comprises determining, by the one or more packet engines, one or more endpoints in the second set of endpoints that have been removed from the first set of endpoints.

8. The method of claim 7 , wherein (e) further comprises removing, by the one or more packet engines, configuration on the one or more packet engines corresponding to the one or more endpoints.

9. The method of claim 1 , wherein (d) further comprises determining, by the one or more packet engines, one or more endpoints that are in both the first set of endpoints and the second set of endpoints.

10. The method of claim 9 , wherein (e) further comprises maintaining, by the one or more packet engines, configuration on the one or more packet engines corresponding to the one or more endpoints.

11. A system for updating configuration of a device based on changes to microservices, the system comprising:

a device comprising one or more processors, coupled to memory and intermediary to a plurality of clients and microservices, the device configured to receive a request via a desired state application programming interface (API) to update a configuration of the device to manage a desired set of instances of microservices, and identify from the request, a first set of endpoint information for each instance of a microservice in the desired set of instances of microservices on one or more servers;

wherein the first set of endpoint information comprises an internet protocol (IP) address and port of an endpoint of a respective instance of the microservice;

wherein the device is configured to communicate the first set of endpoint information to one or more packet engines of the device configured to manage network traffic over one or more networks to a current set of instances of microservices;

wherein the one or more packet engines are configured to:

determine a change between the first set of endpoint information and a second set of endpoint information configured on the one or more packet engine for each instance of the microservice in the current set of instances of microservices; and

update, based at least on the change, the configuration of the one or more packet engines to manage the network traffic over the one or more networks to the desired set of instances of microservices.

12. The system of claim 11 , wherein the device is further configured to receive the request from a controller of a cluster of microservices.

13. The system of claim 11 , wherein the controller is configured to receive information for the request from an API server for the microservices.

14. The system of claim 11 , wherein one of the first set or second set of endpoint information further comprises a weight for each instance of the microservice.

15. The system of claim 11 , wherein the one or more packet engines are further configured to determine one or more endpoints in the first set of endpoints are not in the second set of endpoints.

16. The system of claim 15 , wherein the one or more packet engines are further configured to add configuration on the one or more packet engines for the one or more endpoints.

17. The system of claim 11 , wherein the one or more packet engines are further configured to determine one or more endpoints in the second set of endpoints that have been removed from the first set of endpoints.

18. The system of claim 17 , wherein the one or more packet engines are further configured to remove configuration on the one or more packet engines corresponding to the one or more endpoints.

19. The system of claim 11 , wherein the one or more packet engines are further configured to determine one or more endpoints that are in both the first set of endpoints and the second set of endpoints.

20. The system of claim 19 , wherein the one or more packet engines are further configured to maintain configuration on the one or more packet engines corresponding to the one or more endpoints.

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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
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 →
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 20, 2019
From: GARIPALLY, SWETHA; GANGISHETTY, PRADEEP; REDDY, CHANDRA KEERTHI; SARKAR, SUBRATA; SRIMITHRA, VEMULA; SHIVANANDA, VINAY; N, RAGHAV S; CHAUDHARY, AMAN
To: CITRIX SYSTEMS, INC.
Reel/Frame 049540/0575 →
Continuity (1)
Related Publication 20200403853A1 · Dec 24, 2020