Stań się globalny
- 3 min
W poprzedniej lekcji opisaliśmy skalowanie zasobów obliczeniowych i zwiększanie ich dostępności w tym procesie. Zasugerowaliśmy również dodanie usługi Azure Cache for Redis w celu zwiększenia wydajności i skalowania baz danych Azure SQL Database za pośrednictwem fragmentowania.
Następnym krokiem, w miarę rozwoju firmy, może być przejście na rynek globalny. Istnieją jednak pewne kwestie, o których należy pomyśleć przed próbą zaimplementowania w pełni globalnej architektury.
Pytania do zadania
Pierwsze pytanie brzmi: Czy naprawdę musisz działać na rynku międzynarodowym?
Ważne jest, aby zrozumieć, jaki ból mają nasi klienci przed podjęciem takiego zadania, więc zadaj sobie kilka dodatkowych pytań:
- Czy możesz zbliżyć zawartość do użytkowników za pośrednictwem sieci dostarczania zawartości?
- Czy naprawdę musisz skalować ten konkretny system w dwóch (lub więcej) lokalizacjach geograficznych? Czy na przykład użytkownik w Stanach Zjednoczonych musi mieć dokładnie to samo konto w Wielkiej Brytanii? Czy niezależne systemy byłyby bardziej odpowiednie? Ten wzorzec jest typowy w handlu elektronicznym.
- Jeśli naprawdę potrzebujesz globalnie rozproszonego systemu, jaka spójność jest potrzebna dla bazy danych? Silna spójność na całym świecie jest trudna do osiągnięcia i nie jest dozwolona w usługach takich jak Cosmos DB, z uwagi na ograniczenia wynikające z prędkości światła.
Spójność danych
Przyjrzyjmy się nieco dokładniej problemowi spójności danych.
Spójność w systemach baz danych odnosi się do wymagania, że każda dana transakcja bazy danych musi zmieniać dane, których dotyczy problem, tylko w sposób dozwolony. Istnieją dwa modele spójności używane w przetwarzaniu rozproszonym.
Silna spójność zapewnia gwarancję liniowości. Operacje odczytu mają gwarancję zwrócenia najnowszej zatwierdzonej wersji elementu.
A potem istnieje spójność ostateczna, pomysł, że baza danych lub system ostatecznie staną się spójne z upływem czasu. Nie ma gwarancji porządku odczytania. W przypadku braku dalszych zapisów repliki ostatecznie zbiegają się.
Narzędzia do ekspansji globalnej
Jeśli okaże się, że naprawdę musisz skalować aplikację globalnie, istnieją pewne usługi platformy Azure, które mogą pomóc ci to osiągnąć. Przyjrzyjmy się usługom Azure Traffic Manager i Azure Front Door:
- Usługa Azure Traffic Manager to globalna usługa równoważenia obciążenia oparta na systemie DNS. Używa ona sond DNS i kondycji do kierowania użytkowników do najlepszego zaplecza w dobrej kondycji na podstawie zdefiniowanych zasad routingu. Ta definicja może być oparta na wydajności, lokalizacji, metodzie round-robin i tak dalej. Po zidentyfikowaniu backendu w dobrej kondycji klienci zawsze łączą się bezpośrednio z tym backendem.
- Usługa Azure Front Door Service jest usługą Application Delivery Network (ADN) oferującą różne funkcje równoważenia obciążenia warstwy 7 dla aplikacji. Zapewnia dynamiczne przyspieszanie witryn (DSA) wraz z globalnym równoważeniem obciążenia, umożliwiając niemal natychmiastowe przełączanie awaryjne. Jest to usługa o wysokiej dostępności i skalowalności, w pełni zarządzana przez platformę Azure.
Usługa Azure Front Door to w zasadzie globalny moduł równoważenia obciążenia oparty na protokole HTTP. Klient nawiązuje połączenie z usługą Front Door, więc usługa Front Door wysyła żądanie użytkowników do serwera proxy. Jeśli żądany element nie znajduje się w pamięci podręcznej, zostanie zidentyfikowana prawidłowa reguła routingu. Następnie sprawdza sondę kondycji odpowiedniego zaplecza i przy założeniu, że wszystko jest w dobrej kondycji, przekazuje żądanie użytkownika do najlepszego zaplecza na podstawie metody routingu.
Ponieważ połączenie jest wykonywane przez serwer proxy usługi Azure Front Door, można wykonywać pewne zaawansowane funkcje, takie jak uruchamianie zapory aplikacji internetowej i buforowanie, co jest przydatne do skalowania. Żadna z tych funkcji nie może zostać osiągnięta w usłudze Traffic Manager.
Na diagramie pokazano, jak można używać obu tych elementów razem.
Ta konfiguracja używa usługi Traffic Manager do prostego równoważenia obciążenia opartego na DNS dla statycznych zasobów w kontach magazynowych. Używa ona również usługi Front Door do routingu opartego na ścieżkach w aplikacji internetowej w usłudze App Service i na maszynach wirtualnych.