Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ricerca di intelligenza artificiale di Azure è un'infrastruttura di ricerca scalabile che indicizza contenuti eterogenei e consente il recupero tramite API, applicazioni e agenti di intelligenza artificiale. È adatto agli scenari di ricerca aziendali e alle esperienze dei clienti basate sull'intelligenza artificiale che richiedono la generazione dinamica di contenuti tramite modelli di completamento della chat. Come servizio di Azure, Ricerca intelligenza artificiale offre una gamma di funzionalità per supportare i requisiti di affidabilità.
Quando si usa Azure, l'affidabilità è una responsabilità condivisa. Microsoft offre una gamma di funzionalità per supportare la resilienza e il ripristino. L'utente è responsabile della comprensione del funzionamento di tali funzionalità all'interno di tutti i servizi usati e della selezione delle funzionalità necessarie per soddisfare gli obiettivi aziendali e gli obiettivi di tempo di attività.
Questo articolo descrive come rendere la ricerca di intelligenza artificiale di Azure resiliente a un'ampia gamma di potenziali interruzioni e problemi, tra cui errori temporanei, interruzioni della zona di disponibilità, interruzioni dell'area e manutenzione del servizio. Descrive anche come usare i backup per eseguire il ripristino da altri tipi di problemi ed evidenzia alcune informazioni chiave sul contratto di servizio di Ricerca di intelligenza artificiale di Azure.
Raccomandazioni per la distribuzione di produzione per l'affidabilità
Per i carichi di lavoro di produzione, è consigliabile:
- Usare un tier fatturabile con almeno due repliche. Questa configurazione rende il servizio di ricerca più resiliente agli errori temporanei e alle operazioni di manutenzione. Soddisfa anche il contratto di servizio (SLA) per la ricerca di intelligenza artificiale. Il contratto di servizio richiede due repliche per carichi di lavoro di sola lettura e tre o più repliche per carichi di lavoro di lettura/scrittura.
- Non usare il livello gratuito per l'uso in produzione. Ricerca IA non fornisce un contratto di servizio per il piano gratuito, che è limitato a una replica.
Panoramica dell'architettura di affidabilità
Quando si usa Ricerca di intelligenza artificiale, si crea un servizio di ricerca. Ogni servizio di ricerca supporta molti indici di ricerca che archiviano il contenuto ricercabile.
La ricerca di intelligenza artificiale non è progettata come archivio dati primario. Usare invece gli indicizzatori per connettere il servizio di ricerca a origini dati esterne. Un indicizzatore effettua una ricerca per indicizzazione tra i dati di origine, richiama competenze che eseguono l'elaborazione e l'arricchimento, popolando l'indice con gli output delle competenze.
È anche possibile configurare il numero di repliche per il servizio. In AI Search una replica è una copia del motore di ricerca del servizio. È possibile pensare a una replica come a una rappresentazione di una singola macchina virtuale (VM). Ogni servizio di ricerca può includere da 1 a 12 repliche.
L'aggiunta di più repliche consente ad AI Search di:
Aumentare la disponibilità del servizio di ricerca.
Eseguire la manutenzione di una replica mentre le query continuano a essere eseguite in altre repliche.
Gestire carichi di lavoro di indicizzazione e query più elevati.
Migliorare la resilienza tentando di effettuare il provisioning delle repliche in zone di disponibilità diverse, se l'area le supporta.
Ricerca di intelligenza artificiale assegna automaticamente una replica come replica primaria. Tutte le operazioni di scrittura vengono eseguite su tale replica. Le altre repliche vengono usate per le operazioni di lettura.
Il diagramma seguente mostra come un servizio di ricerca con tre repliche può essere distribuito in tre zone di disponibilità:
È anche possibile configurare il numero di partizioni, che rappresentano l'archiviazione usata dagli indici di ricerca.
È importante comprendere l'impatto dell'aggiunta di repliche e partizioni perché influiscono sulle prestazioni di lettura e scrittura in modi diversi. Per altre informazioni sulle repliche e le partizioni, vedere Stimare e gestire la capacità di un servizio di ricerca.
Resilienza a errori temporanei
Gli errori temporanei sono errori brevi e intermittenti nei componenti. Si verificano spesso in un ambiente distribuito come il cloud e fanno parte delle normali operazioni. Gli errori temporanei si correggono dopo un breve periodo di tempo. È importante che le applicazioni possano gestire gli errori temporanei, in genere ritentando le richieste interessate.
Tutte le applicazioni ospitate nel cloud devono seguire le indicazioni sulla gestione degli errori temporanei di Azure quando comunicano con qualsiasi API, database e altri componenti ospitati nel cloud. Per altre informazioni, vedere Raccomandazioni per la gestione degli errori temporanei.
Gli indicizzatori di ricerca di intelligenza artificiale hanno una gestione degli errori temporanei predefinita. Se un'origine dati è brevemente non disponibile, l'indicizzatore è progettato per il ripristino e il nuovo tentativo. Usa il rilevamento delle modifiche per riprendere l'indicizzazione dall'ultimo documento indicizzato correttamente.
I servizi di ricerca potrebbero riscontrare errori temporanei durante le operazioni di manutenzione standard e non pianificate. Ricerca di intelligenza artificiale di Azure non fornisce notifiche avanzate o consente la pianificazione della manutenzione in momenti specifici. Anche se ogni sforzo è stato fatto per ridurre al minimo i tempi di inattività, anche per i servizi a replica singola, possono verificarsi brevi interruzioni. Per migliorare la resilienza rispetto a questi errori temporanei, è consigliabile usare due o più repliche.
Se si sviluppano applicazioni che interagiscono con AI Search, devono gestire gli errori temporanei. Utilizzare una strategia di ripetizione dei tentativi con backoff esponenziale per le operazioni di lettura e scrittura.
Resilienza ai guasti delle zone di disponibilità
Le zone di disponibilità sono gruppi di data center separati fisicamente all'interno di un'area di Azure. In caso di guasto in una zona, i servizi possono passare a una delle zone restanti.
AI Search è ridondante a livello di zona, quindi le repliche vengono distribuite tra più zone di disponibilità all'interno dell'area del servizio di ricerca.
Quando si aggiungono due o più repliche al servizio, la ricerca di intelligenza artificiale tenta di inserire ogni replica in una zona di disponibilità diversa. Per i servizi con più repliche rispetto alle zone disponibili, le repliche vengono distribuite nel modo più uniforme possibile tra le zone.
Il diagramma seguente mostra come un servizio di ricerca di esempio con quattro repliche può essere distribuito in tre zone di disponibilità:
Importante
La ricerca di intelligenza artificiale non garantisce il posizionamento esatto delle repliche. Il posizionamento è soggetto a vincoli di capacità, operazioni di ridimensionamento e altri fattori.
Requisiti
La ridondanza della zona viene abilitata automaticamente quando il servizio di ricerca soddisfa tutti i criteri seguenti:
Supporto per l'area: Il supporto per le zone di disponibilità dipende dall'infrastruttura e dall'archiviazione. Per un elenco delle aree supportate, vedere Scegliere un'area per la ricerca di intelligenza artificiale.
Livello: Il servizio deve trovarsi nel livello Basic o superiore
Numero di repliche: Il servizio deve avere almeno due repliche
Annotazioni
AI Search tenta di distribuire le repliche tra più zone quando sono presenti due o più repliche. Tuttavia, per i carichi di lavoro di lettura/scrittura, è consigliabile usare tre o più repliche in modo da ottenere un contratto di servizio con la massima disponibilità possibile.
Distribuzione di istanze tra zone
La ricerca di intelligenza artificiale tenta di posizionare le repliche in zone di disponibilità diverse. Tuttavia, si verificano occasionalmente situazioni in cui tutte le repliche di un servizio di ricerca potrebbero essere inserite nella stessa zona di disponibilità. Questa situazione può verificarsi quando le repliche vengono rimosse dal servizio, ad esempio quando si esegue il ridimensionamento configurando il servizio per usare un minor numero di repliche. La rimozione della replica non attiva il ribilanciamento delle repliche rimanenti tra le zone di disponibilità.
Per ridurre la probabilità che tutte le repliche vengano inserite in una singola zona di disponibilità, è possibile attivare manualmente un'operazione di scale-out immediatamente dopo un'operazione di riduzione. Si supponga, ad esempio, che il servizio di ricerca abbia 10 repliche e si voglia ridurre a 7 repliche. Anziché eseguire una singola operazione di scalabilità, è possibile ridimensionare temporaneamente a 6 istanze e quindi ridimensionare immediatamente fino a 7 istanze per attivare il ribilanciamento della zona.
Costo
Ogni servizio di ricerca parte con una replica. La ridondanza della zona richiede due o più repliche, il che aumenta il costo per eseguire il servizio. Per comprendere le implicazioni di fatturazione delle repliche, usare il calcolatore dei prezzi.
Configurare il supporto delle zone di disponibilità
Se il servizio di ricerca soddisfa i requisiti per la ridondanza della zona, non è necessaria alcuna configurazione aggiuntiva. Quando possibile, AI Search tenta di inserire le repliche in zone di disponibilità diverse.
Pianificazione e gestione della capacità
Per prepararsi a un guasto della zona di disponibilità, prendere in considerazione il sovrapprovvigionamento del numero di repliche. L'overprovisioning consente al servizio di ricerca di tollerare una perdita di capacità e continuare a funzionare senza prestazioni ridotte. L'aggiunta di repliche durante un'interruzione è complessa, pertanto l'overprovisioning consente al servizio di ricerca di gestire i volumi di richieste normali, anche con capacità ridotta. Per maggiori informazioni, consultare Gestire la capacità tramite l'overprovisioning.
Comportamento quando tutte le zone sono integre
Questa sezione descrive cosa aspettarsi quando i servizi di ricerca sono configurati per la ridondanza della zona e tutte le zone di disponibilità sono operative.
Instradamento del traffico tra le zone: AI Search esegue il bilanciamento automatico del carico di tutte le query e le operazioni di scrittura su tutte le repliche disponibili. La Ricerca AI può inviare operazioni di lettura a qualsiasi replica anche in qualsiasi zona di disponibilità. Invia operazioni di scrittura a una singola replica primaria selezionata dal servizio di ricerca di intelligenza artificiale.
Replica dei dati tra zone: Le modifiche apportate ai dati vengono replicate automaticamente tra le repliche tra le zone di disponibilità. La replica viene eseguita in modo asincrono, il che significa che le operazioni di scrittura vengono sottoposte a commit in una replica primaria prima che vengano replicate in altre repliche.
Comportamento durante un errore di zona
Questa sezione descrive cosa aspettarsi quando i servizi di ricerca sono configurati per la ridondanza delle zone e si verifica un'interruzione in una zona di disponibilità.
- Rilevamento e risposta: La ricerca di intelligenza artificiale è responsabile del rilevamento di un errore in una zona di disponibilità. Non è necessario eseguire alcuna operazione per avviare un failover di zona.
- Notifica: Microsoft non invia automaticamente una notifica quando una zona è inattiva. È tuttavia possibile usare Integrità risorse di Azure per monitorare l'integrità di una singola risorsa ed è possibile configurare gli avvisi di Integrità risorse per notificare i problemi. È anche possibile usare Integrità dei servizi di Azure per comprendere l'integrità complessiva del servizio, inclusi eventuali errori di zona, ed è possibile configurare gli avvisi di integrità dei servizi per notificare i problemi.
Richieste attive: le richieste che le repliche elaborano nella zona con errore vengono terminate. I client devono ritentare le richieste seguendo le indicazioni per la gestione degli errori temporanei.
Perdita di dati prevista: Se la zona di disponibilità interessata contiene solo repliche in lettura, non è prevista alcuna perdita di dati.
Se la replica primaria viene persa perché si trovava nella zona interessata, significa che le operazioni di scrittura non ancora replicate potrebbero andare perse.
Tempo di inattività previsto: nella maggior parte dei casi, un errore della zona non dovrebbe causare tempo di inattività per il servizio di ricerca nelle operazioni di lettura poiché le repliche in lettura in altre zone di disponibilità continuano a soddisfare le richieste.
Se la replica primaria viene persa perché si trovava nella zona interessata, Ricerca di intelligenza artificiale promuove automaticamente un'altra replica per diventare la nuova replica primaria in modo che le operazioni di scrittura possano riprendere. L'innalzamento di livello della replica richiede in genere alcuni secondi. Durante questo periodo di tempo, le operazioni di scrittura potrebbero non riuscire. Assicurarsi che le applicazioni vengano preparate seguendo le indicazioni sulla gestione degli errori temporanei.
Tuttavia, esistono alcune situazioni improbabili in cui tutte le repliche del servizio di ricerca potrebbero trovarsi in una singola zona di disponibilità. In questo scenario è possibile che si verifichino tempi di inattività fino al ripristino della zona. Per altre informazioni e per comprendere una soluzione alternativa, vedere Distribuzione dell'istanza.
Reindirizzamento del traffico: Quando si verifica un malfunzionamento in una zona, il sistema di ricerca AI rileva il problema e instrada le richieste alle repliche attive nelle zone sopravvissute. Se la replica primaria viene persa, un'altra replica viene alzata di livello come nuova replica primaria.
Ripristino della zona
Quando la zona di disponibilità viene ripristinata, AI Search riavvia automaticamente le normali operazioni e inizia a instradare il traffico verso le repliche disponibili in tutte le zone, inclusa quella ripristinata.
Verifica dei guasti di zona
AI Search gestisce il routing del traffico per i servizi con ridondanza di zona. Non è necessario avviare o convalidare i processi di errore della zona.
Resilienza agli errori a livello di area
Ricerca di intelligenza artificiale è un servizio a singola area. Se l'area non è più disponibile, anche il servizio di ricerca diventa non disponibile.
Soluzioni personalizzate in più aree per la resilienza
Facoltativamente, è possibile distribuire più servizi di ricerca di intelligenza artificiale in aree diverse. L'utente è responsabile della distribuzione e della configurazione di servizi separati in ogni area. Se si crea una distribuzione identica in un'area di Azure secondaria che usa un'architettura in più aree, l'applicazione diventa meno soggetta a un'emergenza a singola area.
Quando si segue questo approccio, è necessario sincronizzare gli indici tra aree per ripristinare l'ultimo stato dell'applicazione. È anche necessario configurare il bilanciamento del carico e i criteri di failover.
Per ottimizzare le prestazioni della soluzione complessiva, cercare le opportunità di eseguire l'indicizzazione in repliche di sola lettura delle origini dati. Ad esempio, alcuni indicizzatori supportano la lettura da repliche di lettura di un'origine dati con distribuzione geografica.
Per altre informazioni, vedere Distribuzioni in più aree in Ricerca di intelligenza artificiale di Azure.
Backup e ripristino
Poiché la Ricerca di Intelligenza Artificiale non è una soluzione primaria per l'archiviazione dei dati, non offre opzioni di backup e ripristino self-service. È tuttavia possibile usare l'esempio index-backup-restore per .NET o Python per eseguire il backup della definizione dell'indice e dei relativi documenti in una serie di file JSON, che vengono quindi usati per ripristinare l'indice.
Tuttavia, se si elimina accidentalmente l'indice e non si dispone di un backup, è possibile ricompilare l'indice. La ricompilazione comporta la ricreazione dell'indice nel servizio di ricerca e quindi il ricaricamento recuperando i dati dall'archivio dati primario.
Contratto di servizio
Il contratto di servizio per i servizi di Azure descrive la disponibilità prevista di ogni servizio e le condizioni che la soluzione deve soddisfare per raggiungere tale aspettativa di disponibilità. Per altre informazioni, vedere Contratti di servizio per Servizi online.
In Ricerca di intelligenza artificiale il contratto di servizio di disponibilità si applica ai servizi di ricerca che:
- Sono configurati per l'uso di un livello fatturabile.
- Avere almeno due repliche per carichi di lavoro di sola lettura (query).
- Avere almeno tre repliche per carichi di lavoro di lettura/scrittura (query e indicizzazione).