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
- 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
- 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