Podniková integrace s využitím front a událostí

Event Grid
Service Bus

Tato referenční architektura integruje systémy back-end Enterprise, používá fronty zpráv a události k oddělení služeb pro zajištění vyšší škálovatelnosti a spolehlivosti.This reference architecture integrates enterprise backend systems, using message queues and events to decouple services for greater scalability and reliability. Systémy back-end můžou zahrnovat systémy SaaS (software jako služba), služby Azure a stávající webové služby ve vašem podniku.The backend systems may include software as a service (SaaS) systems, Azure services, and existing web services in your enterprise.

Referenční architektura pro podnikovou integraci pomocí front a událostí

ArchitekturaArchitecture

Zde uvedená architektura je sestavená na jednodušší architektuře, která se zobrazuje v základní podnikové integraci.The architecture shown here builds on a simpler architecture that is shown in Basic enterprise integration. Tato architektura používá Logic Apps k orchestraci pracovních postupů a API Management k vytváření katalogů rozhraní API.That architecture uses Logic Apps to orchestrate workflows and API Management to create catalogs of APIs.

Tato verze architektury přidává dvě komponenty, které pomůžou zajistit spolehlivější a škálovatelný systém:This version of the architecture adds two components that help make the system more reliable and scalable:

Asynchronní komunikace pomocí zprostředkovatele zpráv poskytuje řadu výhod pro přímé synchronní volání služby back-end:Asynchronous communication using a message broker provides a number of advantages over making direct, synchronous calls to backend services:

  • Poskytuje vyrovnávání zatížení pro zpracování shluků v úlohách pomocí modelu vyrovnávání zatížení založeného na frontách.Provides load-leveling to handle bursts in workloads, using the Queue-Based Load Leveling pattern.
  • Spolehlivě sleduje průběh dlouho spuštěných pracovních postupů, které zahrnují více kroků nebo více aplikací.Reliably tracks the progress of long-running workflows that involve multiple steps or multiple applications.
  • Pomáhá oddělit aplikace.Helps to decouple applications.
  • Se integruje s existujícími systémy založenými na zprávách.Integrates with existing message-based systems.
  • Umožňuje zařazení do fronty, když back-end systém není k dispozici.Allows work to be queued when a backend system is not available.

Event Grid umožňuje různým součástem v systému reagovat na události při jejich vzniku a nespoléhat se na cyklické dotazování nebo naplánované úlohy.Event Grid enables the various components in the system to react to events as they happen, rather than relying on polling or scheduled tasks. Stejně jako u fronty zpráv pomáhá nadělit aplikace a služby.As with a message queue, it helps decouple applications and services. Aplikace nebo služba může publikovat události a všechny dotčené předplatitele budou upozorněni.An application or service can publish events, and any interested subscribers will be notified. Nové předplatitele je možné přidat bez aktualizace odesilatele.New subscribers can be added without updating the sender.

Řada služeb Azure podporuje odesílání událostí do Event Grid.Many Azure services support sending events to Event Grid. Aplikace logiky může například naslouchat události při přidání nových souborů do úložiště objektů BLOB.For example, a logic app can listen for an event when new files are added to a blob store. Tento model umožňuje reaktivním pracovním postupům, kdy se nahrává soubor nebo zpráva do fronty, vychází z řady procesů.This pattern enables reactive workflows, where uploading a file or putting a message on a queue kicks off a series of processes. Procesy se můžou provádět paralelně nebo v určité sekvenci.The processes might be executed in parallel or in a specific sequence.

DoporučeníRecommendations

Doporučení popsaná v části Basic Enterprise Integration se vztahují na tuto architekturu.The recommendations described in Basic enterprise integration apply to this architecture. Platí taky následující doporučení:The following recommendations also apply:

Service BusService Bus

Service Bus má dva režimy doručení, vyžádání nebo vložení.Service Bus has two delivery modes, pull or push. V modelu pro vyžádání obsahu se příjemce průběžně dotazuje na nové zprávy.In the pull model, the receiver continuously polls for new messages. Cyklické dotazování může být neefektivní, zejména pokud máte mnoho front, z nichž každý přijímá několik zpráv, nebo pokud mezi zprávami existuje hodně času.Polling can be inefficient, especially if you have many queues that each receive a few messages, or if there a lot of time between messages. V modelu push Service Bus odesílá událost prostřednictvím Event Grid, pokud jsou k dispozici nové zprávy.In the push model, Service Bus sends an event through Event Grid when there are new messages. Přijímač se přihlásí k odběru události.The receiver subscribes to the event. Po aktivaci události příjemce vyžádá další dávku zpráv od Service Bus.When the event is triggered, the receiver pulls the next batch of messages from Service Bus.

Když vytvoříte aplikaci logiky, která bude využívat zprávy Service Bus, doporučujeme použít model push s Event Grid integrací.When you create a logic app to consume Service Bus messages, we recommend using the push model with Event Grid integration. Je často efektivnější, protože aplikace logiky nemusí Service Bus dotazovat.It's often more cost efficient, because the logic app doesn't need to poll Service Bus. Další informace najdete v tématu Azure Service Bus a Event Grid Integration Overview.For more information, see Azure Service Bus to Event Grid integration overview. V současné době je pro Event Grid oznámení nutná Service Bus úroveň Premium .Currently, Service Bus Premium tier is required for Event Grid notifications.

Pro přístup ke skupině zpráv použijte PeekLock .Use PeekLock for accessing a group of messages. Když používáte PeekLock, může aplikace logiky provést kroky k ověření každé zprávy před dokončením nebo opuštěním zprávy.When you use PeekLock, the logic app can perform steps to validate each message before completing or abandoning the message. Tento přístup chrání před náhodnou ztrátou zpráv.This approach protects against accidental message loss.

Event GridEvent Grid

Když se aktivuje aktivační událost Event Grid, znamená to, že došlo k nejméně jedné události.When an Event Grid trigger fires, it means at least one event happened. Například když aplikace logiky získá Event Grid triggery pro Service Bus zprávu, měla by předpokládat, že může být k dispozici několik zpráv pro zpracování.For example, when a logic app gets an Event Grid triggers for a Service Bus message, it should assume that several messages might be available to process.

Aspekty zabezpečeníScalability considerations

Pro zajištění vyšší škálovatelnosti Service Bus úrovně Premium může škálovat počet jednotek zasílání zpráv.To achieve higher scalability, the Service Bus Premium tier can scale out the number of messaging units. Konfigurace úrovně Premium můžou mít jednu, dvě nebo čtyři jednotky pro zasílání zpráv.Premium tier configurations can have one, two, or four messaging units. Další informace o škálování Service Bus najdete v tématu osvědčené postupy pro zlepšení výkonu pomocí zasílání zpráv Service Bus.For more information about scaling Service Bus, see Best practices for performance improvements by using Service Bus Messaging.

Aspekty dostupnostiAvailability considerations

Projděte si smlouvu SLA pro každou službu:Review the SLA for each service:

Pokud chcete povolit převzetí služeb při selhání, pokud dojde k závažnému výpadku, zvažte implementaci geografického zotavení po havárii v Service Bus Premium.To enable failover if a serious outage occurs, consider implementing geo-disaster recovery in Service Bus Premium. Další informace najdete v tématu Azure Service Busho geografického zotavení po havárii.For more information, see Azure Service Bus geo-disaster recovery.

Důležité informace o DevOpsDevOps considerations

V tématu Referenční architektura základních podniková integrace se podívejte na informace o DevOps.See DevOps considerations in Basic Enterprise Integration reference architecture

Důležité informace o zabezpečeníSecurity considerations

K zabezpečení Service Bus použijte sdílený přístupový podpis (SAS).To secure Service Bus, use shared access signature (SAS). Pomocí ověřování SASmůžete uživateli udělit přístup k Service Bus prostředkům s konkrétními právy.You can grant a user access to Service Bus resources with specific rights by using SAS authentication. Další informace najdete v tématu Service Bus ověřování a autorizaci.For more information, see Service Bus authentication and authorization.

Pokud potřebujete zveřejnit Service Bus frontu jako koncový bod HTTP, například pro odeslání nových zpráv, pomocí API Management Zabezpečte frontu tím, že zadáte front-end.If you need to expose a Service Bus queue as an HTTP endpoint, for example, to post new messages, use API Management to secure the queue by fronting the endpoint. Potom můžete koncový bod v případě potřeby zabezpečit pomocí certifikátů nebo ověřování OAuth.You can then secure the endpoint with certificates or OAuth authentication as appropriate. Nejjednodušší způsob, jak zajistit, aby byl koncový bod zabezpečený, je použití aplikace logiky s triggerem požadavku a odpovědi HTTP jako prostředník.The easiest way to secure an endpoint is using a logic app with an HTTP request/response trigger as an intermediary.

Služba Event Grid zabezpečuje doručování událostí prostřednictvím ověřovacího kódu.The Event Grid service secures event delivery through a validation code. Použijete-li Logic Apps ke spotřebě události, provede se ověření automaticky.If you use Logic Apps to consume the event, validation is automatically performed. Další informace najdete v tématu Event Grid zabezpečení a ověřování.For more information, see Event Grid security and authentication.

Požadavky na nákladyCost Considerations

Obecně platí, že pomocí cenové kalkulačky Azure můžete odhadnout náklady.In general, use the Azure pricing calculator to estimate costs. Tady jsou některé další okolnosti.Here are some other considerations.

API ManagementAPI Management

Budou se vám účtovat všechny instance API Management, když jsou spuštěné.You are charged for all API Management instances when they are running. Pokud jste nastavili horizontální navýšení kapacity a nepotřebujete tuto úroveň výkonu po celou dobu, proveďte ruční horizontální navýšení kapacity nebo konfigurace automatického škálování.If you have scaled up and don't need that level of performance all the time, manually scale down or configure autoscaling.

Logic AppsLogic Apps

Logic Apps používá model bez serveru .Logic Apps uses a serverless model. Fakturace se počítá na základě akce a spuštění konektoru.Billing is calculated based on action and connector execution. Další informace najdete v tématu Logic Apps ceny.For more information, see Logic Apps pricing.

Fronty služby Service BusService Bus queues

Fronty Service Bus podporují nabízené i vyžádané modely pro doručování zpráv.Service Bus queues support both push and pull models for delivering messages. V modelu pro vyžádání obsahu se každá žádost o cyklické dotazování měří jako akce.In the pull model, every polling request is metered as an action. I v případě dlouhého cyklického dotazování ve 30 sekundách (výchozí) můžou být náklady vysoké.Even with long polling at 30 secs (default), cost can be high. Pokud nepotřebujete doručování zpráv v reálném čase, zvažte použití modelu push.Unless you need real-time delivery of messages, consider using the push model.

Fronty Service Bus jsou zahrnuté ve všech úrovních (úrovně Basic, Standard a Premium).Service Bus queues are included in all tiers (Basic, standard, and premium tiers). Další informace najdete v tématu Azure Service Bus ceny.For more information, see Azure Service Bus pricing.

Event GridEvent Grid

Event Grid používá model bez serveru.Event Grid uses a serverless model. Fakturace se počítá na základě počtu operací (spuštění událostí).Billing is calculated based on the number of operations (event executions). Operace zahrnují příchozí události do domén nebo témat, rozšířené shody, pokusy o doručení a volání správy.Operations include ingress of events to Domains or Topics, advanced matches, delivery attempts, and management calls. Využití až 100 000 operací je zdarma.Usage of up to 100,000 operations is free of charge.

Další informace najdete v tématu Event Grid ceny.For more information, see Event Grid pricing.

Další informace najdete v části věnované nákladům v tématu Dobře navržená architektura Microsoft Azure.For more information, see the cost section in Microsoft Azure Well-Architected Framework.