In diesem Artikel wird eine Hochverfügbarkeitslösung für eine Webanwendung mit großen Datenmengen vorgestellt, auf die innerhalb eines bestimmten Zeitraums zugegriffen werden muss. Die Lösung umfasst Azure Cosmos DB als primären Datenspeicher und den Azure Cosmos DB-Änderungsfeed zum Replizieren von Daten in einen kostengünstigen sekundären Speicher. Nach Ablauf des angegebenen Zeitraums wird Azure Functions verwendet, um die Daten aus Azure Cosmos DB zu löschen. Die Daten im sekundären Speicher bleiben für einen längeren Zeitraum verfügbar, um andere Lösungen für Überwachungs- und Analysezwecke zu ermöglichen. Die Lösung bietet auch eine hohe Haltbarkeit, indem Daten in verschiedene Datendienste repliziert werden.
Aufbau
Laden Sie eine Visio-Datei dieser Architektur herunter.
Datenfluss
- Der Client authentifiziert sich bei Microsoft Entra ID und erhält Zugriff auf Webanwendungen, die in Azure App Service gehostet werden.
- Mithilfe von Azure Front Door, einer Firewall und einem Layer-7-Lastenausgleich wird der Benutzerdatenverkehr bei einem regionalen Ausfall auf die Standbyregion umgeschaltet.
- Azure App Service hostet Websites und Web-APIs mit REST-Unterstützung. Browserclients führen asynchrone JavaScript- und XML-Anwendungen (AJAX) aus, die die APIs verwenden.
- 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.
- Die Nachrichten in der Warteschlange lösen die Funktionen aus, die die Hintergrundaufgaben ausführen.
- 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.
- Azure Cosmos DB enthält kürzlich generierte Daten.
- Azure Cosmos DB gibt einen Änderungsfeed aus, der zum Replizieren von Änderungen verwendet werden kann.
- 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.
- Table Storage bietet kostengünstigen Speicher.
Komponenten
- Azure Microsoft Entra ID ist ein 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. Es 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 Container Apps ist ein vollständig verwalteter, serverloser Containerdienst zum Erstellen und Bereitstellen moderner Apps im großen Stil.
- 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:
- Personalisieren Sie die Kundenerfahrung, und fördern Sie die Kundenbindung durch Livedatenfeeds und Sensoren an physischen Standorten.
- Nachverfolgen des Ausgaben- und Einkaufsverhaltens von Kunden.
- Verfolgen Sie Fahrzeugflotten, indem Sie Daten zu Fahrzeugstandort, Leistung und Fahrerverhalten für verbesserte Effizienz und Sicherheit sammeln.
- 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-Skripts 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
- Architekturstil „Web-Warteschlange-Worker“
- Entwerfen einer geografisch verteilten Anwendung
- Globales Verteilen Ihrer Daten mit Azure Cosmos DB
- Auswählen einer geeigneten API für Azure Cosmos DB
- Speichern von und Zugreifen auf NoSQL-Daten mit Azure Cosmos DB for Table
- Verwenden von NoSQL-Daten in Azure Cosmos DB
- Modellieren und Partitionieren von Daten in Azure Cosmos DB anhand eines praktischen Beispiels
- Optionen zum Migrieren von lokalen oder Clouddaten zu Azure Cosmos DB
- Migrieren Hunderter Terabytes von Daten zu Azure Cosmos DB
- Änderungsfeed-Entwurfsmuster in Azure Cosmos DB
- Serverlose, ereignisbasierte Architekturen mit Azure Cosmos DB und Azure Functions
- Einführung in den Azure Data Factory-Dienst
- Orchestrieren der Datenverschiebung und -transformation in Azure Data Factory oder Azure Synapse Pipeline