Podniková integrace s využitím zprostředkovatele zpráv a událostí

Azure Event Grid
Azure Service Bus

Tato ukázková architektura je založená na architektuře základní podnikové integrace . Rozšiřuje tuto architekturu tak, aby ukázala, jak integrovat podnikové back-endové systémy pomocí zprostředkovatelů zpráv a událostí k oddělení služeb za účelem větší škálovatelnosti a spolehlivosti. Ujistěte se, že jste obeznámeni s návrhem a komponentami použitými v základní architektuře integrace. Poskytuje základní informace o základních součástech této architektury, které zde nebudou reprodukovány.

Architektura

Back-endové systémy odkazované v tomto návrhu můžou zahrnovat systémy saaS (software jako služba), služby Azure a stávající webové služby ve vašem podniku.

Reference architecture for enterprise integration using queues and events

Stáhněte si soubor aplikace Visio s touto architekturou.

Workflow

Zde uvedená architektura vychází z jednodušší architektury, která je znázorněna v základní podnikové integraci. Tato architektura používá Logic Apps k orchestraci pracovních postupů přímo s back-endovými systémy a službou API Management k vytváření katalogů rozhraní API.

Tato verze architektury přidává dvě komponenty, které pomáhají systému lépe spolehlivá a škálovatelná:

Asynchronní komunikace pomocí zprostředkovatele zpráv poskytuje následující výhody při provádění přímých synchronních volání back-endových služeb:

  • Poskytuje vyrovnávání zatížení pro zpracování nárůstů zatížení v úlohách pomocí vzoru vyrovnávání zatížení založeného na frontě.
  • Poskytuje vysílání zpráv více příjemcům pomocí vzoru Vydavatel-Odběratel.
  • Spolehlivě sleduje průběh dlouhotrvajících pracovních postupů, které zahrnují více kroků nebo více aplikací.
  • Pomáhá oddělit aplikace.
  • Integruje se se stávajícími systémy založenými na zprávách.
  • Umožňuje práci zařadit do fronty, pokud back-endový systém není k dispozici.

Event Grid umožňuje různým komponentám v systému reagovat na události, které probíhají, a nespoléhat se na dotazování nebo naplánované úkoly. Stejně jako u fronty zpráv a témat pomáhá oddělit aplikace a služby. Aplikace nebo služba může publikovat události a všichni zájemci budou upozorněni. Nové předplatitele je možné přidat bez aktualizace odesílatele.

Řada služeb Azure podporuje odesílání událostí do Event Gridu. Aplikace logiky může například naslouchat události při přidání nových souborů do úložiště objektů blob. Tento model umožňuje reaktivní pracovní postupy, kdy nahrávání souboru nebo vložení zprávy do fronty spustí řadu procesů. Procesy se můžou spouštět paralelně nebo v určité sekvenci.

Doporučení

Doporučení popsaná v základní podnikové integraci platí pro tuto architekturu.

Service Bus

Service Bus má dva režimy doručování, vyžádání nebo vysílané nabízení. V modelu vyžádání se příjemce průběžně dotazuje na nové zprávy. Dotazování může být neefektivní, zejména pokud máte mnoho front, které každý obdrží několik zpráv, nebo pokud mezi zprávami existuje mnoho času. V modelu proxied push odešle Service Bus událost prostřednictvím event Gridu, když se objeví nové zprávy. Příjemce se přihlásí k odběru události. Když se událost aktivuje, příjemce stáhne další dávku zpráv ze služby Service Bus.

Při vytváření aplikace logiky pro využívání zpráv služby Service Bus doporučujeme použít model proxied push s integrací služby Event Grid. Často je nákladově efektivnější, protože aplikace logiky nemusí dotazovat Service Bus. Další informace najdete v přehledu integrace služby Azure Service Bus do služby Event Grid. V současné době se pro oznámení Event Gridu vyžaduje úroveň Premium služby Service Bus.

