Zuverlässigkeit in Azure KI Search

In Azure bedeutet Zuverlässigkeit Resilienz und Verfügbarkeit, wenn ein Dienstausfall oder eine Verschlechterung vorhanden ist. In Azure KI Search kann Zuverlässigkeit innerhalb eines einzelnen Diensts oder über mehrere Suchdienste in separaten Regionen erreicht werden.

  • Stellen Sie einen einzelnen Suchdienst bereit und skalieren Sie für hohe Verfügbarkeit. Sie können mehrere Replikate hinzufügen, um höhere Indizierungs- und Abfrageworkloads zu verarbeiten. Wenn Ihr Suchdienst Verfügbarkeitszonenunterstützt, werden Replikate automatisch in verschiedenen physischen Rechenzentren für zusätzliche Resilienz bereitgestellt.

  • Stellen Sie mehrere Suchdienste in verschiedenen geografischen Regionen bereit. Alle Suchworkloads sind vollständig in einem einzigen Dienst enthalten, der in einer einzelnen geografischen Region ausgeführt wird, aber in einem Szenario mit mehreren Diensten haben Sie Optionen zum Synchronisieren von Inhalten, sodass sie für alle Dienste gleich sind. Sie können auch eine Lastenausgleichslösung einrichten, um Anforderungen neu zu verteilen oder fehlschlagen zu lassen, wenn ein Dienstausfall auftritt.

Planen Sie für Geschäftskontinuität und zur Wiederherstellung aus Notfällen auf regionaler Ebene eine regionsübergreifende Topologie, die aus mehreren Suchdiensten besteht, die über identische Konfiguration und Inhalte verfügen. Ihr benutzerdefiniertes Skript oder Code stellt den „Ausfall“-Mechanismus für einen alternativen Suchdienst bereit, wenn ein Suchdienst plötzlich nicht mehr verfügbar ist.

Hochverfügbarkeit

In Azure KI Search handelt es sich bei Replikaten um Kopien Ihres Index. Ein Suchdienst wird mit mindestens einem Replikat in Auftrag gegeben und kann bis zu 12 Replikate enthalten. Das Hinzufügen von Replikatenermöglicht es Azure KI Search, Computerneustarts und Wartungsaktivitäten für ein Replikat durchzuführen, während gleichzeitig in den anderen Replikaten weiterhin Abfragen ausgeführt werden.

Für jeden einzelnen Suchdienst garantiert Microsoft eine Verfügbarkeit von mindestens 99,9 Prozent, sofern die Konfigurationen die folgenden Kriterien erfüllen:

  • Zwei Replikate für Hochverfügbarkeit von schreibgeschützten Workloads (Abfragen)

  • Drei oder mehr Replikate für Hochverfügbarkeit von Lese-/Schreibworkloads (Abfragen und Indizierung)

Das System verfügt über interne Mechanismen zur Überwachung der Replikatintegrität und Partitionsintegrität. Wenn Sie eine bestimmte Kombination aus Replikaten und Partitionen bereitstellen, stellt das System sicher, dass die Kapazitätsauslastung für Ihren Dienst erreicht wird.

Für den Free-Tarif wird keine SLA bereitgestellt. Weitere Informationen finden Sie unter SLA für Azure KI Search.

Unterstützung für Verfügbarkeitszonen

Verfügbarkeitszonen sind eine Funktion der Azure-Plattform und dienen dazu, die Rechenzentren einer Region in verschiedene physische Standortgruppen zu unterteilen, um Hochverfügbarkeit innerhalb der Region zu gewährleisten. In Azure KI Search sind einzelne Replikate die Einheiten für die Zonenzuweisung. Ein Suchdienst wird innerhalb einer Region ausgeführt; Ihre Replikate werden in verschiedenen physischen Rechenzentren (oder Zonen) innerhalb dieser Region ausgeführt.

Verfügbarkeitszonen werden verwendet, wenn Sie Ihrem Suchdienst zwei oder mehr Replikate hinzufügen. Jedes Replikat wird in einer anderen Verfügbarkeitszone innerhalb der Region platziert. Wenn Sie mehr Replikate als verfügbare Zonen in der Suchdienstregion haben, werden die Replikate so gleichmäßig wie möglich verteilt. Es gibt keine spezifische Aktion Ihrerseits, abgesehen vom Erstellen eines Suchdiensts in einer Region mit Verfügbarkeitszonen und dem anschließenden Konfigurieren des Diensts für die Verwendung mehrerer Replikate.

Voraussetzungen

  • Die Dienstebene muss "Standard" oder höher sein.
  • Die Dienstregion muss sich in einer Region befinden, die über verfügbare Zonen verfügt (im folgenden Abschnitt aufgeführt).
  • Die Konfiguration muss mehrere Replikate enthalten: zwei für schreibgeschützte Abfrageworkloads, drei für Lese-/Schreib-Workloads, die Indizierung enthalten.

