Skalowalne przetwarzanie zleceń

Azure Cosmos DB
Azure HDInsight

Ten przykładowy scenariusz jest istotny dla organizacji, które wymagają wysoce skalowalnej i odpornej architektury na potrzeby przetwarzania zamówień online. Potencjalne aplikacje obejmują handel elektroniczny i sprzedaż detaliczną w punkcie sprzedaży, realizację zamówień oraz rezerwację i śledzenie zapasów.

Architektura

Diagram przedstawiający przykładową architekturę skalowalnego potoku przetwarzania zamówień.

Pobierz plik programu Visio tej architektury.

Przepływ danych

Ta architektura zawiera szczegółowe informacje o kluczowych składnikach potoku przetwarzania zamówień. Dane przepływa przez scenariusz w następujący sposób:

  1. Komunikaty o zdarzeniach wprowadzają system za pośrednictwem aplikacji przeznaczonych dla klientów (synchronicznie za pośrednictwem protokołu HTTP) i różnych systemów zaplecza (asynchronicznie za pośrednictwem platformy Apache Kafka). Te komunikaty są przekazywane do potoku przetwarzania poleceń.
  2. Każdy komunikat zdarzenia jest pozyskiwany i mapowany na jeden ze zdefiniowanych zestawów poleceń przez mikrousługę procesora poleceń. Procesor poleceń pobiera bieżący stan odpowiadający wykonaniu polecenia z bazy danych migawek strumienia zdarzeń. Polecenie jest następnie wykonywane, a dane wyjściowe polecenia są emitowane jako nowe zdarzenie.
  3. Każde zdarzenie emitowane jako dane wyjściowe polecenia jest zatwierdzane w bazie danych strumienia zdarzeń przy użyciu usługi Azure Cosmos DB.
  4. Dla każdej bazy danych wstaw lub zaktualizuj zatwierdzone do bazy danych strumienia zdarzeń zdarzenie jest zgłaszane przez źródło zmian usługi Azure Cosmos DB. Systemy podrzędne mogą subskrybować wszystkie tematy zdarzeń, które są istotne dla tego systemu.
  5. Wszystkie zdarzenia ze źródła zmian usługi Azure Cosmos DB są również wysyłane do mikrousługi strumienia zdarzeń migawki, która oblicza wszelkie zmiany stanu spowodowane zdarzeniami, które wystąpiły. Nowy stan jest następnie zatwierdzany w bazie danych migawek strumienia zdarzeń przechowywanych w usłudze Azure Cosmos DB. Baza danych migawek udostępnia globalnie rozproszone, małe opóźnienia źródła danych dla bieżącego stanu wszystkich elementów danych. Baza danych strumienia zdarzeń zawiera pełny rekord wszystkich komunikatów o zdarzeniach, które przeszły przez architekturę, co umożliwia niezawodne testowanie, rozwiązywanie problemów i scenariusze odzyskiwania po awarii.

Składniki

  • Usługa 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). W tym scenariuszu usługa Azure Cosmos DB jest używana do przechowywania strumienia zdarzeń i magazynu migawek oraz stosuje funkcje zestawienia zmian usługi Azure Cosmos DB w celu zapewnienia spójności danych i odzyskiwania błędów.
  • Platforma Apache Kafka w usłudze Azure HDInsight to zarządzana implementacja usługi Apache Kafka, rozproszonej platformy przesyłania strumieniowego typu open source do tworzenia potoków i aplikacji przesyłania strumieniowego w czasie rzeczywistym. Platforma Kafka udostępnia również funkcję brokera komunikatów podobną do kolejki komunikatów na potrzeby publikowania i subskrybowania nazwanych strumieni danych. W tym scenariuszu platforma Kafka przetwarza zdarzenia przychodzące i podrzędne w potoku przetwarzania zamówień.

Szczegóły scenariusza

Ten scenariusz przyjmuje podejście do określania źródła zdarzeń przy użyciu funkcjonalnego modelu programowania zaimplementowanego za pośrednictwem mikrousług. Każda mikrousługa jest traktowana jako procesor strumienia, a cała logika biznesowa jest implementowana za pośrednictwem mikrousług. Takie podejście umożliwia wysoką dostępność i odporność, replikację geograficzną i szybką wydajność.

Korzystanie z zarządzanych usług platformy Azure, takich jak Azure Cosmos DB i HDInsight, może pomóc zmniejszyć koszty dzięki wiedzy firmy Microsoft w zakresie globalnego rozproszonego magazynu danych w skali chmury i pobierania. Ten scenariusz dotyczy w szczególności scenariusza handlu elektronicznego lub handlu detalicznego; Jeśli masz inne potrzeby dotyczące usług danych, zapoznaj się z listą dostępnych w pełni zarządzanych inteligentnych usług baz danych na platformie Azure.

Potencjalne przypadki użycia

Inne istotne przypadki użycia to:

  • Systemy zaplecza handlu elektronicznego lub punktów sprzedaży detalicznej.
  • Systemy zarządzania zapasami dla branży handlu detalicznego lub produkcyjnego.
  • Systemy realizacji zamówień.
  • Inne scenariusze integracji związane z potokiem przetwarzania zamówień.

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.

Wiele opcji technologicznych jest dostępnych na potrzeby pozyskiwania komunikatów w czasie rzeczywistym, magazynu danych, przetwarzania strumienia, przechowywania danych analitycznych oraz analizy i raportowania.

Mikrousługi stały się popularnym stylem architektury do tworzenia odpornych, w dużym stopniu skalowalnych i zdolnych do szybkiego rozwijania się aplikacji w chmurze mających możliwość niezależnego wdrażania. Mikrousługi wymagają innego podejścia do projektowania i tworzenia aplikacji. Aby uzyskać wskazówki dotyczące tworzenia i uruchamiania architektury opartej na mikrousługach, zobacz Projektowanie mikrousług na platformie Azure.