Pro přístup ke skupině zpráv použijte Nástroj PeekLock . Když použijete Nástroj PeekLock, aplikace logiky může před dokončením nebo opuštěním zprávy provést kroky k ověření každé zprávy. Tento přístup chrání před nechtěnou ztrátou zpráv.

Event Grid

Když se aktivuje trigger Event Gridu, znamená to, že došlo alespoň k jedné události. Když například aplikace logiky získá triggery Event Gridu pro zprávu služby Service Bus, mělo by se předpokládat, že ke zpracování může být k dispozici několik zpráv.

Požadavky

Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které je možné použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.

Spolehlivost

Spolehlivost zajišťuje, že vaše aplikace může splňovat závazky, které uděláte pro vaše zákazníky. Další informace najdete v tématu Přehled pilíře spolehlivosti.

  • Microsoft Entra ID: Microsoft Entra ID je globálně distribuovaná a vysoce dostupná platforma SaaS. Informace o garantované dostupnosti najdete ve sla .
  • API Management: Službu API Management je možné nasadit v několika konfiguracích s vysokou dostupností podle obchodních požadavků a tolerance nákladů. Úplný přehled možností najdete v tématu Zajištění dostupnosti a spolehlivosti služby API Management. Informace o garantované dostupnosti najdete také ve sla .
  • Logic Apps: Geograficky redundantní úložiště je dostupné pro Logic Apps na úrovni plánu Consumption. Informace o návrhu řešení provozní kontinuity a zotavení po havárii najdete v doprovodných materiálech. Informace o garantované dostupnosti najdete také ve sla .
  • Event Grid: Definice prostředků Event Gridu pro témata, systémová témata, domény a odběry událostí a data událostí se automaticky replikují napříč třemi zónami dostupnosti (pokud jsou k dispozici) v oblasti. Pokud dojde k selhání v jedné ze zón dostupnosti, prostředky Event Gridu automaticky převezme služby při selhání do jiné zóny dostupnosti bez zásahu člověka. Pokyny k návrhu řešení zotavení po havárii pro převzetí služeb při selhání do jiné oblasti najdete v tématu Geografické zotavení po havárii napříč oblastmi . Informace o garantované dostupnosti najdete také ve sla .
  • Service Bus: Service Bus Premium podporuje geografické zotavení po havárii a Zóny dostupnosti. Replikace je k dispozici pro Service Bus Standard. Informace o garantované dostupnosti najdete také ve sla .

Zabezpečení

Zabezpečení poskytuje záruky proti záměrným útokům a zneužití cenných dat a systémů. Další informace najdete v tématu Přehled pilíře zabezpečení.

K zabezpečení služby Service Bus použijte ověřování Microsoft Entra spárované se spravovanými identitami. Integrace Microsoft Entra pro prostředky služby Service Bus poskytuje řízení přístupu na základě role v Azure (RBAC) pro jemně odstupňované řízení přístupu klienta k prostředkům. Azure RBAC můžete použít k udělení oprávnění k objektu zabezpečení, což může být uživatel, skupina nebo instanční objekt aplikace (v tomto případě spravovaná identita).

Pokud není ID Microsoft Entra k dispozici, můžete použít sdílený přístupový podpis (SAS). Pomocí ověřování SAS můžete udělit uživateli přístup k prostředkům služby Service Bus s určitými právy.

Pokud potřebujete zveřejnit frontu nebo téma služby Service Bus jako koncový bod HTTP, například k publikování nových zpráv, pomocí služby API Management zabezpečte frontu frontou koncového bodu. Koncový bod pak můžete zabezpečit pomocí certifikátů nebo ověřování OAuth podle potřeby. Nejjednodušší způsob, jak zabezpečit koncový bod, je použití aplikace logiky s triggerem požadavku a odpovědi HTTP jako zprostředkující.