Unterstützte Regionen

Die Unterstützung für Verfügbarkeitszonen hängt von Infrastruktur und Speicher ab. Derzeit verfügen zwei Zonen, die im Oktober 2023 angekündigt wurden, über unzureichenden Speicher und stellen keine Verfügbarkeitszone für Azure AI Search bereit:

  • Israel, Mitte
  • Italien, Norden

Andernfalls werden Verfügbarkeitszonen für Azure AI Search in den folgenden Regionen unterstützt:

Region Rollout
Australien (Osten) 30. Januar 2021 oder später
Brasilien Süd 2. Mai 2021 oder später
Kanada, Mitte 30. Januar 2021 oder später
Indien, Mitte 20. Januar 2022 oder später
USA (Mitte) 4. Dezember 2020 oder später
China, Norden 3 7. September 2022 oder später
Asien, Osten 13. Januar 2022 oder später
USA, Osten 27. Januar 2021 oder später
USA (Ost) 2 30. Januar 2021 oder später
Frankreich, Mitte 23. Oktober 2020 oder später
Deutschland, Westen-Mitte 3. Mai 2021 oder später
Japan, Osten 30. Januar 2021 oder später
Korea, Mitte 20. Januar 2022 oder später
Nordeuropa 28. Januar 2021 oder später
Norwegen, Osten 20. Januar 2022 oder später
Katar, Mitte 25. August 2022 oder später
Südafrika, Norden 7. September 2022 oder später
USA Süd Mitte 30. April 2021 oder später
Südostasien 31. Januar 2021 oder später
Schweden, Mitte 21. Januar 2022 oder später
Schweiz, Norden 7. September 2022 oder später
Vereinigte Arabische Emirate, Norden 9. September 2022 oder später
UK, Süden 30. Januar 2021 oder später
US Government, Virginia 30. April 2021 oder später
Europa, Westen 29. Januar 2021 oder später
USA, Westen 2 30. Januar 2021 oder später
USA, Westen 3 02. Juni 2021 oder höher

Hinweis

Verfügbarkeitszonen ändern die Vereinbarung zum Servicelevel (SLA) für Azure KI Search nicht. Sie benötigen für Hochverfügbarkeit weiterhin mindestens drei Replikate.

Mehrere Dienste in separaten geografischen Regionen

Dienstredundanz ist erforderlich, wenn Ihre betrieblichen Anforderungen folgendes umfassen:

  • Business Continuity & Disaster Recovery (BCDR) Anforderungen : (Azure KI Search bietet bei einem Ausfall kein sofortiges Failover.)

  • Schnelle Leistung für eine global verteilte Anwendung. Bei Abfrage- und Indizierungsanforderungen aus aller Welt werden die Benutzer, die dem Hostrechenzentrum am nächsten sind, schnellere Leistung erleben. Durch Erstellen weiterer Dienste in Regionen, die sich in der Nähe dieser Benutzer befinden, kann dafür gesorgt werden, dass die Leistung für alle Benutzer gleich ist.

Wenn Sie zwei oder mehr Suchdienste benötigen, können Sie sie in verschiedenen Regionen erstellen, um die Anwendungsanforderungen hinsichtlich Kontinuität und Wiederherstellung zu erfüllen und schnellere Antwortzeiten für eine globale Benutzerbasis zu erzielen.

Azure KI Search bietet keine automatisierte Methode zur regionsübergreifenden Georeplikation von Suchindizes. Es gibt allerdings einige Verfahren, mit denen sich ein solcher Prozess einfach implementieren und verwalten lässt. Diese werden in den nächsten Abschnitten beschrieben.

Ziel der Einrichtung geografisch verteilter Suchdienste ist es, über mindestens zwei Indizes in mindestens zwei Regionen zu verfügen, sodass Benutzer zum Azure KI Search-Dienst mit der geringsten Wartezeit weitergeleitet werden:

Cross-tab of services by region

Sie können diese Architektur implementieren, indem Sie mehrere Dienste erstellen und eine Strategie für die Datensynchronisierung entwerfen. Optional können Sie eine Ressource wie Azure Traffic Manager für Routinganforderungen einschließen.

Tipp

Hilfe bei der Bereitstellung mehrerer Suchdienste in mehreren Regionen finden Sie in diesem Bicep-Beispiel auf GitHub, das eine vollständig konfigurierte, multiregionale Suchlösung bereitstellt. Das Beispiel bietet ihnen zwei Optionen für die Indexsynchronisierung und die Anforderungsumleitung mithilfe von Traffic Manager.

Synchronisieren von Daten zwischen mehreren Diensten

Es gibt zwei Optionen, um zwei oder mehr unterschiedliche Suchdienste synchron zu halten:

