Bearbeiten

Webanwendung in mehreren Regionen mit benutzerdefinierter Replikation von Storage-Tabellen

Azure Front Door
Azure App Service
Azure-Funktionen
Azure Table Storage
Azure Cache for Redis

Diese Architektur bietet eine Hochverfügbarkeitslösung für eine Webanwendung, die große Datenmengen verwendet. Es handelt sich um einen flexiblen Ansatz, der eine globale Lösung bereitstellen kann, bei der Anwendungen und Daten verteilt sind, um sie in der Nähe der Benutzer zu halten.

Für die Architektur ist benutzerdefinierte Replikationssoftware erforderlich. Dies kann je nach Anwendungen und Konfiguration schwierig zu erstellen sein.

Hier sehen Sie einige mögliche Konfigurationen:

  • Aktiv/Passiv: Es gibt eine primäre Region, die normalerweise Dienste für alle Benutzer bereitstellt. Es gibt darüber hinaus eine Standbyregion, die aktiv wird, wenn die primäre Region nicht funktioniert. Wenn das primäre System aktiv ist, repliziert ein Replikationsdienst Datenbankänderungen in die Standbyregion.

  • Aktiv/Aktiv: Es gibt eine primäre Region, die normalerweise aktiv ist und Lesedienste für Benutzer in der Nähe sowie Schreibdienste für alle Benutzer bietet. Eine oder mehrere weitere Regionen sind aktiv und stellen schreibgeschützte Dienste für Benutzer in der Nähe zur Verfügung. Schreibvorgänge werden immer an die primäre Region und Lesevorgänge immer an die nächstgelegene aktive Region geleitet.

    Wie bei der Aktiv/Passiv-Konfiguration gibt es eine Standbyregion, die aktiv wird, wenn die primäre Region nicht funktioniert. Wenn das primäre System aktiv ist, repliziert ein Replikationsdienst Datenbankänderungen in die schreibgeschützten Regionen und die Standbyregion. Wenn die Standbyregion aktiv ist, repliziert der Replikationsdienst Datenbankänderungen in die schreibgeschützten Regionen.

    Ein Nachteil dieses Ansatzes ist die hohe Latenz bei Schreibvorgängen.

  • Multiaktiv: Es gibt mehrere aktive Regionen, die jeweils den vollständigen Dienst für Benutzer bereitstellen können. Benutzeraktivitäten werden immer an die nächstgelegene aktive Region geleitet.

    Die Implementierung der multiaktiven Konfiguration ist ziemlich schwierig und erfordert möglicherweise Entwurf und Implementierung durch einen Fachmann.

Da es sich bei der Replikation um eine benutzerdefinierte Implementierung handelt, kann das Konsistenzniveau an jeden Bedarf angepasst werden.

Die möglichen Schwierigkeiten bei der Implementierung der benutzerdefinierten Replikation und die erforderliche Zeit stellen bei dieser Architektur wichtige Überlegungen dar.

Hinweis

Unter bestimmten Umständen sind für Ihre Anwendung möglicherweise mehrere Speicherkonten erforderlich. Weitere Informationen finden Sie unter Überlegungen.

Mögliche Anwendungsfälle

Die Architektur kann für jede Anwendung geeignet sein, die große Datenmengen verwendet, die immer verfügbar sein müssen. Beispiele hierfür sind Apps, die für Folgendes verwendet werden:

  • Nachverfolgen des Ausgaben- und Einkaufsverhaltens von Kunden (Einzelhandel).
  • Wettervorhersage (Landwirtschaft, Umwelt und Medien-/Zeitungsbranche).
  • Anbieten oder Implementieren intelligenter Verkehrssysteme oder Verwenden von intelligenter Technologie zur Verkehrsüberwachung (Automobil- und Transportbranche).
  • Analyse von Fertigungsdaten im Internet der Dinge (IoT).
  • Anzeigen von Daten intelligenter Verbrauchsmesser oder Verwenden intelligenter Technologie zum Überwachen von Verbrauchsdaten (Energiewirtschaft).

Architektur