Služba Event Grid zabezpečuje doručování událostí prostřednictvím ověřovacího kódu. Pokud k využívání události používáte Logic Apps, provede se ověření automaticky. Další informace najdete v tématu Zabezpečení a ověřování služby Event Grid.

Zabezpečení sítě

Zabezpečení sítě by mělo být v rámci návrhu považováno za zabezpečení sítě.

Optimalizace nákladů

Optimalizace nákladů se zabývá způsoby, jak snížit zbytečné výdaje a zlepšit efektivitu provozu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.

K odhadu nákladů použijte cenovou kalkulačku Azure. Tady je několik dalších aspektů.

API Management

Za všechny instance služby API Management se vám budou účtovat poplatky, když jsou spuštěné. Pokud jste vertikálně navýšili kapacitu a nepotřebujete tuto úroveň výkonu po celou dobu, ručně vertikálně navyšte kapacitu nebo nakonfigurujte automatické škálování.

U úloh s nízkým využitím zvažte úroveň consumption, což je nízkonákladová bezserverová možnost. Úroveň Consumption se účtuje podle volání rozhraní API, zatímco ostatní úrovně se účtují za hodinu.

Logic Apps

Logic Apps používá bezserverový model. Fakturace se počítá na základě akce a spuštění konektoru. Další informace najdete na stránce s cenami služby Logic Apps.

Fronty, témata a odběry služby Service Bus

Fronty a předplatná služby Service Bus podporují pro doručování zpráv jak modely proxied push, tak pull. V modelu vyžádání změn se každý požadavek na dotazování měří jako akce. I při dlouhém dotazování na 30 sekund (výchozí) můžou být náklady vysoké. Pokud nepotřebujete doručení zpráv v reálném čase, zvažte použití modelu proxied push.

Fronty služby Service Bus jsou zahrnuté ve všech úrovních (úrovně Basic, Standard a Premium). Témata a odběry služby Service Bus jsou k dispozici na úrovních Standard a Premium. Další informace najdete v tématu s cenami služby Azure Service Bus.

Event Grid

Event Grid používá bezserverový model. Fakturace se počítá na základě počtu operací (provádění událostí). Mezi operace patří příchozí přenos událostí do domén nebo témat, rozšířené porovnávání, pokusy o doručení a volání správy. Využití až 100 000 operací je bezplatné.

Další informace najdete v tématu Ceny služby Event Grid.

Další informace najdete v části věnované nákladům v tématu Dobře navržená architektura Microsoft Azure.

Efektivita provozu

Referenční architektura základní podnikové integrace poskytuje pokyny k vzorům DevOps, které odpovídají pilíři Efektivita provozu dobře navržená architektura.

Automatizace operací obnovení co nejvíce je nedílnou součástí efektivity provozu. S ohledem na automatizaci můžete kombinovat monitorování protokolů Azure se službou Azure Automation a automatizovat převzetí služeb při selhání prostředků služby Service Bus. Příklad logiky automatizace pro zahájení převzetí služeb při selhání najdete v diagramu v dokumentaci k toku převzetí služeb při selhání.

Efektivita výkonu

Efektivita výkonu je schopnost úlohy škálovat se tak, aby efektivním způsobem splňovala požadavky, které na ni kladou uživatelé. Další informace najdete v tématu Přehled pilíře efektivity výkonu.

Pokud chcete dosáhnout vyšší škálovatelnosti, může úroveň Service Bus Premium škálovat počet jednotek zasílání zpráv. Informace o výhodách úrovně Premium a Premium najdete v dokumentaci k úrovním zasílání zpráv služby Service Bus Premium a Standard. Informace o konfiguraci automatického škálování jednotek zasílání zpráv najdete také v dokumentaci k funkci automatického škálování.

Další doporučení pro Service Bus najdete v osvědčených postupech pro vylepšení výkonu pomocí zasílání zpráv služby Service Bus.

Další kroky

Další informace najdete v dokumentaci ke službě Service Bus: