Integracja przedsiębiorstwa przy użyciu brokera komunikatów i zdarzeń

Azure Event Grid
Azure Service Bus

Ta przykładowa architektura jest oparta na podstawowej architekturze integracji przedsiębiorstwa. Rozszerza ona architekturę, aby pokazać, jak zintegrować systemy zaplecza przedsiębiorstwa przy użyciu brokerów komunikatów i zdarzeń w celu oddzielenia usług w celu zwiększenia skalowalności i niezawodności. Upewnij się, że znasz ten projekt i składniki używane w podstawowej architekturze integracji. Zawiera podstawowe informacje na temat podstawowych składników tej architektury, które nie zostaną tutaj odtworzone.

Architektura

Systemy zaplecza, do których odwołuje się ten projekt, mogą obejmować systemy oprogramowania jako usługi (SaaS), usługi platformy Azure i istniejące usługi internetowe w przedsiębiorstwie.

Reference architecture for enterprise integration using queues and events

Pobierz plik programu Visio z tą architekturą.

Workflow

Przedstawiona tutaj architektura opiera się na prostszej architekturze, która jest wyświetlana w podstawowej integracji przedsiębiorstwa. Ta architektura używa usługi Logic Apps do organizowania przepływów pracy bezpośrednio z systemami zaplecza i usługą API Management w celu tworzenia wykazów interfejsów API.

Ta wersja architektury dodaje dwa składniki, które pomagają uczynić system bardziej niezawodnym i skalowalnym:

Komunikacja asynchroniczna przy użyciu brokera komunikatów zapewnia następujące korzyści w porównaniu z bezpośrednimi, synchronicznymi wywołaniami usług zaplecza:

  • Zapewnia bilansowanie obciążenia do obsługi wzrostów obciążeń przy użyciu wzorca bilansowania obciążenia opartego na kolejce.
  • Zapewnia nadawanie komunikatów wielu konsumentom przy użyciu wzorca Publisher-Subscriber.
  • Niezawodnie śledzi postęp długotrwałych przepływów pracy obejmujących wiele kroków lub wielu aplikacji.
  • Ułatwia oddzielenie aplikacji.
  • Integruje się z istniejącymi systemami opartymi na komunikatach.
  • Umożliwia kolejkowanie pracy, gdy system zaplecza nie jest dostępny.

Usługa Event Grid umożliwia różnym składnikom systemu reagowanie na zdarzenia w miarę ich wystąpienia, zamiast polegać na sondowaniu lub zaplanowanych zadaniach. Podobnie jak w przypadku kolejki komunikatów i tematów, ułatwia oddzielenie aplikacji i usług. Aplikacja lub usługa może publikować zdarzenia, a wszyscy zainteresowani subskrybenci zostaną powiadomieni. Nowych subskrybentów można dodać bez aktualizowania nadawcy.

Wiele usług platformy Azure obsługuje wysyłanie zdarzeń do usługi Event Grid. Na przykład aplikacja logiki może nasłuchiwać zdarzenia po dodaniu nowych plików do magazynu obiektów blob. Ten wzorzec umożliwia reaktywne przepływy pracy, w których przekazywanie pliku lub umieszczanie komunikatu w kolejce rozpoczyna serię procesów. Procesy mogą być wykonywane równolegle lub w określonej sekwencji.

Zalecenia

Zalecenia opisane w temacie Podstawowa integracja przedsiębiorstwa mają zastosowanie do tej architektury.

Service Bus

Usługa Service Bus ma dwa tryby dostarczania, ściąganie lub wypychanie proxied. W modelu ściągania odbiornik stale sonduje pod kątem nowych komunikatów. Sondowanie może być nieefektywne, zwłaszcza jeśli masz wiele kolejek, z których każda odbiera kilka komunikatów, lub jeśli istnieje dużo czasu między komunikatami. W modelu wypychania proxied usługa Service Bus wysyła zdarzenie za pośrednictwem usługi Event Grid, gdy istnieją nowe komunikaty. Odbiorca subskrybuje zdarzenie. Po wyzwoleniu zdarzenia odbiorca ściąga następną partię komunikatów z usługi Service Bus.

Podczas tworzenia aplikacji logiki do korzystania z komunikatów usługi Service Bus zalecamy użycie modelu wypychania proxied z integracją usługi Event Grid. Często jest to bardziej opłacalne, ponieważ aplikacja logiki nie musi sondować usługi Service Bus. Aby uzyskać więcej informacji, zobacz Omówienie integracji usługi Azure Service Bus z usługą Event Grid. Obecnie dla powiadomień usługi Event Grid jest wymagana warstwa Premium usługi Service Bus.

