IP Library Granted Patent US 10,812,366
Granted Patent B1
US 10,812,366 · App. 16/118,775 · Granted Oct 20, 2020

System and method for deploying, scaling and managing network endpoint groups in cloud computing environments

Inventors: Anna Berenberg (Saratoga, CA); Venkat Subbaiah Naidu Kotla (Cupertino, CA); Neha Pattan (Mountain View, CA); Uday Ramakrishna Naik (Pleasanton, CA); Prajakta Joshi (Mountain View, CA); Ines Envid (Palo Alto, CA)
Assignee: Google LLC
H04L45/02H04L61/2007H04L67/1002H04L67/02H04L67/28
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,812,366
App. No.
16/118,775
Granted
Oct 20, 2020
Kind
B1
Abstract

Grouping virtualized computing instances in cloud environments can be achieved utilizing groups of network endpoints, such as hardware devices, virtualized computing instances, etc. The network endpoint group (NEG) provides a logical grouping for providers of backend services that may be arranged on the network endpoints, and may be organized based on the backend service to be provided by the computing environments that operate as network endpoints. For example, the NEGs may be implemented for load balancing applications. The network endpoint groups, and the network endpoints included therein, may be managed using a framework of tools, libraries and application programming interfaces.

Claims (52)

1. A system, comprising:

a plurality of network endpoints, each endpoint being a virtual or physical computing device, the plurality of network endpoints forming a network endpoint group (NEG) for performing tasks associated with an application; and

a NEG controller, the NEG controller comprising one or more processors configured to:

receive control data from the network endpoints in a given NEG;

monitor data request ingresses and backend services;

determine, based on at least one of the received control data or the monitoring, whether to add an endpoint to the given NEG or remove an endpoint from the given NEG;

when it is determined to add an endpoint, identify the endpoint to add and a corresponding Internet Protocol (IP) address for the identified endpoint; and

send control data for updating forwarding rules based on the IP address.

2. The system of claim 1 , wherein each network endpoint is a container or a virtual computing instance.

3. The system of claim 1 , wherein a first of the plurality of network endpoints is located at a first location and a second of the plurality of network endpoints is located at a second location different from the first location.

4. The system of claim 1 , wherein the NEG controller is further configured to initiate a port scan to identify an available port through which the identified endpoint can receive and transmit data requests associated with the application.

5. The system of claim 1 , further comprising multiple NEGs, each of the multiple NEGs having an associated NEG controller.

6. The system of claim 5 , wherein the NEG controller is further configured to synchronize with other NEG controllers.

7. The system of claim 1 , wherein the NEG controller is further configured to synchronize addresses in a network endpoint object with the NEG.

8. A method of scaling a network endpoint group (NEG), comprising:

receiving, by one or more processors, control data from endpoints in a given NEG, the endpoints being virtual or physical computing devices grouped together to perform tasks associated with an application;

monitoring, by the one or more processors, data request ingresses and backend services;

determining, by the one or more processors based on at least one of the received control data or the monitoring, whether to add an endpoint to the given NEG or remove an endpoint from the given NEG;

when it is determined to add an endpoint, identifying the endpoint to add and a corresponding Internet Protocol (IP) address for the identified endpoint; and

updating, by the one or more processors, forwarding rules based on the assigned IP address.

9. The method of claim 8 , further comprising initiating, by the one or more processors, a port scan to identify an available port through which the identified endpoint can receive and transmit data requests associated with the application.

10. The method of claim 8 , further comprising, when it is determined to remove an endpoint, selecting an endpoint to be removed and detaching the selected endpoint from the NEG.

11. The method of claim 8 , wherein the IP address is aliased from a range of IP addresses corresponding to a virtual machine on which the endpoint is implemented.

12. The method of claim 8 , wherein the received control data indicates an operational status and processing capacity of each network endpoint.

13. The method of claim 8 , wherein updating the forwarding rules comprises transmitting second control data to a load balance controller.

14. The method of claim 13 , further comprising recalculating load balancing of data requests for the NEG as updated to include the added endpoint.

15. The method of claim 14 , further comprising transmitting, by the load balance controller, the updated forwarding rules to a load balancer for the application, causing the load balancer to redistribute data requests.

16. A system, comprising:

a network endpoint group (NEG) controller, configured to manage end points in a given NEG;

a load balance controller;

one or more application load balancers configured to:

load balance data requests distributed to network endpoints in the given NEG; and

forward data requests to an endpoint in the given NEG that has been configured to process the data request associated with a particular backend service application;

wherein the NEG controller is further configured to:

receive control data from the endpoints in the given NEG;

monitor data request ingresses and backend services for the NEG;

determine, based on at least one of the control data or the monitoring, whether to scale the NEG up or down by adding or removing endpoints; and

transmit control data to the load balance controller for updating forwarding rules.

17. The system of claim 16 , wherein the load balance controller is further configured to:

receive the control data from the NEG Controller;

recalculate load balancing of data requests; and

transmit updated forwarding rules to application load balancer.

18. The system of claim 17 , wherein the application load balancer is further configured to:

receives IP address:port tuples for each endpoint within the given NEG; and

redistribute data requests based on the recalculated load balancing.

19. A system, comprising:

a network endpoint group (NEG) controller, configured to manage end points in a given NEG;

a load balance controller;

one or more application load balancers configured to:

load balance data requests distributed to network endpoints in the given NEG; and

forward data requests to an endpoint in the given NEG that has been configured to process the data request associated with a particular backend service application; and

a target proxy configured to route incoming data requests to one of the one or more application load balancers, wherein the target proxy is configured to route the incoming data requests to the one of the one or more application load balancers based on a Uniform Resource Locator (URL) map.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2020
From: KOTLA, VENKAT SUBBAIAH NAIDU
To: GOOGLE LLC
Reel/Frame 053147/0851 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2018
From: BERENBERG, ANNA; VENKATA, SUBBAIAH; PATTAN, NEHA; NAIK, UDAY RAMAKRISHNA; JOSHI, PRAJAKTA; ENVID, INES
To: GOOGLE LLC
Reel/Frame 047018/0241 →
Continuity (1)
Provisional Application 62553037 · Aug 31, 2017
Cited By (10)
US 12,265,855 US 12,328,296 US 12,542,716 US 12,549,442 US 12,566,603 US 12,605,624 US 12,608,640 US 12,659,368 US 12,689,868 US 12,695,701