Minimalny magazyn — zestawienie zmian w celu replikowania danych

Azure Front Door
Azure App Service
Azure Functions
Azure Cosmos DB
Azure Table Storage

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

Architektura odpornego systemu korzystającego z dwóch typów magazynu w celu zmniejszenia kosztów.

Pobierz plik programu Visio z tą architekturą.

Przepływ danych

  1. Klient uwierzytelnia się przy użyciu identyfikatora Entra firmy Microsoft i otrzymuje dostęp do aplikacji internetowych hostowanych w usłudze aplikacja systemu Azure.
  2. 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.
  3. 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.
  4. 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.
  5. Komunikaty w kolejce wyzwalają funkcje, które wykonują zadania w tle.
  6. 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.
  7. Usługa Azure Cosmos DB przechowuje ostatnio wygenerowane dane.
  8. Usługa Azure Cosmos DB wystawia zestawienie zmian, które może służyć do replikowania zmian.
  9. 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.
  10. Usługa Table Storage zapewnia magazyn o niskich kosztach.

Składniki

  • Azure Microsoft Entra ID to usługa zarządzania tożsamościami i dostępem, która może synchronizować się z katalogiem lokalnym.
  • Azure DNS to usługa hostingu o wysokiej dostępności dla domen DNS, która zapewnia aplikacjom szybkie zapytania DNS i szybkie aktualizacje rekordów DNS. Zarządzanie usługą Azure DNS przypomina zarządzanie innymi usługami platformy Azure i używa tych samych poświadczeń, interfejsów API, narzędzi i rozliczeń.
  • Usługa Azure Front Door to bezpieczna sieć dostarczania zawartości (CDN) i moduł równoważenia obciążenia z natychmiastowym przejściem w tryb failover. Działa ona na brzegu blisko użytkowników, przyspieszając dostarczanie zawartości, jednocześnie chroniąc aplikacje, interfejsy API i witryny internetowe przed zagrożeniami cybernetycznymi.
  • App Service to w pełni zarządzana usługa do tworzenia, wdrażania i skalowania aplikacji internetowych. Aplikacje można tworzyć przy użyciu platform .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 ekrany frontonu lub interfejs internetowy mogą być kodowane jako interfejsy API REST oparte na protokole HTTP. Mogą być segregowane i mogą być bezstanowe do organizowania systemu opartego na mikrousługach. Aby uzyskać więcej informacji na temat internetowych interfejsów API, zobacz Projekt internetowego interfejsu API RESTful.
  • 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 są zawsze aktualne.
  • Azure Storage to zestaw wysoce skalowalnych i bezpiecznych usług w chmurze dla danych, aplikacji i obciążeń. Obejmuje ona usługi Azure Files, Table Storage i Queue Storage. Usługa Azure Files jest często skutecznym narzędziem do migrowania obciążeń komputerów mainframe.
  • Usługa Queue Storage zapewnia proste, ekonomiczne, trwałe kolejkowanie komunikatów dla dużych obciążeń.
  • 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.
  • 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. Możesz zwiększyć wydajność aplikacji przetwarzania transakcji online o wysokiej przepływności, projektując je pod kątem skalowania i korzystania z magazynu danych w pamięci, takiego jak usługa Azure Cache for Redis.
  • Azure Cosmos DB to globalnie rozproszona wielomodelowa baza danych firmy Microsoft, która umożliwia elastyczne i niezależne skalowanie przepływności i magazynowania w dowolnej liczbie regionów geograficznych. Oferuje ona gwarancje przepływności, opóźnienia, dostępności i spójności z kompleksowymi umowami dotyczącymi poziomu usług (SLA).

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