Bearbeiten

Minimaler Speicherplatz: Änderungsfeed zum Replizieren von Daten

Azure Front Door
Azure App Service
Azure-Funktionen
Azure Cosmos DB
Azure Table Storage

In diesem Artikel wird eine Hochverfügbarkeitslösung für eine Webanwendung vorgestellt, die große Datenmengen verwendet, die über einen bestimmten Zeitraum hinweg verfügbar sein müssen. Sie speichert die Daten in Azure Cosmos DB und verwendet den Azure Cosmos DB-Änderungsfeed, um die Daten in sekundären Speicher zu replizieren. Nach Ablauf des angegebenen Zeitraums wird Azure Functions verwendet, um die Daten aus Azure Cosmos DB zu löschen.

Architektur

Architektur eines robusten Systems, das zur Kostensenkung zwei Arten von Speicher verwendet.

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 die Standbyregion 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. Web-APIs delegieren die Verantwortung für die Erledigung von Hintergrundaufgaben an Code, der von Funktionen gehostet wird. Die Aufgaben sind in Azure Queue Storage Warteschlangen eingereiht.
  5. Die Nachrichten in der Warteschlange lösen die Funktionen aus, die die Hintergrundaufgaben ausführen.
  6. Datenbankdaten für die Funktionen sind in Azure Cache for Redis zwischengespeichert. Durch die Verwendung des Caches wird die Datenbankaktivität von der Lösung ausgelagert und die Funktions-Apps und Web-Apps werden beschleunigt.
  7. Azure Cosmos DB enthält kürzlich generierte Daten.
  8. Azure Cosmos DB gibt einen Änderungsfeed aus, der zum Replizieren von Änderungen verwendet werden kann.
  9. Eine Funktions-App liest den Änderungsfeed und repliziert die Änderungen in Table Storage-Tabellen. Eine andere Funktions-App entfernt in regelmäßigen Abständen abgelaufene Daten aus Azure Cosmos DB.
  10. Table Storage bietet kostengünstigen Speicher.

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-Geräten 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.
  • Azure Cosmos DB ist eine global verteilte Datenbank von Microsoft mit mehreren Modellen. Hiermit können Ihre Lösungen den Durchsatz und die Speicherung für eine beliebige Zahl von geografischen Regionen elastisch und unabhängig skalieren. Azure Cosmos DB bietet Ihnen mit umfassenden Vereinbarungen zum Servicelevel (Service Level Agreements, SLAs) Durchsatz-, Wartezeit-, Verfügbarkeits- und Konsistenzgarantien.

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 Edge-Servern zwischen, um eine schnelle Reaktion zu ermöglichen, und verwendet Netzwerkoptimierungen, um die Reaktion für dynamische Inhalte zu verbessern. Content Delivery Network 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.

Szenariodetails

Diese Lösung verwendet Azure Cosmos DB, um die große Datenmenge zu speichern, die von der Webanwendung verwendet wird. Web-Apps, die große Datenmengen verarbeiten, profitieren von der Fähigkeit von Azure Cosmos DB, den Durchsatz und die Speicherung elastisch und unabhängig zu skalieren.

Eine weitere wichtige Lösungskomponente ist der Azure Cosmos DB-Änderungsfeed. Wenn Änderungen an der Datenbank vorgenommen werden, wird der Änderungsfeed-Stream an einen ereignisgesteuerten Functions-Auslöser gesendet. Eine Funktion wird dann ausgeführt und repliziert die Änderungen zu Table Storage-Tabellen, die eine kostengünstige Speicherlösung bieten.

Die Web-App benötigt die Daten nur für einen begrenzten Zeitraum. Die Lösung nutzt diese Tatsache, um die Kosten weiter zu senken. Insbesondere wird eine andere Funktion in regelmäßigen Abständen ausgeführt und löscht abgelaufene Daten aus Azure Cosmos DB. Funktionen können nicht nur ausgelöst, sondern auch so geplant werden, dass sie zu bestimmten Zeiten ausgeführt werden.

Mögliche Anwendungsfälle

Die Architektur eignet sich für jede Anwendung, die:

  • eine große Menge an Daten verwendet.
  • erfordert, dass Daten immer verfügbar sind, wenn sie benötigt werden.
  • Daten verwendet, die ablaufen.

Beispiele hierfür sind Apps, die für Folgendes verwendet werden:

  • Nachverfolgen des Ausgaben- und Einkaufsverhaltens von Kunden.
  • Wettervorhersage.
  • Anbieten oder Implementieren intelligenter Verkehrssysteme oder Verwenden von intelligenter Technologie zur Verkehrsüberwachung.
  • IoT-Produktionsdaten analysiert.
  • Anzeigen von Daten intelligenter Verbrauchsmesser oder Verwenden intelligenter Technologie zum Überwachen von Verbrauchsdaten.

Überlegungen

Diese Überlegungen beruhen auf den Säulen des Azure Well-Architected Frameworks, d. h. einer Reihe von Grundsätzen, mit denen die Qualität von Workloads verbessert werden kann. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

  • Wenn Sie diese Lösung implementieren und verwalten, fallen zusätzliche Kosten an.
  • Die Verwendung des Änderungsfeeds für die Replikation erfordert weniger Codewartung als die Replikation in der Kernanwendung.
  • Sie müssen vorhandene Daten migrieren. Der Migrationsprozess erfordert Ad-hoc-Skripte oder -Routinen, um alte Daten in Speicherkonten zu kopieren. Stellen Sie beim Migrieren der Daten sicher, dass Sie Zeitstempel und Kopierflags verwenden, um den Migrationsfortschritt nachzuverfolgen.
  • Um das Löschen von Einträgen aus dem sekundären Azure-Tabellenspeicher zu vermeiden, ignorieren Sie Löschfeeds, die generiert werden, wenn Ihre Funktionen Einträge aus Azure Cosmos DB löschen.

Beitragende

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

Hauptautor:

  • Nabil Siddiqui | Cloud Solution Architect – Digitale und Anwendungsinnovationen

Nächste Schritte