Architektur eines robusten Systems, das Azure Table Storage verwendet. Es kann über mehrere aktive Regionen verfügen und ein Failover zu einer Standbyregion ausführen.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Der Client authentifiziert sich bei Microsoft Entra ID und erhält Zugriff auf Webanwendungen, die in Azure App Service gehostet werden.
  2. Mithilfe von Azure Front Door, einer Firewall und einem Layer-7-Lastenausgleich wird der Benutzerdatenverkehr bei einem regionalen Ausfall auf eine andere Azure-Region umgeschaltet.
  3. Azure App Service hostet Websites und Web-APIs mit REST-Unterstützung. AJAX-Anwendungen, die die APIs nutzen, werden in Browserclients ausgeführt.
  4. Funktions-Apps zur Verarbeitung von Hintergrundaufgaben werden von Web-APIs delegiert. Die Aufgaben sind in Azure Queue Storage Warteschlangen eingereiht.
  5. Die von Azure Functions gehosteten Funktions-Apps führen die Hintergrundaufgaben aus, die durch die Nachrichten in der Warteschlange ausgelöst werden.
  6. Die benutzerdefinierte Replikationssoftware stellt sicher, dass Tabellen unter den Regionen identisch bleiben.
  7. Tabellendaten für die Funktions-Apps sind in Azure Cache for Redis zwischengespeichert. Dadurch wird die Datenbankaktivität ausgelagert und eine schnellere Verarbeitung in den Funktions-Apps und Web-Apps erreicht.
  8. Azure Table Storage enthält die von den Webanwendungen verwendeten Daten.

Komponenten

  • Microsoft Entra ID ist ein mehrmandantenfähiger Identitäts- und Zugriffsverwaltungsdienst, der mit einem lokalen Verzeichnis synchronisiert werden kann. Azure DNS ist ein Hochverfügbarkeits-Hostingdienst für DNS-Domänen, der für Apps schnelle DNS-Abfragen und schnelle Updates von DNS-Einträgen bereitstellt. Die Verwaltung von Azure DNS ähnelt der Verwaltung anderer Azure-Dienste und verwendet die gleichen Anmeldeinformationen, APIs, Tools und Abrechnungsverfahren.
  • Azure Front Door ist ein sicheres Content Delivery Network (CDN) und ein Lastenausgleich mit sofortigem Failover. Es wird am Edge nahe an den Benutzern betrieben und beschleunigt die Inhaltsbereitstellung, während Apps, APIs und Websites vor Cyberbedrohungen geschützt werden.
  • Azure App Service ist ein vollständig verwalteter Dienst zum Erstellen, Bereitstellen und Skalieren von Web-Apps. Sie können Apps mit .NET, .NET Core, Node.js, Java, Python oder PHP erstellen. Die Apps können in Containern oder unter Windows oder Linux ausgeführt werden. Bei einer Mainframemigration können die Front-End-Bildschirme oder Weboberflächen als HTTP-basierte REST-APIs programmiert werden. Sie können getrennt werden und zustandslos sein, um ein auf Microservices basierendes System zu orchestrieren. Weitere Informationen zu Web-APIs finden Sie unter RESTful-Web-API-Design.
  • Azure Functions stellt eine Umgebung zum Ausführen kleiner Codeteile bereit, die als Funktionen bezeichnet werden, ohne dass eine Anwendungsinfrastruktur eingerichtet werden muss. Sie können damit Massendaten verarbeiten, Systeme integrieren, mit IoT arbeiten und einfache APIs und Microservices erstellen. Mit Microservices können Sie Server erstellen, die eine Verbindung mit Azure-Diensten herstellen und immer auf dem neuesten Stand sind.
  • Bei Azure Storage handelt es sich um eine Reihe hochgradig skalierbarer und sicherer Clouddienste für Daten, Apps und Workloads. Dazu gehören Azure Files, Azure Table Storage und Azure Queue Storage. Azure Files ist häufig ein effektives Tool für die Migration von Mainframeworkloads.
  • Azure Queue Storage stellt einfache, kostengünstige und stabile Nachrichtenwarteschlangen für große Workloads zur Verfügung.
  • Azure Table Storage ist ein NoSQL-Schlüssel-Wert-Speicher für die schnelle Entwicklung, der sehr umfangreiche halbstrukturierte Datasets verwendet. Die Tabellen sind schemalos und passen sich an geänderte Anforderungen an. Der Zugriff ist für viele Arten von Anwendungen schnell und kostengünstig und in der Regel preiswerter als andere Arten von schlüsselbasiertem Speicher.
  • Azure Cache for Redis ist ein vollständig verwalteter In-Memory-Cachedienst und Nachrichtenbroker für die gemeinsame Nutzung von Daten und Zuständen durch Computeressourcen. Er umfasst sowohl die Open-Source-Lösung Redis als auch ein kommerzielles Produkt von Redis Labs als verwaltete Dienste. Sie können die Leistung von Anwendungen zur Onlinetransaktionsverarbeitung mit hohem Durchsatz verbessern, indem Sie sie so gestalten, dass sie skalierbar sind und einen In-Memory-Datenspeicher wie Azure Cache for Redis nutzen.