Użyj narzędzia PeekLock , aby uzyskać dostęp do grupy komunikatów. Gdy używasz aplikacji PeekLock, aplikacja logiki może wykonać kroki w celu zweryfikowania każdego komunikatu przed ukończeniem lub porzuceniem komunikatu. Takie podejście chroni przed przypadkową utratą komunikatów.

Event Grid

Gdy wyzwalacz usługi Event Grid zostanie wyzwolony, oznacza to, że wystąpiło co najmniej jedno zdarzenie. Na przykład gdy aplikacja logiki pobiera wyzwalacze usługi Event Grid dla komunikatu usługi Service Bus, należy założyć, że kilka komunikatów może być dostępnych do przetworzenia.

Zagadnienia do 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.

Niezawodność

Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Omówienie filaru niezawodności.

  • Microsoft Entra ID: Microsoft Entra ID to globalnie rozproszona platforma SaaS o wysokiej dostępności. Aby uzyskać szczegółowe informacje o gwarantowanej dostępności, zapoznaj się z umową SLA .
  • API Management: usługa API Management można wdrożyć w kilku konfiguracjach o wysokiej dostępności zgodnie z wymaganiami biznesowymi i tolerancją kosztów. Zapoznaj się z artykułem Zapewnianie dostępności i niezawodności usługi API Management, aby zapoznać się z pełnym przeglądem opcji. Zapoznaj się również z umową SLA, aby uzyskać szczegółowe informacje o gwarantowanej dostępności.
  • Logic Apps: magazyn geograficznie nadmiarowy jest dostępny dla usługi Logic Apps w warstwie Plan zużycie. Aby uzyskać informacje na temat projektowania rozwiązania do zapewnienia ciągłości działania i odzyskiwania po awarii, zapoznaj się ze wskazówkami. Zapoznaj się również z umową SLA, aby uzyskać szczegółowe informacje o gwarantowanej dostępności.
  • Event Grid: definicje zasobów usługi Event Grid dla tematów, tematów systemowych, domen i subskrypcji zdarzeń oraz danych zdarzeń są automatycznie replikowane w trzech strefach dostępności (jeśli są dostępne) w regionie. W przypadku awarii w jednej ze stref dostępności zasoby usługi Event Grid automatycznie przejdą w tryb failover do innej strefy dostępności bez żadnej interwencji człowieka. Zapoznaj się z artykułem Geograficzne odzyskiwanie po awarii w różnych regionach , aby uzyskać wskazówki dotyczące projektowania rozwiązania odzyskiwania po awarii na potrzeby przechodzenia w tryb failover do innego regionu. Zapoznaj się również z umową SLA, aby uzyskać szczegółowe informacje o gwarantowanej dostępności.
  • Service Bus: usługa Service Bus Premium obsługuje odzyskiwanie po awarii geograficznej i Strefy dostępności. Replikacja jest dostępna dla usługi Service Bus w warstwie Standardowa. Zapoznaj się również z umową SLA, aby uzyskać szczegółowe informacje o gwarantowanej dostępności.

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

Aby zabezpieczyć usługę Service Bus, użyj uwierzytelniania entra firmy Microsoft sparowanego z tożsamościami zarządzanymi. Integracja usługi Microsoft Entra dla zasobów usługi Service Bus zapewnia kontrolę dostępu opartą na rolach (RBAC) platformy Azure w celu precyzyjnej kontroli dostępu klienta do zasobów. Za pomocą kontroli dostępu opartej na rolach platformy Azure możesz udzielić uprawnień jednostce zabezpieczeń, która może być użytkownikiem, grupą lub jednostką usługi aplikacji (w tym przypadku tożsamością zarządzaną).

Jeśli identyfikator Entra firmy Microsoft jest niedostępny, możesz użyć sygnatury dostępu współdzielonego (SAS). Możesz udzielić użytkownikowi dostępu do zasobów usługi Service Bus z określonymi prawami przy użyciu uwierzytelniania sas.

Jeśli musisz uwidocznić kolejkę lub temat usługi Service Bus jako punkt końcowy HTTP, na przykład w celu opublikowania nowych komunikatów, użyj usługi API Management, aby zabezpieczyć kolejkę przez fronting punktu końcowego. Następnie można zabezpieczyć punkt końcowy przy użyciu certyfikatów lub uwierzytelniania OAuth odpowiednio. Najprostszym sposobem zabezpieczenia punktu końcowego jest użycie aplikacji logiki z wyzwalaczem żądania/odpowiedzi HTTP jako pośrednika.

Usługa Event Grid zabezpiecza dostarczanie zdarzeń za pomocą kodu weryfikacji. Jeśli używasz usługi Logic Apps do korzystania ze zdarzenia, walidacja jest wykonywana automatycznie. Aby uzyskać więcej informacji, zobacz Zabezpieczenia i uwierzytelnianie usługi Event Grid.

Bezpieczeństwo sieci

Bezpieczeństwo sieci należy wziąć pod uwagę w całym projekcie.

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.

Ogólnie rzecz biorąc, możesz szacować koszty za pomocą kalkulatora cen platformy Azure. Oto kilka innych zagadnień.

API Management

Opłaty są naliczane za wszystkie wystąpienia usługi API Management, gdy są uruchomione. Jeśli skalowano w górę i nie potrzebujesz tego poziomu wydajności przez cały czas, ręcznie przeprowadź skalowanie w dół lub skonfiguruj skalowanie automatyczne.

W przypadku obciążeń użycia lekkiego należy wziąć pod uwagę warstwę zużycia, która jest tanią opcją bezserwerową. Opłata za warstwę zużycie jest naliczana za wywołanie interfejsu API, natomiast opłaty za inne warstwy są naliczane za godzinę.

Logic Apps

Usługa Logic Apps używa modelu bezserwerowego. Rozliczenia są obliczane na podstawie akcji i wykonywania łącznika. Aby uzyskać więcej informacji, zobacz Cennik usługi Logic Apps.

Kolejki, tematy i subskrypcje usługi Service Bus

Kolejki i subskrypcje usługi Service Bus obsługują zarówno proxied push, jak i pull modele dostarczania komunikatów. W modelu ściągania każde żądanie sondowania jest mierzone jako akcja. Nawet w przypadku długiego sondowania o długości 30 sekund (wartość domyślna) koszt może być wysoki. Jeśli nie potrzebujesz dostarczania komunikatów w czasie rzeczywistym, rozważ użycie modelu wypychania proxied.

Kolejki usługi Service Bus są uwzględniane we wszystkich warstwach (warstwa Podstawowa, Standardowa i Premium). Chociaż tematy i subskrypcje usługi Service Bus są dostępne w warstwach Standardowa i Premium. Aby uzyskać więcej informacji, zobacz Cennik usługi Azure Service Bus.

Event Grid

Usługa Event Grid używa modelu bezserwerowego. Rozliczenia są obliczane na podstawie liczby operacji (wykonań zdarzeń). Operacje obejmują zdarzenia związane z transferem danych przychodzących do domen i tematów, zaawansowane dopasowania, próby dostarczenia i wywołania związane z zarządzaniem. Użycie do 100 000 operacji jest bezpłatne.

Aby uzyskać więcej informacji, zobacz Cennik usługi Event Grid.

Aby uzyskać więcej informacji, zapoznaj się z sekcją kosztów w temacie Dobrze zaprojektowana struktura platformy Microsoft Azure.

Sprawność operacyjna

Podstawowa architektura referencyjna integracji przedsiębiorstwa zawiera wskazówki dotyczące wzorców DevOps, które są dostosowane do filaru Doskonałości operacyjnej dobrze zaprojektowanej struktury.

Automatyzowanie operacji odzyskiwania jak najwięcej jest integralnym elementem doskonałości operacyjnej. Mając na uwadze automatyzację, możesz połączyć monitorowanie dzienników platformy Azure z usługą Azure Automation, aby zautomatyzować tryb failover zasobów usługi Service Bus. Zapoznaj się z diagramem w dokumentacji przepływu trybu failover, aby zapoznać się z przykładem logiki automatyzacji, aby zainicjować tryb failover.

Efektywność wydajności

Efektywność wydajności to możliwość skalowania obciążenia w celu zaspokojenia zapotrzebowania użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Omówienie filaru wydajności.

Aby uzyskać większą skalowalność, warstwa Premium usługi Service Bus może skalować liczbę jednostek obsługi komunikatów w poziomie. Zapoznaj się z dokumentacją warstw obsługi komunikatów w warstwie Premium i Standardowa usługi Service Bus, aby zapoznać się z przeglądem korzyści z warstwy Premium. Zapoznaj się również z dokumentacją funkcji skalowania automatycznego, aby dowiedzieć się więcej na temat konfigurowania skalowania automatycznego jednostek obsługi komunikatów.

Więcej zaleceń dotyczących usługi Service Bus można znaleźć w artykule Best practices for performance improvements by using Service Bus Messaging (Najlepsze rozwiązania dotyczące poprawy wydajności przy użyciu komunikatów usługi Service Bus).

Następne kroki

Aby uzyskać więcej informacji, zobacz dokumentację usługi Service Bus: