Managing access to cloud-hosted applications using domain name resolution
Edge clusters execute in a plurality of regional clouds of a cloud computing platforms, which may include cloud POPs. Edge clusters may be programmed to control access to applications executing in the cloud computing platform. Edge clusters and an intelligent routing module route traffic to applications executing in the cloud computing platform. Cost and latency may be managed by the intelligent routing module by routing requests over the Internet or a cloud backbone network and using or bypassing cloud POPs. The placement of edge clusters may be selected according to measured or estimated latency. Latency may be estimated using speed test servers and the locations of speed test servers may be verified.
1 . A method comprising:
instantiating a plurality of edge clusters on one or more cloud computing platforms, each edge cluster being located in a different regional cloud of a plurality of regional clouds in the one or more cloud computing platforms, the regional clouds being connected to one another by one or more cloud backbone networks, the plurality of regional clouds being further connected to a wide area network (WAN) that does not include the one or more cloud backbone networks;
instantiating an application instance in a first regional cloud of the plurality of regional clouds, a first edge cluster of the plurality of edge clusters executing in the first regional cloud and having a first internet protocol (IP) address;
programming, by an intelligent routing module, domain name resolution logic of the one or more cloud computing platforms to manage latency of requests to access the application instance from locations in multiple regional clouds of the plurality of regional clouds; and
configuring, by the intelligent routing module, one or more edge clusters of the plurality of edge clusters with alternative routing logic such that the intelligent routing module, the first edge cluster, and a second edge cluster of the plurality of edge clusters are configured to perform a method including:
resolving, by the intelligent routing module, a domain of the application instance to a second IP address of the second edge cluster;
receiving, by the second edge cluster, a request to access the application instance, the request addressed to the second IP address;
routing, by the second edge cluster, the request to the first IP address according to the alternative routing logic.
2 . The method of claim 1 , wherein programming the domain name resolution logic of the one or more cloud computing platforms comprises:
programming a geographic domain name service (GeoDNS) of the one or more cloud computing platforms to resolve a domain name associated with the application instance to an IP address according to a location of an endpoint requesting resolution of the domain name.
3 . The method of claim 2 , wherein the IP address is a static IP address.
4 . The method of claim 2 , wherein the IP address is an Anycast IP address.
5 . The method of claim 2 , further comprising:
programming, by the intelligent routing module, the GeoDNS of the one or more cloud computing platforms such that for first user endpoints accessing the application instance using a first portion of the plurality of regional clouds, a domain name of the application instances is resolved to an Anycast IP address; and
programming, by the intelligent routing module, the GeoDNS of the one or more cloud computing platforms such that for second user endpoints accessing the application instance within second first portion of the plurality of regional clouds, a domain name of the application instances is resolved to a static IP address.
6 . The method of claim 1 , further comprising configuring the second edge cluster, by the alternative routing logic, to route the request to the first IP address by providing the first IP address to a source of the request.
7 . The method of claim 1 , further comprising:
receiving, by the intelligent routing module, a first lane selection;
determining, by the intelligent routing module, that the first lane selection is selection of a fast lane; and
in response to determining that the first lane selection is selection of the fast lane, programming, by the intelligent routing module, the domain name resolution logic to associate a domain name of the application instance with an Anycast IP address such that requests addressed to the domain name are routed over the one or more cloud backbone networks.
8 . The method of claim 7 , further comprising:
receiving, by the intelligent routing module a second lane selection;
determining, by the intelligent routing module that the second lane selection is selection of a cost effective lane; and
in response to determining that the first lane selection is selection of the cost effective lane, programming, by the intelligent routing module, the domain name resolution logic to associate the domain name of the application instance with a static IP address such that requests addressed to the domain name are routed over the one or more cloud backbone networks.
9 . The method of claim 8 , further comprising:
receiving, by the intelligent routing module a third lane selection;
determining, by the intelligent routing module that the second lane selection is selection of a performance lane; and
in response to determining that the first lane selection is selection of the performance lane, programming, by the intelligent routing module, the domain name resolution logic to associate the domain name of the application instance with a static IP address such that requests addressed to the domain name are routed over the one or more cloud backbone networks with ingress to the one or more cloud computing platforms in bypass of points of presence (POP) of the one or more cloud computing platforms.
10 . The method of claim 1 , wherein the WAN includes any of the Internet, a 5G Cellular Network, and a LONG TERM EVOLUTION (LTE) cellular network.
11 . A system comprising:
a cloud computing platform comprising a plurality of regional clouds connected by a cloud backbone network, each regional cloud comprising a plurality of computing devices associated with a geographic region and connected by a regional network, the plurality of regional clouds being further connected to a wide area network (WAN) that does not include the cloud backbone network;
a plurality of edge clusters on the cloud computing platform, each edge cluster being located in a different regional cloud of the plurality of regional clouds; and
an intelligent routing module coupled to the plurality of edge clusters and programmed to:
invoke instantiation of an application instance in a first regional cloud of the plurality of regional clouds having a first edge cluster of the plurality of edge clusters executing in the first regional cloud, the first edge cluster having a first internet protocol (IP) address;
configure the first edge cluster to control access to the application instance; and
program domain name resolution logic of the cloud computing platform to manage latency of requests to access the application instance from locations in multiple regional clouds of the plurality of regional clouds;
configuring, by the intelligent routing module, one or more edge clusters of the plurality of edge clusters with alternative routing logic such that the intelligent routing module, the first edge cluster, and a second edge cluster of the plurality of edge clusters are configured to perform a method including:
resolving, by the intelligent routing module, a domain of the application instance to a second IP address of the second edge cluster;
receiving, by the second edge cluster, a request to access the application instance, the request addressed to the second IP address;
routing, by the second edge cluster, the request to the first IP address according to the alternative routing logic.
12 . The system of claim 11 , wherein the intelligent routing module is further programmed to program the domain name resolution logic of the cloud computing platforms by:
programming a geographic domain name service (GeoDNS) of the cloud computing platform to resolve a domain name associated with the application instance to an IP address according to a location of an endpoint requesting resolution of the domain name.
13 . The system of claim 12 , wherein the IP address is a static IP address.
14 . The system of claim 12 , wherein the IP address is an Anycast IP address.
15 . The system of claim 12 , wherein the intelligent routing module is further programmed to program the domain name resolution logic of the cloud computing platform by:
programming the GeoDNS of the cloud computing platforms such that for first user endpoints accessing the application instance using a first portion of the plurality of regional clouds, a domain name of the application instances is resolved to an Anycast IP address; and
programming the GeoDNS of the cloud computing platforms such that for second user endpoints accessing the application instance within second first portion of the plurality of regional clouds, a domain name of the application instances is resolved to a static IP address.
16 . The system of claim 11 , wherein the intelligent routing module is further programmed to:
configure the second edge cluster to route the request to the first IP address by providing the first IP address to a source of the request.
17 . The system of claim 11 , wherein the intelligent routing module is further programmed to:
receive a lane selection;
if the lane selection is selection of a fast lane, program the domain name resolution logic to associate a domain name of the application instance with an Anycast IP address such that requests addressed to the domain name are routed over the cloud backbone networks.
18 . The system of claim 17 , wherein the intelligent routing module is further programmed to:
if the lane selection is selection of a performance lane, program the domain name resolution logic to associate the domain name of the application instance with a static IP address such that requests addressed to the domain name are routed over the cloud backbone networks.
19 . The system of claim 18 , wherein the intelligent routing module is further programmed to:
if the lane selection is selection of a performance lane, program the domain name resolution logic to associate the domain name of the application instance with a static IP address such that requests addressed to the domain name are routed over the cloud backbone networks with ingress to the cloud computing platforms in bypass of points of presence (POP) of the cloud computing platforms.
20 . The system of claim 11 , wherein the WAN includes any of the Internet, a 5G Cellular Network, and a LONG TERM EVOLUTION (LTE) cellular network.