Minimalny magazyn — zestawienie zmian w celu replikowania danych
W tym artykule przedstawiono rozwiązanie o wysokiej dostępności dla aplikacji internetowej obsługującej duże ilości danych, które muszą być dostępne w określonym przedziale czasu. Rozwiązanie obejmuje użycie usługi Azure Cosmos DB jako podstawowego magazynu danych i użycie zestawienia zmian usługi Azure Cosmos DB w celu replikowania danych do magazynu pomocniczego o niskich kosztach. Po wygaśnięciu określonego okresu usługa Azure Functions jest używana do usuwania danych z usługi Azure Cosmos DB. Dane w magazynie pomocniczym pozostają dostępne przez dłuższy czas, aby umożliwić inne rozwiązania na potrzeby inspekcji i analizy. Rozwiązanie zapewnia również wysoką trwałość przez replikowanie danych do różnych usług danych.
Architektura
Pobierz plik programu Visio z tą architekturą.
Przepływ danych
- Klient uwierzytelnia się przy użyciu identyfikatora Entra firmy Microsoft i otrzymuje dostęp do aplikacji internetowych hostowanych w usłudze aplikacja systemu Azure.
- Usługa Azure Front Door, zapora i moduł równoważenia obciążenia w warstwie 7, przełącza ruch użytkowników do regionu rezerwowego, jeśli wystąpi awaria regionalna.
- Usługa App Service hostuje witryny internetowe i internetowe interfejsy API RESTful. Klienci przeglądarki uruchamiają asynchroniczne aplikacje JavaScript i XML (AJAX), które używają interfejsów API.
- Internetowe interfejsy API delegować odpowiedzialność za kod hostowany przez usługę Functions w celu obsługi zadań w tle. Zadania są kolejkowane w kolejkach usługi Azure Queue Storage.
- Komunikaty w kolejce wyzwalają funkcje, które wykonują zadania w tle.
- Usługa Azure Cache for Redis Cache buforuje dane bazy danych dla funkcji. Dzięki użyciu pamięci podręcznej rozwiązanie odciąża aktywność bazy danych i przyspiesza aplikacje funkcji i aplikacje internetowe.
- Usługa Azure Cosmos DB przechowuje ostatnio wygenerowane dane.
- Usługa Azure Cosmos DB wystawia zestawienie zmian, które może służyć do replikowania zmian.
- Aplikacja funkcji odczytuje zestawienie zmian i replikuje zmiany do tabel usługi Azure Table Storage. Inna aplikacja funkcji okresowo usuwa wygasłe dane z usługi Azure Cosmos DB.
- Usługa Table Storage zapewnia magazyn o niskich kosztach.
Składniki
- Microsoft Entra ID to usługa zarządzania tożsamościami i dostępem, która może być synchronizowana z katalogiem lokalnym. W tej architekturze uwierzytelnia użytkowników i udziela dostępu do aplikacji internetowych hostowanych w usłudze App Service.
- Usługa Azure DNS to usługa hostingu o wysokiej dostępności dla domen systemu nazw domen (DNS). W tej architekturze usługa Azure DNS zapewnia rozpoznawanie nazw DNS i aplikację internetową uwidocznioną za pośrednictwem usługi Azure Front Door.
- Usługa Azure Front Door to bezpieczna sieć dostarczania zawartości i moduł równoważenia obciążenia. W tej architekturze przyspiesza dostarczanie zawartości, zapewnia możliwości trybu failover i chroni aplikacje przed zagrożeniami cybernetycznymi.
- App Service to w pełni zarządzana usługa służąca do tworzenia, wdrażania, hostowania i skalowania aplikacji internetowych. Aplikacje można tworzyć przy użyciu platformy .NET, .NET Core, Node.js, Java, Python lub PHP. Aplikacje mogą działać w kontenerach lub w systemie Windows lub Linux. W ramach migracji komputera mainframe można kodować ekrany frontonu lub interfejs internetowy jako interfejsy API REST oparte na protokole HTTP. Można je segregować i sprawić, aby były bezstanowe, aby zorganizować system oparty na mikrousługach. Aby uzyskać więcej informacji na temat internetowych interfejsów API, zobacz RESTful web API design (Projektowanie internetowego interfejsu API RESTful). W tej architekturze usługa App Service hostuje interfejs internetowy i interfejsy API REST dla aplikacji.
- Funkcje udostępniają środowisko do uruchamiania małych fragmentów kodu nazywanych funkcjami bez konieczności ustanawiania infrastruktury aplikacji. Służy do przetwarzania danych zbiorczych, integrowania systemów, pracy z urządzeniami Internetu rzeczy (IoT) oraz tworzenia prostych interfejsów API i mikrousług. Dzięki mikrousługom można tworzyć serwery, które łączą się z usługami platformy Azure i zawsze pozostają aktualne. W tej architekturze usługa Functions obsługuje zadania w tle, takie jak replikowanie danych i usuwanie wygasłych rekordów.
-
Azure Storage to zestaw wysoce skalowalnych i bezpiecznych usług w chmurze dla danych, aplikacji i obciążeń. Obejmuje ona usługę Azure Files, która służy jako skuteczne narzędzie do migrowania obciążeń mainframe.
- Usługa Queue Storage zapewnia proste, ekonomiczne, trwałe kolejkowanie komunikatów dla dużych obciążeń. Ta architektura używa usługi Queue Storage do obsługi komunikatów zadań.
- Table Storage to magazyn par klucz-wartość NoSQL do szybkiego opracowywania, który korzysta z ogromnych częściowo ustrukturyzowanych zestawów danych. Tabele są bez schematu i łatwo dostosowują się w miarę zmian potrzeb. Dostęp jest szybki i ekonomiczny dla wielu typów aplikacji i zazwyczaj kosztuje mniej niż inne typy magazynu kluczy. Ta architektura używa usługi Table Storage do przechowywania zsynchronizowanej i zrestrukturyzowanej kopii danych w usłudze Azure Cosmos DB.
- Usługa Azure Cache for Redis to w pełni zarządzana usługa buforowania w pamięci i broker komunikatów służący do udostępniania danych i stanu między zasobami obliczeniowymi. Obejmuje zarówno usługę Redis typu open source, jak i produkt komercyjny z usługi Redis Labs jako usługi zarządzane. Wydajność aplikacji przetwarzania transakcji online o wysokiej przepływności (OLTP) można poprawić, projektując je pod kątem skalowania i używania magazynu danych w pamięci, takiego jak usługa Azure Cache for Redis. W tej architekturze usługa Azure Cache for Redis przyspiesza dostęp do często używanych danych, co zwiększa wydajność aplikacji funkcji i aplikacji internetowych.
- Azure Cosmos DB to globalnie rozproszona wielomodelowa baza danych, która umożliwia elastyczne i niezależne skalowanie przepływności i magazynowania w dowolnej liczbie regionów geograficznych. Zapewnia ona gwarancje przepływności, opóźnienia, dostępności i spójności z kompleksowymi umowami dotyczącymi poziomu usług (SLA). W tej architekturze usługa Azure Cosmos DB przechowuje najnowsze dane i emituje zestawienie zmian używane do replikowania aktualizacji do usługi Table Storage.
Alternatywy
- Usługa Azure Traffic Manager kieruje przychodzące żądania DNS w globalnych regionach świadczenia usługi Azure w oparciu o wybrane metody routingu ruchu. Zapewnia również automatyczne przechodzenie w tryb failover i routing wydajności.
- Usługa Azure Content Delivery Network buforuje zawartość statyczną na serwerach brzegowych w celu szybkiego reagowania i używa optymalizacji sieci w celu poprawy odpowiedzi na zawartość dynamiczną. Usługa Content Delivery Network jest szczególnie przydatna, gdy baza użytkowników jest globalna.
- Azure Container Apps to w pełni zarządzana bezserwerowa usługa kontenera używana do tworzenia i wdrażania nowoczesnych aplikacji na dużą skalę.
- Usługa Azure Kubernetes Service (AKS) to w pełni zarządzana usługa Kubernetes służąca do wdrażania konteneryzowanych aplikacji i zarządzania nimi. Służy do implementowania architektury mikrousług, której składniki są skalowane niezależnie na żądanie.
- Usługa Azure Container Instances zapewnia szybki i prosty sposób uruchamiania zadań bez konieczności zarządzania infrastrukturą. Jest to przydatne podczas programowania lub uruchamiania nieplanowanych zadań.
- Usługa Azure Service Bus to niezawodna usługa obsługi komunikatów w chmurze na potrzeby prostej integracji hybrydowej. Można go używać zamiast usługi Queue Storage w tej architekturze. Aby uzyskać więcej informacji, zobacz Kolejki magazynu i kolejki usługi Service Bus — porównywane i kontrastowane.
Szczegóły scenariusza
To rozwiązanie używa usługi Azure Cosmos DB do przechowywania dużej ilości danych używanych przez aplikację internetową. Aplikacje internetowe, które obsługują ogromne ilości danych, korzystają z możliwości usługi Azure Cosmos DB do elastycznego i niezależnego skalowania przepływności i magazynu.
Innym kluczowym składnikiem rozwiązania jest źródło zmian usługi Azure Cosmos DB. Po wprowadzeniu zmian w bazie danych strumień zestawienia zmian jest wysyłany do wyzwalacza funkcji sterowanych zdarzeniami. Następnie funkcja uruchamia i replikuje zmiany w tabelach usługi Table Storage, które zapewniają rozwiązanie magazynu o niskich kosztach.
Aplikacja internetowa potrzebuje danych tylko przez ograniczony czas. Rozwiązanie wykorzystuje ten fakt, aby jeszcze bardziej obniżyć koszty. W szczególności inna funkcja okresowo uruchamia i usuwa wygasłe dane z usługi Azure Cosmos DB. Oprócz wyzwalania można również zaplanować uruchamianie funkcji w określonych godzinach.
Potencjalne przypadki użycia
Architektura jest odpowiednia dla każdej aplikacji, która:
- Używa ogromnej ilości danych.
- Wymaga, aby dane są zawsze dostępne, gdy są potrzebne.
- Używa danych, które wygasają.
Przykłady obejmują aplikacje, które:
- Personalizuj środowisko klienta i zwiększaj zaangażowanie za pośrednictwem dynamicznych źródeł danych i czujników w lokalizacjach fizycznych.
- Śledź nawyki dotyczące wydatków klientów i zachowanie zakupów.
- Śledź floty pojazdów, zbierając dane dotyczące lokalizacji pojazdu, wydajności i zachowania kierowcy w celu zwiększenia wydajności i bezpieczeństwa.
- Prognoza pogody.
- Oferowanie inteligentnych systemów ruchu lub implementowanie inteligentnych systemów ruchu lub używanie inteligentnej technologii do monitorowania ruchu.
- Analizowanie danych IoT produkcji.
- Wyświetlanie danych miernika inteligentnego lub używanie technologii inteligentnej do monitorowania danych miernika.
Kwestie wymagające rozważenia
Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.
- Podczas implementowania i konserwacji tego rozwiązania ponosisz dodatkowe koszty.
- Użycie zestawienia zmian na potrzeby replikacji wymaga mniejszej konserwacji kodu niż replikacja w podstawowej aplikacji.
- Musisz przeprowadzić migrację istniejących danych. Proces migracji wymaga skryptów ad hoc lub procedur kopiowania starych danych na konta magazynu. Podczas migracji danych upewnij się, że używasz sygnatur czasowych i kopiowania flag w celu śledzenia postępu migracji.
- Aby uniknąć usuwania wpisów z pomocniczego magazynu tabel platformy Azure, zignoruj kanały informacyjne usuwania generowane podczas usuwania wpisów z usługi Azure Cosmos DB przez funkcje.
Współautorzy
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Główny autor:
- Nabil Siddiqui | Architekt rozwiązań w chmurze — innowacje w zakresie technologii cyfrowych i aplikacji
Następne kroki
- Styl architektury Web-Queue-Worker
- Projektowanie aplikacji rozproszonej geograficznie
- Globalna dystrybucja danych przy użyciu usługi Azure Cosmos DB
- Wybieranie odpowiedniego interfejsu API dla usługi Azure Cosmos DB
- Przechowywanie i uzyskiwanie dostępu do danych NoSQL za pomocą usługi Azure Cosmos DB dla tabel
- Praca z danymi NoSQL w usłudze Azure Cosmos DB
- Jak modelować i partycjonować dane w usłudze Azure Cosmos DB przy użyciu przykładu wziętego z życia
- Opcje migracji danych lokalnych lub w chmurze do usługi Azure Cosmos DB
- Migrowanie setek terabajtów danych do usługi Azure Cosmos DB
- Wzorce projektowe zestawienia zmian w usłudze Azure Cosmos DB
- Architektury oparte na zdarzeniach bezserwerowych z użyciem usług Azure Cosmos DB i Azure Functions
- Wprowadzenie do usługi Azure Data Factory
- Organizowanie przenoszenia i przekształcania danych w usłudze Azure Data Factory lub potoku usługi Azure Synapse