Um eine der Optionen zu konfigurieren, empfehlen wir die Verwendung des Bicep-Beispielskripts im „azure-search-multiple-region“-Repository, angepasst für Ihre Regionen und Indizierungsstrategien.

Option 1: Aktualisieren von Inhalten in mehreren Diensten mithilfe von Indexern

Wenn Sie bereits einen Indexer für einen Dienst verwenden, können Sie einen zweiten Indexer für einen zweiten Dienst so konfigurieren, dass er dasselbe Datenquellenobjekt verwendet und somit Daten vom selben Standort abruft. Jeder Dienst in jeder Region hat einen eigenen Indexer und einen Zielindex (der Suchindex wird nicht gemeinsam verwendet, sodass jeder Index seine eigene Kopie der Daten hat), aber jeder Indexer verweist auf die gleiche Datenquelle.

Diese Architektur würde ganz allgemein in etwa wie folgt aussehen.

Single data source with distributed indexer and service combinations

Option 2: Pushen von Inhaltsaktualisierungen in mehreren Diensten mithilfe von REST-APIs

Wenn Sie die Azure KI Search-REST-API zum Pushen von Inhalten an Ihren Suchindex verwenden, können Sie die verschiedenen Suchdienste synchronisieren, indem Sie Änderungen bei jeder Aktualisierung an alle Suchdienste pushen. Stellen Sie sicher, dass Ihr Code auch mit Fällen zurecht kommt, in denen die Aktualisierung eines einzelnen Suchdiensts nicht erfolgreich ist, andere Suchdienste aber erfolgreich aktualisiert werden.

Failover- oder Abfrageumleitungsanforderungen

Wenn Sie Redundanz auf Anforderungsebene benötigen, bietet Azure mehrere Optionen für den Lastenausgleich:

  • Azure Traffic Manager wird verwendet, um Anforderungen an mehrere Websites an verschiedenen geografischen Standorten weiterzuleiten, die dann von mehreren Diensten unterstützt werden.
  • Application Gateway wird verwendet, um Lastenausgleich zwischen den Servern in einer Region auf Anwendungsebene vorzunehmen.
  • Azure Front Door, das zum Optimieren des globalen Routings von Webdatenverkehr und zur Bereitstellung eines globalen Failovers verwendet wird.

Einige Punkte, die beim Auswerten von Lastenausgleichsoptionen beachtet werden sollten:

  • Die Suche ist ein Back-End-Dienst, der Abfrage- und Indizierungsanforderungen von einem Client akzeptiert.

  • Anforderungen vom Client an einen Suchdienst müssen authentifiziert werden. Für den Zugriff auf Suchvorgänge muss der Aufrufer über rollenbasierte Berechtigungen verfügen oder einen API-Schlüssel für die Anforderung bereitstellen.

  • Dienst-Endpunkte werden standardmäßig über eine öffentliche Internetverbindung erreicht. Wenn Sie einen privaten Endpunkt für Clientverbindungen einrichten, die aus einem virtuellen Netzwerk stammen, verwenden Sie Application Gateway.

  • Azure KI Search akzeptiert Anforderungen, die an den <your-search-service-name>.search.windows.net Endpunkt adressiert sind. Wenn Sie denselben Endpunkt erreichen, indem Sie einen anderen DNS-Namen im Hostheader verwenden, z. B. einen CNAME, wird die Anforderung abgelehnt.

Azure KI Search bietet ein Beispiel für eine Bereitstellung mit mehreren Regionen, das Azure Traffic Manager für die Anforderungsumleitung verwendet, wenn der primäre Endpunkt fehlschlägt. Diese Lösung ist nützlich, wenn Sie an einen suchfähigen Client weiterleiten, der nur einen Suchdienst in derselben Region aufruft.

Azure Traffic Manager wird hauptsächlich für das Routing von Netzwerkdatenverkehr über verschiedene Endpunkte basierend auf bestimmten Routingmethoden (z. B. Priorität, Leistung oder geografischer Standort) verwendet. Er fungiert auf DNS-Ebene, um eingehende Anforderungen an den entsprechenden Endpunkt zu leiten. Wenn ein Endpunkt, der von Traffic Manager gewartet wird, mit der Ablehnung von Anforderungen beginnt, wird der Datenverkehr an einen anderen Endpunkt weitergeleitet.

Der Traffic Manager stellt keinen Endpunkt für eine direkte Verbindung mit Azure KI Search bereit, was bedeutet, dass Sie einen Suchdienst nicht direkt hinter Traffic Manager setzen können. Stattdessen wird davon ausgegangen, dass Anforderungen an Traffic Manager, dann an einen suchfähigen Webclient und schließlich an einen Suchdienst im Back-End fließen. Der Client und der Dienst befinden sich in derselben Region. Wenn ein Suchdienst ausfällt, fängt der Suchclient an, auszusetzen, und der Traffic Manager leitet zum verbleibenden Client um.