Alternativen

  • Azure Traffic Manager leitet auf der Grundlage der von Ihnen gewählten Routingmethoden für Datenverkehr eingehende DNS-Anforderungen über die globalen Azure-Regionen hinweg weiter. Er bietet darüber hinaus automatisches Failover und Leistungsrouting.
  • Azure Content Delivery Network (CDN) speichert statische Inhalte auf Edgeservern zwischen, um eine schnelle Reaktion zu ermöglichen, und verwendet Netzwerkoptimierungen, um die Reaktion für dynamische Inhalte zu verbessern. CDN ist besonders bei einer globalen Benutzerbasis nützlich.
  • Azure Kubernetes Service (AKS) ist ein vollständig verwalteter Kubernetes-Dienst für die Bereitstellung und Verwaltung von containerisierten Anwendungen. Damit können Sie eine Microservicearchitektur implementieren, deren Komponenten bei Bedarf unabhängig voneinander skaliert werden.
  • Azure Container Instances bietet eine schnelle und einfache Möglichkeit zum Ausführen von Aufgaben, ohne die Infrastruktur verwalten zu müssen. Dies ist nützlich während der Entwicklung oder beim Ausführen ungeplanter Aufgaben.
  • Azure Service Bus ist ein zuverlässiger Cloudmessagingdienst für einfache Hybridintegrationen. Er kann in dieser Architektur anstelle von Queue Storage verwendet werden. Weitere Informationen finden sie unter Storage-Warteschlangen und Service Bus-Warteschlangen – Vergleich und Gegenüberstellung.

Überlegungen

  • Für die Architektur ist benutzerdefinierte Replikationssoftware erforderlich. Dies kann je nach Anwendung und Konfiguration schwierig zu erstellen sein. Die möglichen Schwierigkeiten bei der Implementierung der benutzerdefinierten Replikation und die erforderliche Zeit stellen bei dieser Architektur wichtige Überlegungen dar.

  • Da die Replikation benutzerdefiniert entworfen wird, haben Entwickler große Flexibilität bei der Implementierung einer Datenkonsistenzstrategie.

  • Es bestehen Leistungsgrenzen für Table Storage, die durch Hinzufügen von Speicherkonten überwunden werden können. Die folgenden Umstände erfordern möglicherweise weitere Konten:

    • Implementieren von Mehrinstanzenfähigkeit zum Unterstützen mehrerer Kunden
    • Unterstützen von Kunden mit höheren Transaktionsraten
    • Unterstützen von Kunden mit großen Datasets
    • Beschleunigen des Datenzugriffs durch Verteilen von Daten auf mehrere Speicherkonten
    • Aufteilen von Daten in heiße, kalte und Archivebenen
    • Erstellen von Kopien von Daten zu Sicherungs- und Berichterstellungszwecken

    Weitere Informationen finden Sie unter Skalierbarkeits- und Leistungsziele für Table Storage.

  • Wenn Ihre Anwendung bereits Daten enthält, müssen Sie Routinen schreiben, um alte Daten in Speicherkonten zu kopieren. Achten Sie darauf, Zeitstempel- und Kopierflags zu verwenden, um den Fortschritt der Datenmigration nachzuverfolgen.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

  • Nabil Siddiqui | Cloud Solution Architect – Digitale und Anwendungsinnovationen

Nächste Schritte