Azure traffic manager is a DNS based load balancer which enables you to distribute the traffic optimally to the services across global Azure regions, while providing high availability and responsiveness.
Azure traffic manager is a global Azure resource, meaning when Azure traffic manager instance is created, it is not associated with any Azure region.
Traffic Manager uses DNS to direct client requests to the most appropriate service endpoint based on a traffic-routing method and the health of the endpoints.
An endpoint is an Azure hosted internet facing service (e.g. App Service accessible on internet). An endpoint may also refer to an internet facing service which is not on Azure. You configure every deployment of the application as an endpoint in Azure traffic manager. There are three types of endpoints supported by Traffic Manager:
- Azure endpoints, for services hosted in Azure
- External endpoints, for services hosted outside of Azure. They can be either on-premise service or can be hosted in some other cloud provider.
- Nested endpoints, are used to combine Traffic Manager profiles to create more flexible traffic-routing schemes to support the needs of larger, more complex deployments.
Each profile contains any kind of mix of endpoint types.
Traffic manager routing
Traffic Manager provides a range of traffic-routing methods and endpoint monitoring options to suit different application needs and automatic failover models.
Azure traffic manager supports 6 different routing methods to determine how to route the traffic. The traffic routing strategy determines the best endpoint, which would be returned by DNS lookup.
Below are different strategies:
How does it work ?
Azure traffic manager works at the DNS level.
When any URL is accessed by client, the DNS lookup is done to know the IP address where the request should be forwarded. Azure traffic manager inserts an extra level in this lookup.
- The actual domain name is mapped to traffic manager.
- The traffic manager uses the routing strategy to figure out best performing application instance, so it would return the service endpoint hosted in some region.
- The service endpoint further is resolved to know the actual location where the request would be forwarded.
I hope you found this information useful. Let me know your thoughts.