IP Library › Granted Patent US 11,838,376
Granted Patent B2
US 11,838,376 · App. 18/148,690 · Granted Dec 5, 2023

Scaling service discovery in a micro-service environment

Inventors: Yi Yang (Morrisville, NC); Wojciech Dec (Amsterdam, NL); Syed Basheeruddin Ahmed (Santa Clara, CA); Sanjay Agrawal (San Jose, CA); Ruchir Gupta (San Jose, CA)
Assignee: Cisco Technology, Inc.
H04L67/51G06F9/45558G06F2009/45595
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,838,376
App. No.
18/148,690
Granted
Dec 5, 2023
Kind
B2
Abstract

Systems and methods provide for scaling service discovery in a micro-service environment. A controller can inject a service discovery agent onto a host. At least one of the controller or the agent can identify a first set of micro-service containers that are dependencies of the first micro-service container and a second set of micro-service containers that are dependencies of the second micro-service container. At least one of the controller or the agent can update routing data for the first set of micro-service containers and the second set of micro-service containers. At least one of the controller or the agent can determine the second micro-service container has terminated on the host computing device. At least one of the controller or the agent can update the agent to remove the routing data for the second set of micro-service containers.

Claims (40)

1. A computer-implemented method comprising:

establishing, by a controller, a service discovery agent associated with a first microservice of a plurality of microservices associated with a distributed application, the first microservice being provided by one or more containers associated with the first microservice, wherein the service discovery agent manages communications associated with the first microservice;

instantiating a second microservice that is a dependency of the first microservice and a third microservice that is not a dependency of the first microservice, wherein the second microservice is provided by one or more containers associated with the second microservice;

providing, by the controller, routing data associated with the second microservice to the service discovery agent associated with the first microservice;

determining, by the controller, that at least one container of the one or more containers associated with the second microservice has terminated;

providing updated routing data associated with the second microservice to the service discovery agent; and

updating, at the service discovery agent, the routing data associated with the second microservice.

2. The computer-implemented method of claim 1 , wherein the service discovery agent is located on a first host in a first cloud.

3. The computer-implemented method of claim 1 , further comprising:

load-balancing requests to the one or more containers providing the plurality of microservices.

4. The computer-implemented method of claim 1 , further comprising:

checking for dependencies of the first microservice.

5. The computer-implemented method of claim 1 , wherein providing the routing data associated with the second microservice to the service discovery agent associated with the first microservice excludes routing data associated with the third microservice.

6. The computer-implemented method of claim 1 , wherein updating the routing data associated with the second microservice comprises removing the routing data associated with the second microservice.

7. A system, comprising:

one or more processors, and

memory including instructions that, when executed by the one or more processors, cause the system to:

establish by a controller, a service discovery agent associated with a first microservice of a plurality of microservices associated with a distributed application, the first microservice being provided by one or more containers associated with the first microservice, wherein the service discovery agent manages communications associated with the first microservice;

instantiate a second microservice that is a dependency of the first microservice and a third microservice that is not a dependency of the first microservice, wherein the second microservice is provided by one or more containers associated with the second microservice;

provide, by the controller, routing data associated with the second microservice to the service discovery agent associated with the first microservice;

determine, by the controller, that at least one container of the one or more containers associated with the second microservice has terminated;

provide updated routing data associated with the second microservice to the service discovery agent; and

update, at the service discovery agent, the routing data associated with the second microservice.

8. The system of claim 7 , wherein the service discovery agent is located on a first host in a first cloud.

9. The system of claim 7 , further comprising further instructions that, when executed by the one or more processors, causes the one or more processors to: load-balance requests to the one or more containers providing the plurality of microservices.

10. The system of claim 7 , further comprising further instructions that, when executed by the one or more processors, causes the one or more processors to: check for dependencies of the first microservice.

11. The system of claim 7 , wherein providing the routing data associated with the second microservice to the service discovery agent associated with the first microservice excludes routing data associated with the third microservice.

12. The system of claim 7 , wherein updating the routing data associated with the second microservice comprises removing the routing data associated with the second microservice.

13. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the processors to:

establish by a controller, a service discovery agent associated with a first microservice of a plurality of microservices associated with a distributed application, the first microservice being provided by one or more containers associated with the first microservice, wherein the service discovery agent manages communications associated with the first microservice;

instantiate a second microservice that is a dependency of the first microservice and a third microservice that is not a dependency of the first microservice, wherein the second microservice is provided by one or more containers associated with the second microservice;

provide, by the controller, routing data associated with the second microservice to the service discovery agent associated with the first microservice;

determine, by the controller, that at least one container of the one or more containers associated with the second microservice has terminated;

provide updated routing data associated with the second microservice to the service discovery agent; and

update, at the service discovery agent, the routing data associated with the second microservice.

14. The non-transitory computer-readable medium of claim 13 , wherein the service discovery agent is located on a first host in a first cloud.

15. The non-transitory computer-readable medium of claim 13 , further comprising instructions that, when executed by the one or more processors, causes the one or more processors to: load-balance requests to the one or more containers providing the plurality of microservices.

16. The non-transitory computer-readable medium of claim 13 , further comprising instructions that, when executed by the one or more processors, causes the one or more processors to: check for dependencies of the first microservice.

17. The non-transitory computer-readable medium system of claim 13 , wherein providing the routing data associated with the second microservice to the service discovery agent associated with the first microservice excludes routing data associated with the third microservice.

18. The non-transitory computer-readable medium system of claim 13 , wherein updating the routing data associated with the second microservice comprises removing the routing data associated with the second microservice.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2022
From: YANG, YI; DEC, WOJCIECH; AHMED, SYED BASHEERUDDIN; AGRAWAL, SANJAY; GUPTA, RUCHIR
To: CISCO TECHNOLOGY, INC.
Reel/Frame 062245/0183 →
Continuity (4)
Continuation 17817568 · Aug 4, 2022
Continuation 16505618 · Jul 8, 2019
Continuation 15217311 · Jul 22, 2016
Related Publication 20230239364A1 · Jul 27, 2023