MicrosoftDocs / azure-docs

Open source documentation of Microsoft Azure
https://docs.microsoft.com/azure
Creative Commons Attribution 4.0 International
10.24k stars 21.41k forks source link

Cognitive Search and Traffic Manager integration unclear #110656

Closed 4865783a5d closed 1 year ago

4865783a5d commented 1 year ago

Relevant link: https://learn.microsoft.com/en-us/azure/search/search-reliability#use-azure-traffic-manager-to-coordinate-requests

Azure Traffic Manager allows you to route requests to multiple geo-located websites that are then backed by multiple search services. One advantage of the Traffic Manager is that it can probe Azure Cognitive Search to confirm availability and route users to alternate search services if a service is down. In addition, if you're routing search requests through Azure Web Sites, Azure Traffic Manager can help you load balance cases where the web site is up, but search isn't. Here's an example of an architecture that uses Traffic Manager.

The image however, does indicate that Traffic Manager must go over an App Service in order to check the health of Cognitive Search (Similar to a concierge service for IoT Hub)

Traffic Manager does not seem to support a Cognitive Search Endpoint. Any clarifications would be helpful.


Document Details

Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

RamanathanChinnappan-MSFT commented 1 year ago

@4865783a5d

Thanks for your feedback! We will investigate and update as appropriate.

Naveenommi-MSFT commented 1 year ago

@4865783a5d

Azure Traffic Manager is primarily used for routing network traffic across different endpoints based on specific routing methods (such as priority, performance, or geographic location). It acts at the DNS level to direct incoming requests to the appropriate endpoint. It does not have inherent knowledge of the health or availability of specific services like Azure Cognitive Search.

To achieve health checks and failover capabilities for Azure Cognitive Search or other services, you would typically use Azure Application Gateway or a load balancer in combination with Azure Traffic Manager. Azure Application Gateway supports health probes, which can be configured to check the availability of specific backend services and perform load balancing accordingly.

In summary, while Azure Traffic Manager can help with routing traffic to different endpoints, it does not directly support health checks for Azure Cognitive Search. You would need to use additional Azure services, such as Azure Application Gateway, to implement health checks and failover mechanisms for Azure Cognitive Search.

If there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.

4865783a5d commented 1 year ago

@Naveenommi-MSFT Thank you for the clarification, this is what I've observed as well. The documentation is however misleading regarding the probing capabilities of Traffic Manager.

image

This can be interpreted as if there is an endpoint configuration capable of probing Cognitive Search directly, without an additional service.

Naveenommi-MSFT commented 1 year ago

@4865783a5d Thank you for your response. I've delegated this to content author @HeidiSteen, who will review it and offer their insightful opinions.

HeidiSteen commented 1 year ago

Hi @4865783a5d and Naveen, I made the edits you requested, but those edits are based on what I gathered from Naveen's response, Azure Architecture Center, and product docs for Application Gateway and Traffic Manager. I'm not able to actually install all of the software and test to confirm. Can you take a look at the doc change and let me know if it's enough?

Here's a URL to the section:

https://learn.microsoft.com/en-us/azure/search/search-reliability#use-azure-traffic-manager-and-azure-application-gateway-to-coordinate-requests

4865783a5d commented 1 year ago

Hi @HeidiSteen, thank you for your response.

From my perspective, what is still missing is that Cognitive Search does not offer a public endpoint to check its health (See https://learn.microsoft.com/en-us/rest/api/searchservice/#calling-the-apis - it requires an api key). You'd need a concierge service which can perform an authenticated health-check against any of the endpoints Cog. Search offers.

Something similar is documente for IoT Hub: https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-ha-dr#achieve-cross-region-ha

HeidiSteen commented 1 year ago

Hi Alex @4865783a5d, here is a link to the section about search failover in a multi-region deployment. https://learn.microsoft.com/en-us/azure/search/search-reliability#fail-over-or-redirect-query-requests

For Traffic Manager references in particular, it should be clear now that if Traffic Manager is the load balancing solution, requests must go through a thin client or search-enabled app that sits between TM and search. Let me know if you see room for improvement.

I'll close this issue now since I think it's been addressed, but please feel free to reopen if you disagree.

Thanks for your help in making these docs more useful!

please-close