Global wechseln
- 3 Minuten
In der vorherigen Einheit haben wir die Skalierung der Rechenleistung beschrieben und dabei deren Verfügbarkeit erhöht. Außerdem haben wir vorgeschlagen, Azure Verwaltete Redis hinzuzufügen, um die Leistung zu verbessern und Azure SQL Datenbanken über Sharding zu skalieren.
Der nächste Schritt, da Ihr Unternehmen wächst, könnte sein, global zu gehen. Es gibt jedoch einige Dinge, die Sie berücksichtigen müssen, bevor Sie versuchen, eine vollständige globale Architektur zu implementieren.
Fragen, die man stellen sollte
Die erste Frage ist: Müssen Sie wirklich global gehen?
Es ist wichtig zu verstehen, welche Schmerzen unsere Kunden haben, bevor sie eine solche Aufgabe übernehmen, also stellen Sie sich ein paar weitere Fragen:
- Können Sie Inhalte über ein Content Delivery Network näher an Ihre Benutzer heranholen?
- Müssen Sie dieses bestimmte System wirklich auf zwei (oder mehr) Regionen skalieren? Muss beispielsweise ein Benutzer in der USA dasselbe Konto im Vereinigten Königreich haben? Wären unabhängige Systeme besser geeignet? Dieses Muster ist im E-Commerce üblich.
- Wenn Sie wirklich ein global verteiltes System benötigen, welche Konsistenz benötigen Sie für die Datenbank? Es ist schwierig, weltweit eine starke Konsistenz zu erreichen. Dienste wie Cosmos DB unterstützen eine starke Konsistenz in Konfigurationen mit mehreren Regionen, aber es kommt zu erheblichen Kompromissen, einschließlich höherer Latenz, geringerer Verfügbarkeit während regionaler Ausfälle und erhöhter RU-Verbrauch pro Betrieb.
Datenkonsistenz
Sehen wir uns etwas genauer an, was die Datenkonsistenz betrifft.
Bei verteiltem Computing bezieht sich die Konsistenz darauf, wie aktuell und einheitlich die Daten über alle Replikas eines Systems hinweg sind. Es gibt zwei primäre Konsistenzmodelle.
Starke Konsistenz bietet eine Garantie für lineare Konsistenz. Die Lesevorgänge geben garantiert die neueste festgeschriebene Version eines Elements zurück.
Und dann gibt es letztendlich Konsistenz, die Idee, dass eine Datenbank oder ein System im Laufe der Zeit konsistent wird. Es gibt keine Reihenfolgegarantie für Lesevorgänge. Falls keine weiteren Schreibvorgänge erfolgen, konvergieren die Replikate schließlich.
Dienste wie Cosmos DB bieten auch Zwischenkonsistenzmodelle, wie z. B. begrenzte Veraltung, Sitzung und konsistentes Präfix, die einen unterschiedlichen Ausgleich zwischen Leistung und Datenaktualität bieten.
Tools für den globalen Umschwung
Wenn Sie feststellen, dass Sie Ihre Anwendung wirklich global skalieren müssen, gibt es einige Azure Dienste, die Ihnen dabei helfen können. Sehen wir uns Azure Traffic Manager und Azure Front Door an:
- Azure Traffic Manager ist ein globaler DNS-basierter Lastenausgleichsdienst. Es verwendet DNS- und Integritätssonden, um Ihre Benutzer basierend auf den von Ihnen definierten Routingrichtlinien an das beste fehlerfreie Back-End weiterzuleiten. Dieses Routing kann auf Leistung, Standort, Roundrobin usw. basieren. Nachdem ein fehlerfreies Back-End identifiziert wurde, stellen Clients immer eine direkte Verbindung mit dem Back-End her.
- Azure Front Door ist ein modernes Cloud-CDN und ein globaler Lastenausgleich, der verschiedene Lastenausgleichsfunktionen der Ebene 7 für Ihre Anwendungen bietet. Er umfasst die Beschleunigung dynamischer Websites (DSA) sowie einen globalen Lastenausgleich mit Failover beinahe in Echtzeit. Es ist ein hoch verfügbarer und skalierbarer Dienst, der vollständig von Azure verwaltet wird.
Azure Front Door ist im Grunde ein globaler HTTP-basierter Lastenausgleich. Der Client stellt eine Verbindung mit Front Door selbst her, sodass Front Door als Proxy für die Anfragen der Nutzer fungiert. Wenn sich das angeforderte Element nicht im Cache befindet, wird die richtige Routingregel identifiziert. Anschließend überprüft er die Gesundheitsprüfung des relevanten Back-Ends. Vorausgesetzt, alles ist in Ordnung, leitet er die Benutzeranforderung basierend auf der Routingmethode an das beste Back-End weiter.
Da Azure Front Door Proxys die Verbindung ausführen, können Sie einige erweiterte Funktionen ausführen, z. B. das Ausführen einer Web Application Firewall und das Zwischenspeichern, was für die Skalierung hilfreich ist. Keine dieser Funktionen kann mit Traffic Manager erreicht werden.
Das Diagramm zeigt, wie Sie beides zusammen verwenden können.
Dieses Setup verwendet Traffic Manager für einfachen DNS-basierten Lastenausgleich für Ihre statischen Ressourcen in Speicherkonten. Außerdem wird Front Door für pfadbasiertes Routing für Ihre Webanwendung über App Service und VMs hinweg verwendet.