Search apps connecting through Azure Traffic Manager

Informationen zur Datenresidenz in einer Bereitstellung mit mehreren Regionen

Wenn Sie mehrere Suchdienste in verschiedenen geografischen Regionen bereitstellen, werden Ihre Inhalte in der Region gespeichert, die Sie für jeden Suchdienst ausgewählt haben.

Azure KI Search speichert ohne Ihre Zustimmung keine Daten außerhalb der von Ihnen angegebenen Region. Die Autorisierung ist implizit, wenn Sie Features verwenden, welche die folgenden Daten in eine Azure Storage-Ressource schreiben: Anreicherungscache, Debugsitzung, Wissensspeicher. In allen Fällen ist das Speicherkonto eines, das Sie in der Region Ihrer Wahl angeben.

Hinweis

Wenn sich sowohl das Speicherkonto als auch der Suchdienst in derselben Region befinden, werden für den Netzwerkdatenverkehr zwischen Suchdienst und Speicher eine private IP-Adresse und das Microsoft-Backbonenetzwerk verwendet. Da private IP-Adressen verwendet werden, können Sie für Netzwerksicherheit weder IP-Firewalls noch einen privaten Endpunkt konfigurieren. Verwenden Sie stattdessen als Alternative die Ausnahme für vertrauenswürdige Dienste, wenn sich beide Dienste in der gleichen Region befinden.

Über Dienstausfälle und katastrophale Ereignisse

Wie in der Vereinbarung zum Servicelevel (SLA) aufgeführt, garantiert Microsoft eine hohe Verfügbarkeit für Indexabfrageanforderungen, wenn eine Azure KI Search-Dienstinstanz mit zwei oder mehr Replikaten konfiguriert ist, und für Indexaktualisierungsanforderungen, wenn eine Azure KI Search-Dienstinstanz mit drei oder mehr Replikaten konfiguriert ist. Es steht jedoch kein integrierter Mechanismus für die Notfallwiederherstellung bereit. Sollte ein unterbrechungsfreier Dienst im Falle schwerwiegender Fehler, die nicht der Kontrolle von Microsoft unterliegen, benötigt werden, empfehlen wir, dass Sie einen zweiten Dienst in einer anderen Region bereitstellen und eine Georeplikationsstrategie implementieren, um sicherzustellen, dass Indizes für alle Dienste vollständig redundant sind.

Kunden, die Indexer zum Auffüllen und Aktualisieren von Indizes verwenden, können die Notfallwiederherstellung über geospezifische Indizes ausführen, welche die gleiche Datenquelle verwenden. Zwei Dienste in unterschiedlichen Regionen, die jeweils einen Indexer ausführen, könnten die gleiche Datenquelle indizieren, um Georedundanz zu erzielen. Wenn Sie Daten aus Datenquellen indizieren, die auch georedundant sind, denken Sie daran, dass Azure KI Search-Indexer eine inkrementelle Indizierung (Zusammenführen von Updates neuer, geänderter oder gelöschter Dokumente) nur aus primären Replikaten ausführen können. Achten Sie im Falle eines Failoverereignisses darauf, den Indexer erneut auf das neue primäre Replikat umzulenken.

Wenn Sie keine Indexer verwenden, können Sie Ihren Anwendungscode verwenden, um Objekte und Daten gleichzeitig per Push an verschiedene Dienste zu übermitteln. Weitere Informationen finden Sie unter Gewährleisten der Synchronisierung von Daten über mehrere Dienste hinweg.

Alternativen für Sicherung und Wiederherstellung

Eine Geschäftskontinuitätsstrategie für die Datenschicht umfasst in der Regel einen Schritt zur Wiederherstellung aus einer Sicherungskopie. Da Azure KI Search keine primäre Datenspeicherlösung ist, wird von Microsoft kein formales Verfahren für Self-Service-Sicherung und -Wiederherstellung bereitgestellt. Sie können jedoch den index-backup-restore-Beispielcode in diesem Azure KI Search .NET-Beispielrepository verwenden, um Ihre Indexdefinition und die Schattenkopie in einer Reihe von JSON-Dateien zu sichern, und diese Dateien dann bei Bedarf zu verwenden, um den Index wiederherzustellen. Mit diesem Tool können Sie auch Indizes zwischen Dienstebenen verschieben.

Andernfalls ist Ihr Anwendungscode, der zum Erstellen und Auffüllung eines Index verwendet wird, de facto die Wiederherstellungsoption, wenn Sie aus Versehen einen Index löschen. Um einen Index neu zu erstellen, würden Sie ihn (sofern vorhanden) löschen, den Index im Dienst wiederherstellen und ihn erneut laden, indem Sie Daten aus Ihrem primären Datenspeicher abrufen.

Nächste Schritte