Condividi tramite


Distribuzioni in più aree in Ricerca di intelligenza artificiale di Azure

Anche se Ricerca di intelligenza artificiale di Azure è un servizio a singola area, è possibile ottenere una maggiore disponibilità e resilienza distribuendo più servizi di ricerca con configurazioni e contenuti identici in più aree.

Questo articolo descrive i componenti di una soluzione in più aree, che si basa sullo script personalizzato o sul codice per gestire il failover se un servizio non è più disponibile.

Per altre informazioni sulle funzionalità di affidabilità di Ricerca di intelligenza artificiale di Azure, inclusa la resilienza all'interno dell'area tramite zone di disponibilità, vedere Affidabilità in Ricerca di intelligenza artificiale di Azure.

Perché usare più aree?

Se sono necessari due o più servizi di ricerca, la creazione in aree diverse può soddisfare i requisiti operativi seguenti:

  • Resilienza alle interruzioni dell'area. Se si verifica un'interruzione, Ricerca di intelligenza artificiale di Azure non fornisce il failover istantaneo in un'altra area.

  • Prestazioni veloci per un'applicazione distribuita a livello globale. Se le richieste di indicizzazione e query provengono da tutto il mondo, gli utenti più vicini al data center host hanno prestazioni più veloci. La creazione di più servizi nelle aree con prossimità a questi utenti può equalizzare le prestazioni per tutti.

Architettura in più aree

In una configurazione in più aree, due o più servizi di ricerca si trovano in aree diverse e hanno indici sincronizzati. Gli utenti vengono indirizzati automaticamente al servizio con la latenza più bassa.

Ricerca di intelligenza artificiale di Azure non fornisce un metodo automatizzato di replica degli indici tra aree. Tuttavia, è possibile sincronizzare i dati usando l'indicizzazione di modelli push o pull, entrambi descritti nella sezione seguente. È anche possibile aggiungere Gestione traffico di Azure o un altro servizio di bilanciamento del carico per il reindirizzamento delle richieste.

Il diagramma seguente illustra un set di servizi di ricerca con distribuzione geografica:

Diagramma che mostra una visualizzazione a schede incrociate dei servizi in base all'area.

Suggerimento

Per un'implementazione completa, vedere l'esempio Bicep in GitHub. L'esempio distribuisce una soluzione di ricerca in più aree completamente configurata che può essere modificata nelle aree e nelle strategie di indicizzazione.

Sincronizzazione dati

Per sincronizzare due o più servizi di ricerca distinti, è possibile:

Se si usano le API REST per eseguire il push del contenuto nell'indice, è possibile sincronizzare più servizi di ricerca inviando aggiornamenti a ogni servizio ogni volta che si verificano modifiche. Assicurarsi che il codice gestisca i casi in cui un aggiornamento ha esito negativo per un servizio ma ha esito positivo per altri servizi.

Residenza dei dati

Quando si creano più servizi di ricerca in aree diverse, il contenuto viene archiviato nell'area scelta per ogni servizio.

Ricerca di intelligenza artificiale di Azure non archivia i dati all'esterno dell'area specificata senza l'autorizzazione. L'autorizzazione è implicita quando si usano funzionalità che scrivono in Archiviazione di Azure, per cui si fornisce un account di archiviazione nell'area preferita. Queste funzionalità includono:

Se il servizio di ricerca e l'account di archiviazione si trovano nella stessa area, il traffico di rete usa indirizzi IP privati sulla rete backbone Microsoft, quindi non è possibile configurare firewall IP o endpoint privati per la sicurezza di rete. In alternativa, usare l'eccezione del servizio attendibile.

Failover e reindirizzamento delle richieste

Per la ridondanza a livello di richiesta, Azure offre diverse opzioni di bilanciamento del carico:

Usare il gateway applicazione di Azure per bilanciare il carico tra server in un'area a livello di applicazione.

Per impostazione predefinita, gli endpoint di servizio sono accessibili tramite una connessione Internet pubblica. Usare il gateway applicazione se si configura un endpoint privato per le connessioni client provenienti dall'interno di una rete virtuale.

Quando si valutano queste opzioni di bilanciamento del carico, considerare i punti seguenti:

  • Ricerca di intelligenza artificiale di Azure è un servizio back-end che accetta l'indicizzazione e le richieste di query da un client.

  • Per impostazione predefinita, gli endpoint di servizio sono accessibili tramite una connessione Internet pubblica. È consigliabile usare il gateway applicazione di Azure per gli endpoint privati che provengono dall'interno di una rete virtuale.

  • Azure AI Search accetta le richieste indirizzate all'endpoint <your-search-service-name>.search.windows.net. Se si raggiunge lo stesso endpoint usando un nome DNS diverso nell'intestazione host, ad esempio un CNAME, la richiesta viene rifiutata.

  • Le richieste dal client a un servizio di ricerca devono essere autenticate. Per accedere alle operazioni di ricerca, il chiamante deve disporre delle autorizzazioni basate sui ruoli o fornire una chiave API con la richiesta.