Dostępność

Podejście do określania źródła zdarzeń w tym scenariuszu umożliwia luźne łączenie i wdrażanie składników systemowych niezależnie od siebie. Usługa Azure Cosmos DB oferuje wysoką dostępność i pomaga organizacji zarządzać kompromisami związanymi ze spójnością, dostępnością i wydajnością, a wszystko to z odpowiednimi gwarancjami. Platforma Apache Kafka w usłudze HDInsight została również zaprojektowana pod kątem wysokiej dostępności.

Usługa Azure Monitor udostępnia ujednolicone interfejsy użytkownika do monitorowania w różnych usługach platformy Azure. Aby uzyskać więcej informacji, zobacz Monitorowanie na platformie Microsoft Azure. Usługi Event Hubs i Stream Analytics są zintegrowane z usługą Azure Monitor.

Aby zapoznać się z innymi zagadnieniami dotyczącymi dostępności, zobacz listę kontrolną dostępności.

Skalowalność

Platforma Kafka w usłudze HDInsight umożliwia konfigurację magazynu i skalowalności klastrów platformy Kafka. Usługa Azure Cosmos DB zapewnia szybką, przewidywalną wydajność i bezproblemowo skaluje się wraz ze wzrostem aplikacji. Architektura oparta na mikrousługach opartych na zdarzeniach w tym scenariuszu ułatwia również skalowanie systemu i rozszerzanie jego funkcjonalności.

Aby zapoznać się z innymi zagadnieniami dotyczącymi skalowalności, zobacz listę kontrolną wydajności dostępną w Centrum architektury platformy Azure.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

Model zabezpieczeń usługi Azure Cosmos DB uwierzytelnia użytkowników i zapewnia dostęp do swoich danych i zasobów. Aby uzyskać więcej informacji, zobacz Zabezpieczenia bazy danych usługi Azure Cosmos DB.

Ogólne wskazówki dotyczące projektowania bezpiecznych rozwiązań można znaleźć w dokumentacji zabezpieczeń platformy Azure.

Odporność

Architektura określania źródła zdarzeń i skojarzone technologie w tym przykładowym scenariuszu sprawiają, że ten scenariusz jest wysoce odporny w przypadku wystąpienia awarii. Aby uzyskać ogólne wskazówki dotyczące projektowania odpornych rozwiązań, zobacz Projektowanie odpornych aplikacji na platformie Azure.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

Aby sprawdzić koszt działania tego scenariusza, wszystkie usługi są wstępnie skonfigurowane w kalkulatorze kosztów. Aby zobaczyć, jak ceny zmienią się w danym scenariuszu, zmień odpowiednie zmienne tak, aby odpowiadały oczekiwanemu woluminowi danych. W tym scenariuszu przykładowe ceny obejmują tylko usługę Azure Cosmos DB i klaster Kafka do przetwarzania zdarzeń wywoływanych z zestawienia zmian usługi Azure Cosmos DB. Procesory zdarzeń i mikrousługi dla systemów pochodzących i innych systemów podrzędnych nie są uwzględniane, a ich koszt jest bardzo zależny od ilości i skali tych usług, a także technologii wybranych do ich wdrożenia.

Waluta usługi Azure Cosmos DB to jednostka żądania (RU). W przypadku jednostek żądań nie trzeba rezerwować pojemności odczytu/zapisu ani aprowizować procesora CPU, pamięci i liczby operacji we/wy na sekundę. Usługa Azure Cosmos DB obsługuje różne interfejsy API, które mają różne operacje, począwszy od prostych operacji odczytu i zapisu po złożone zapytania grafu. Ponieważ nie wszystkie żądania są równe, żądania są przypisywane znormalizowanej ilości jednostek żądań na podstawie ilości obliczeń wymaganych do obsługi żądania. Liczba jednostek żądań wymaganych przez rozwiązanie zależy od rozmiaru elementu danych i liczby operacji odczytu i zapisu bazy danych na sekundę. Aby uzyskać więcej informacji, zobacz Request units in Azure Cosmos DB (Jednostki żądań w usłudze Azure Cosmos DB). Szacowane ceny są oparte na usłudze Azure Cosmos DB działającej w dwóch regionach świadczenia usługi Azure.

Udostępniliśmy trzy przykładowe profile kosztów na podstawie oczekiwanej ilości działań:

  • Mały: ten przykład cenowy jest skorelowany z 5 jednostkami RU zarezerwowanymi z magazynem danych o pojemności 1 TB w usłudze Azure Cosmos DB i małym klastrem platformy Kafka (D3 v2).
  • Średni: ten przykład cenowy jest skorelowany z 50 jednostkami RU zarezerwowanymi z magazynem danych o pojemności 10 TB w usłudze Azure Cosmos DB i klastrem platformy Kafka w średnim rozmiarze (D4 v2).
  • Duży: ten przykład cenowy jest skorelowany z 500 jednostkami RU zarezerwowanymi z magazynem danych o pojemności 30 TB w usłudze Azure Cosmos DB i dużym klastrem platformy Kafka (D5 v2).

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Autorzy zabezpieczeń:

Następne kroki

Ten przykładowy scenariusz jest oparty na bardziej rozbudowanej wersji tej architektury utworzonej przez jet.com dla kompleksowego potoku przetwarzania zamówień. Aby uzyskać więcej informacji, zobacz jet.com profil techniczny klienta i prezentację jet.com na stronie Kompilacja.

Zobacz tę inną zawartość:

Zobacz powiązaną zawartość architektury: