Ta architektura jest oparta na podstawowej architekturze integracji przedsiębiorstwa, ale obejmuje sposób integrowania systemów zaplecza przedsiębiorstwa. Ta architektura używa brokerów komunikatów i zdarzeń do oddzielenia usług w celu zwiększenia skalowalności i niezawodności. Upewnij się, że znasz projekt i składniki w podstawowej architekturze integracji. Te elementy zawierają podstawowe informacje o podstawowych składnikach tej architektury.
Architektura
Systemy zaplecza, do których odwołuje się ten projekt, obejmują systemy oprogramowania jako usługi (SaaS), usługi platformy Azure, usługi oparte na komunikatach i istniejące usługi internetowe w przedsiębiorstwie.
Pobierz plik programu Visio z tą architekturą.
Szczegóły scenariusza
Poprzednia architektura opiera się na prostszej podstawowej architekturze integracji przedsiębiorstwa, która używa usługi Azure Logic Apps do organizowania przepływów pracy bezpośrednio z systemami zaplecza i używa usługi Azure API Management do tworzenia wykazów interfejsów API.
Ta wersja architektury dodaje dwa składniki, które pomagają uczynić system bardziej niezawodnym i skalowalnym:
Usługa Azure Service Bus to bezpieczny, niezawodny broker komunikatów.
Azure Event Grid to usługa routingu zdarzeń. Korzysta z modelu publikowania i subskrybowania zdarzeń.
Ta architektura używa komunikacji asynchronicznej za pośrednictwem brokera komunikatów zamiast bezpośrednich synchronicznych wywołań do usług zaplecza. Komunikacja asynchroniczna zapewnia następujące korzyści:
Używa wzorca bilansowania obciążenia opartego na kolejce do obsługi wzrostów obciążeń za pośrednictwem bilansowania obciążenia
Używa wzorca Publisher-Subscriber, aby można było emitować komunikaty do wielu odbiorców
Śledzi postęp długotrwałych przepływów pracy niezawodnie, nawet jeśli obejmują one wiele kroków lub wiele aplikacji
Ułatwia oddzielenie aplikacji
Integruje się z istniejącymi systemami opartymi na komunikatach
Zapewnia możliwość kolejkowania komunikatów, gdy system zaplecza nie jest dostępny
Użyj usługi Event Grid, aby różne składniki systemu mogły reagować na zdarzenia podczas ich wystąpienia, zamiast polegać na sondowaniu lub zaplanowanych zadaniach. Podobnie jak w przypadku kolejki komunikatów i tematów, usługa Event Grid pomaga rozdzielić aplikacje i usługi. Jeśli aplikacja lub usługa publikuje zdarzenia, wszyscy zainteresowani subskrybenci są powiadamiani. Nowych subskrybentów można dodawać 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 tworzy reaktywne przepływy pracy, w których przekazywanie pliku lub umieszczanie komunikatu w kolejce rozpoczyna serię procesów. Procesy mogą działać równolegle lub w określonej sekwencji.
Zalecenia
Weź pod uwagę następujące zalecenia. Aby uzyskać więcej zaleceń, zobacz Podstawowa architektura integracji dla przedsiębiorstw.
Service Bus
Usługa Service Bus ma dwa modele dostarczania, model ściągania i proxied push :
Model ściągania: odbiornik stale sonduje pod kątem nowych komunikatów. Jeśli musisz zarządzać wieloma kolejkami i godzinami sondowania, sondowanie może być nieefektywne. Jednak ten model może uprościć architekturę, ponieważ usuwa dodatkowe składniki i przeskoki danych.
Model wypychania proxied: odbiornik początkowo subskrybuje określony typ zdarzenia w temacie usługi Event Grid. Gdy jest dostępny nowy komunikat, usługa Service Bus zgłasza zdarzenie i wysyła je za pośrednictwem usługi Event Grid. To zdarzenie wyzwala następnie odbiornik, aby ściągnąć następną partię komunikatów z usługi Service Bus. Ten model umożliwia systemom odbieranie komunikatów niemal w czasie rzeczywistym, ale bez używania zasobów do ciągłego sondowania nowych komunikatów. Ta architektura używa dodatkowych składników, które należy wdrożyć, zarządzać i zabezpieczać.
Podczas tworzenia przepływu pracy usługi Logic Apps w warstwie Standardowa korzystającego z komunikatów usługi Service Bus zalecamy użycie wbudowanych wyzwalaczy łącznika usługi Service Bus. Wbudowany łącznik wyzwalacze abstrakcji większość konfiguracji modelu ściągania bez dodawania dodatkowych kosztów. Ta funkcja zapewnia właściwą równowagę między kosztami, zarządzaniem obszarem powierzchni i zabezpieczeniami, ponieważ łącznik stale zapętla się w a aparatu środowiska uruchomieniowego usługi Logic Apps. Aby uzyskać więcej informacji, zobacz Wyzwalacze wbudowanego łącznika usługi Service Bus.
Użyj trybu 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 zapobiega przypadkowej utracie 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 wyzwalacz usługi Event Grid dla komunikatu usługi Service Bus, może istnieć kilka komunikatów dostępnych do przetworzenia.
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.
Niezawodność
Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca niezawodności.
Microsoft Entra ID to globalnie rozproszona platforma SaaS o wysokiej dostępności.
Usługę API Management można wdrożyć w kilku konfiguracjach o wysokiej dostępności zgodnie z wymaganiami biznesowymi i tolerancją kosztów. Aby uzyskać więcej informacji, zobacz Zapewnianie dostępności i niezawodności usługi API Management.
Warstwa Zużycie usługi Logic Apps obsługuje magazyn geograficznie nadmiarowy. Aby uzyskać więcej informacji, zobacz Ciągłość działania i odzyskiwanie po awarii dla usługi Logic Apps.
Definicje zasobów usługi Event Grid dla tematów, tematów systemowych, domen i subskrypcji zdarzeń oraz danych zdarzeń są automatycznie replikowane między strefami dostępności 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. Aby uzyskać więcej informacji, zobacz Odzyskiwanie po awarii między regionami i ciągłość działalności biznesowej.
Usługa Service Bus Premium obsługuje odzyskiwanie po awarii geograficznej i strefy dostępności. Usługa Service Bus Standard obsługuje replikację.
Aby uzyskać informacje o gwarantowanej dostępności poszczególnych usług, zobacz umowy SLA dotyczące Usługi online.
Zabezpieczenia
Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca zabezpieczeń.
Aby zabezpieczyć usługę Service Bus, należy sparować uwierzytelnianie firmy Microsoft z tożsamościami zarządzanymi. Integracja identyfikatora Entra firmy Microsoft 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. Kontrola dostępu oparta na rolach platformy Azure umożliwia przyznawanie uprawnień podmiotowi zabezpieczeń, takie jak użytkownik, grupa lub jednostka usługi aplikacji. Jednostka usługi aplikacji w tym scenariuszu jest tożsamością zarządzaną.
Jeśli nie możesz użyć identyfikatora Entra firmy Microsoft, użyj uwierzytelniania sygnatury dostępu współdzielonego (SAS), aby udzielić użytkownikom dostępu i określonych praw do zasobów usługi Service Bus.
Jeśli chcesz 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 pomóc zabezpieczyć kolejkę przez fronting punktu końcowego. Następnie możesz użyć certyfikatów lub uwierzytelniania OAuth, aby zabezpieczyć punkt końcowy. Najprostszym sposobem zabezpieczenia punktu końcowego jest użycie aplikacji logiki z wyzwalaczem żądania HTTP lub odpowiedzi jako pośrednika.
Usługa Event Grid pomaga zabezpieczyć dostarczanie zdarzeń za pośrednictwem kodu weryfikacji. Jeśli używasz usługi Logic Apps do korzystania ze zdarzenia, walidacja jest automatyczna. Aby uzyskać więcej informacji, zobacz Zabezpieczenia i uwierzytelnianie usługi Event Grid.
Bezpieczeństwo sieci
Rozważ bezpieczeństwo sieci w całym projekcie.
Usługę Service Bus Premium można powiązać z punktem końcowym usługi podsieci sieci wirtualnej. Ta konfiguracja pomaga zabezpieczyć przestrzeń nazw, ponieważ akceptuje tylko ruch z autoryzowanych sieci wirtualnych. Możesz również użyć usługi Azure Private Link , aby zezwolić tylko na ruch prywatny do sieci wirtualnej za pośrednictwem prywatnych punktów końcowych.
Usług Logic Apps Standard i Premium można skonfigurować tak, aby akceptowały ruch przychodzący za pośrednictwem prywatnych punktów końcowych i wysyłały ruch wychodzący za pośrednictwem integracji z siecią wirtualną.
Sieć wirtualna platformy Azure umożliwia zabezpieczanie dostępu do wystąpienia usługi API Management i interfejsów API. Ta metoda obsługuje prywatne punkty końcowe. Aby uzyskać więcej informacji, zobacz Używanie sieci wirtualnej z usługą API Management.
Optymalizacja kosztów
Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca optymalizacji kosztów.
Koszty możesz szacować za pomocą kalkulatora cen platformy Azure. Oto kilka innych zagadnień.
API Management
Opłaty są naliczane za wszystkie wystąpienia usługi API Management po ich uruchomieniu. W przypadku skalowania w górę, a następnie nie potrzebujesz już tego poziomu wydajności, ręcznie skaluj w dół lub skonfiguruj skalowanie automatyczne.
W przypadku obciążeń użycia lekkiego należy wziąć pod uwagę warstwę Zużycie, która jest tanią opcją bezserwerową. Opłata za warstwę Zużycie jest naliczana za wywołanie interfejsu API. Opłaty za inne warstwy są naliczane za godzinę.
Logic Apps
Usługa Logic Apps używa modelu bezserwerowego. Rozliczenia są obliczane na podstawie liczby akcji i wywołań łą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 w celu dostarczania komunikatów. W modelu ściągania każde żądanie sondowania jest mierzone jako akcja. Nawet jeśli ustawisz długie sondowanie na wartość domyślną 30 sekund, 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: Podstawowa, Standardowa i Premium. Tematy i subskrypcje usługi Service Bus są dostępne w warstwach Standardowa i Premium. Aby uzyskać więcej informacji, zobacz Cennik usługi Service Bus.
Event Grid
Usługa Event Grid używa modelu bezserwerowego. Rozliczenia są obliczane na podstawie liczby operacji. Operacje obejmują zdarzenia, które przechodzą do domen lub tematów, zaawansowane dopasowania, próby dostarczenia i wywołania zarządzania. Użycie do 100 000 operacji jest bezpłatne.
Aby uzyskać więcej informacji, zobacz Cennik usługi Event Grid i Optymalizacja kosztów dobrze zaprojektowanej struktury.
Sprawność operacyjna
Doskonałość operacyjna obejmuje procesy operacyjne, które wdrażają aplikację i działają w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Lista kontrolna projektu dotycząca doskonałości operacyjnej.
Podstawowa architektura referencyjna integracji przedsiębiorstwa zawiera wskazówki dotyczące wzorców DevOps, które są zgodne z filarem Well-Architected Framework Operational Excellence .
Automatyzowanie operacji odzyskiwania możliwie jak najwięcej, aby zwiększyć doskonałość operacyjną. 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. Aby zapoznać się z przykładem logiki automatyzacji w celu zainicjowania trybu failover, zobacz Przepływ trybu failover.
Efektywność wydajności
Wydajność to możliwość skalowania obciążenia w celu spełnienia wymagań, które są na nim nakładane przez użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu pod kątem wydajności.
Aby uzyskać większą skalowalność, warstwa Premium usługi Service Bus może skalować liczbę jednostek obsługi komunikatów w poziomie. Aby uzyskać więcej informacji, zobacz Service Bus Premium i Standard messaging tiers and Autoscaling feature (Warstwy obsługi komunikatów w warstwie Premium i Standardowa) oraz Autoscaling feature (Skalowanie automatyczne).
Aby uzyskać więcej zaleceń dotyczących usługi Service Bus, zobacz Najlepsze rozwiązania dotyczące poprawy wydajności przy użyciu komunikatów usługi Service Bus.
Następne kroki
- Omówienie integracji usługi Service Bus z usługą Event Grid
- Samouczek, który używa komunikatów do integrowania systemów innych niż Microsoft za pośrednictwem NServiceBus