Tato referenční architektura využívá azure Integration Services k orchestraci volání do podnikových back-endových systémů. Back-endové systémy můžou zahrnovat systémy saaS (software jako služba), služby Azure a existující webové služby ve vašem podniku.
Architektura
Stáhněte si soubor aplikace Visio s touto architekturou.
Workflow
Back-endové systémy. Na pravé straně diagramu jsou znázorněné různé back-endové systémy, které podnik nasadil nebo na které spoléhá. Tyto systémy můžou zahrnovat systémy SaaS, jiné služby Azure nebo webové služby, které zpřístupňují koncové body REST nebo SOAP.
Azure Logic Apps. V této architektuře se aplikace logiky aktivují požadavky HTTP. Můžete také vnořit pracovní postupy pro složitější orchestraci. Logic Apps používá konektory k integraci s běžně používanými službami . Logic Apps nabízí stovky konektorů a můžete vytvářet vlastní konektory.
Azure API Management. API Management se skládá ze dvou souvisejících komponent:
Brána rozhraní API. Brána rozhraní API přijímá volání HTTP a směruje je do back-endu.
Portál pro vývojáře Každá instance služby Azure API Management poskytuje přístup k portálu pro vývojáře. Tento portál poskytuje vývojářům přístup k dokumentaci a ukázkám kódu pro volání rozhraní API. Rozhraní API můžete testovat také na portálu pro vývojáře.
Azure DNS. Azure DNS poskytuje překlad názvů pomocí infrastruktury Azure. Hostováním domén v Azure můžete záznamy DNS spravovat pomocí stejných přihlašovacích údajů, rozhraní API, nástrojů a fakturace, které používáte pro ostatní služby Azure. Pokud chcete použít vlastní název domény, například contoso.com, vytvořte záznamy DNS, které mapuje vlastní název domény na IP adresu. Další informace najdete v tématu Konfigurace vlastního názvu domény ve službě API Management.
Microsoft Entra ID. Pomocí ID Microsoft Entra ověřte klienty, kteří volají bránu rozhraní API. Microsoft Entra ID podporuje protokol OpenID Connect (OIDC). Klienti získávají přístupový token z ID Microsoft Entra a služba API Gateway ověří token pro autorizaci požadavku. Pokud používáte úroveň API Management úrovně Standard nebo Premium, může id Microsoft Entra také pomoct zabezpečit přístup k portálu pro vývojáře.
Komponenty
- Integrační služby jsou kolekce služeb, které můžete použít k integraci aplikací, dat a procesů.
- Logic Apps je bezserverová platforma pro vytváření podnikových pracovních postupů, které integrují aplikace, data a služby.
- API Management je spravovaná služba pro publikování katalogů rozhraní HTTP API. Můžete ho použít k povýšení opakovaného použití a zjistitelnosti rozhraní API a k nasazení brány rozhraní API do požadavků na proxy rozhraní API.
- Azure DNS je hostitelská služba pro domény DNS.
- Microsoft Entra ID je cloudová služba pro správu identit a přístupu. Podnikoví zaměstnanci můžou pro přístup k externím a interním prostředkům používat ID Microsoft Entra.
Podrobnosti scénáře
Integrační služby jsou kolekce služeb, které můžete použít k integraci aplikací, dat a procesů pro váš podnik. Tato architektura používá dvě z těchto služeb: Logic Apps k orchestraci pracovních postupů a službu API Management k vytváření katalogů rozhraní API.
V této architektuře se složená rozhraní API vytvářejí importem aplikací logiky jako rozhraní API. Existující webové služby můžete importovat také importem specifikací OpenAPI (Swagger) nebo importem rozhraní SOAP API ze specifikací WSDL.
Brána rozhraní API pomáhá oddělit front-endové klienty od back-endu. Může například přepsat adresy URL nebo transformovat požadavky předtím, než se dostanou k back-endu. Řeší také řadu průřezových aspektů, jako je ověřování, podpora sdílení prostředků mezi zdroji (CORS) a ukládání odpovědí do mezipaměti.
Potenciální případy použití
Tato architektura je dostatečná pro základní scénáře integrace, ve kterých je pracovní postup aktivován synchronními voláními back-endových služeb. Složitější architektura využívající fronty a události vycházejí z této základní architektury.
Doporučení
Vaše konkrétní požadavky se můžou lišit od obecné architektury, která je zde uvedená. Jako výchozí bod použijte doporučení uvedená v této části.
API Management
Použijte úrovně API Management Basic, Standard nebo Premium. Tyto úrovně nabízejí smlouvu o úrovni služeb (SLA) v produkčním prostředí a podporují horizontální navýšení kapacity v rámci oblasti Azure. Kapacita propustnosti služby API Management se měří v jednotkách. Každá cenová úroveň má maximální horizontální navýšení kapacity. Úroveň Premium také podporuje horizontální navýšení kapacity napříč několika oblastmi Azure. Zvolte úroveň na základě sady funkcí a požadované propustnosti. Další informace najdete v tématu o cenách služby API Management a kapacitě instance služby Azure API Management.
Každá instance služby Azure API Management má výchozí název domény, což je například contoso.azure-api.net
subdoména azure-api.net
. Zvažte konfiguraci vlastní domény pro vaši organizaci.
Logic Apps
Služba Logic Apps funguje nejlépe ve scénářích, které nevyžadují nízkou latenci pro odpověď, jako jsou asynchronní nebo částečně dlouhotrvající volání rozhraní API. Pokud je vyžadována nízká latence, například ve volání, které blokuje uživatelské rozhraní, použijte jinou technologii. Můžete například použít Azure Functions nebo webové rozhraní API nasazené do služby Aplikace Azure Service. Pomocí služby API Management můžete rozhraní API předvést příjemcům rozhraní API.
Oblast
Pokud chcete minimalizovat latenci sítě, umístěte službu API Management a Logic Apps do stejné oblasti. Obecně zvolte oblast, která je nejblíže vašim uživatelům (nebo nejblíže k vašim back-endovým službám).
Důležité informace
Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které můžete použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.
Spolehlivost
Spolehlivost zajišťuje, aby vaše aplikace splňovala závazky, které uděláte pro své zákazníky. Další informace najdete v tématu Přehled pilíře spolehlivosti.
Projděte si smlouvu SLA pro každou službu:
Pokud nasadíte službu API Management ve dvou nebo více oblastech s úrovní Premium, bude mít nárok na vyšší smlouvu SLA. Viz ceny služby API Management.
Zálohování
Pravidelně zálohujte konfiguraci služby API Management. Uložte záložní soubory do umístění nebo oblasti Azure, které se liší od oblasti, ve které je služba nasazená. Na základě rto zvolte strategii zotavení po havárii:
V případě zotavení po havárii zřiďte novou instanci služby API Management, obnovte zálohu do nové instance a znovu nasaďte záznamy DNS.
Uchovávejte pasivní instanci služby API Management v jiné oblasti Azure. Pravidelně obnovujte zálohy do této instance, aby se synchronizovaly s aktivní službou. Pokud chcete službu obnovit během události zotavení po havárii, potřebujete znovu nasadit pouze záznamy DNS. Tento přístup způsobuje další náklady, protože platíte za pasivní instanci, ale zkracuje dobu obnovení.
V případě aplikací logiky doporučujeme použít pro zálohování a obnovení přístup založený na konfiguraci jako kódu. Vzhledem k tomu, že aplikace logiky jsou bezserverové, můžete je rychle znovu vytvořit ze šablon Azure Resource Manageru. Uložte šablony do správy zdrojového kódu a integrujte šablony s procesem kontinuální integrace nebo průběžného nasazování (CI/CD). V případě zotavení po havárii nasaďte šablonu do nové oblasti.
Pokud nasadíte aplikaci logiky do jiné oblasti, aktualizujte konfiguraci ve službě API Management. Vlastnost Back-endu rozhraní API můžete aktualizovat pomocí základního skriptu PowerShellu.
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í.
I když tento seznam zcela nepopisuje všechny osvědčené postupy zabezpečení, tady je několik aspektů zabezpečení, které se vztahují konkrétně na tuto architekturu:
Služba Azure API Management má pevnou veřejnou IP adresu. Omezte přístup pro volání koncových bodů Logic Apps jenom na IP adresu služby API Management. Další informace najdete v tématu Omezení příchozích IP adres.
Pokud chcete zajistit, aby uživatelé měli odpovídající úrovně přístupu, použijte řízení přístupu na základě role v Azure (Azure RBAC).
Zabezpečení veřejných koncových bodů rozhraní API ve službě API Management pomocí OAuth nebo OpenID Connect Pokud chcete zabezpečit veřejné koncové body rozhraní API, nakonfigurujte zprostředkovatele identity a přidejte zásady ověření webového tokenu JSON (JWT). Další informace naleznete v tématu Ochrana rozhraní API pomocí OAuth 2.0 s Microsoft Entra ID a API Management.
Připojte se k back-endovým službám ze služby API Management pomocí vzájemných certifikátů.
Vynucujte https v rozhraních API služby API Management.
Ukládání tajných kódů
Nikdy nezapisujte hesla, přístupové klíče nebo připojovací řetězce do správy zdrojového kódu. Pokud jsou tyto hodnoty povinné, zabezpečte je a nasaďte pomocí vhodných technik.
Pokud aplikace logiky vyžaduje citlivé hodnoty, které nemůžete vytvořit v rámci konektoru, uložte tyto hodnoty do služby Azure Key Vault a odkazujte na ně ze šablony Resource Manageru. Pro každé prostředí použijte parametry šablony nasazení a soubory parametrů. Další informace najdete v tématu Zabezpečení parametrů a vstupů v rámci pracovního postupu.
API Management spravuje tajné kódy pomocí objektů nazývaných pojmenované hodnoty nebo vlastnosti. Tyto objekty bezpečně ukládají hodnoty, ke kterým máte přístup prostřednictvím zásad služby API Management. Další informace najdete v tématu Použití pojmenovaných hodnot v zásadách služby Azure API Management.
Provozní dokonalost
Efektivita provozu zahrnuje provozní procesy, které nasazují aplikaci a udržují ji spuštěnou v produkčním prostředí. Další informace najdete v tématu Přehled pilíře efektivity provozu.
DevOps
Vytvořte samostatné skupiny prostředků pro produkční, vývojové a testovací prostředí. Samostatné skupiny prostředků usnadňují správu nasazení, odstraňování testovacích nasazení a přiřazování přístupových práv.
Při přiřazování prostředků ke skupinám prostředků zvažte tyto faktory:
Životní cyklus. Prostředky se stejným životním cyklem umístěte do stejné skupiny prostředků.
Přístup. Pokud chcete použít zásady přístupu k prostředkům ve skupině, můžete použít řízení přístupu na základě role v Azure (Azure RBAC).
Fakturace. Můžete zobrazit souhrnné náklady pro skupinu prostředků.
Cenová úroveň služby API Management Pro vývojová a testovací prostředí použijte úroveň Developer. Pokud chcete minimalizovat náklady v předprodukční fázi, nasaďte repliku produkčního prostředí, spusťte testy a pak repliku vypněte.
Nasazení
Pomocí šablon Azure Resource Manageru nasaďte prostředky Azure a postupujte podle procesu infrastruktury jako kódu (IaC). Šablony usnadňují automatizaci nasazení pomocí Azure DevOps Services nebo jiných řešení CI/CD.
Příprava
Než přejdete k další fázi, zvažte přípravu úloh, což znamená nasazení do různých fází a spouštění ověření v každé fázi. Pokud použijete tento přístup, můžete odesílat aktualizace do produkčních prostředí vysoce řízeným způsobem a minimalizovat neočekávané problémy s nasazením. Blue-green nasazení a kanárské verze jsou doporučené strategie nasazení pro aktualizaci živých produkčních prostředí. Zvažte také dobrou strategii vrácení zpět, pokud nasazení selže. Můžete například automaticky nasadit dřívější úspěšné nasazení z historie nasazení. Dobrým --rollback-on-error
příkladem je parametr příznaku v Azure CLI.
Izolace úloh
Vložte službu API Management a všechny jednotlivé aplikace logiky do vlastních samostatných šablon Resource Manageru. Pomocí samostatných šablon můžete prostředky ukládat do systémů správy zdrojového kódu. Šablony můžete nasadit společně nebo jednotlivě jako součást procesu CI/CD.
Verze
Pokaždé, když změníte konfiguraci aplikace logiky nebo nasadíte aktualizaci prostřednictvím šablony Resource Manageru, Azure uchovává kopii této verze a uchovává všechny verze, které mají historii spuštění. Tyto verze můžete použít ke sledování historických změn nebo zvýšení úrovně verze jako aktuální konfigurace aplikace logiky. Můžete například vrátit aplikaci logiky do předchozí verze.
API Management podporuje dva odlišné, ale doplňkové koncepty správy verzí:
Verze umožňují uživatelům rozhraní API zvolit verzi rozhraní API na základě svých potřeb, například verze 1, v2, beta nebo produkční verze.
Revize umožňují správcům rozhraní API provádět změny v rozhraní API a nasazovat tyto změny spolu s protokolem změn, který informuje uživatele rozhraní API o změnách.
Revizi můžete provést ve vývojovém prostředí a nasadit ji v jiných prostředích pomocí šablon Resource Manageru. Další informace najdete v tématu Publikování více verzí rozhraní API.
Revize můžete použít také k otestování rozhraní API před tím, než provedete aktuální změny a zpřístupníte je uživatelům. Tato metoda se ale nedoporučuje pro zátěžové testování ani integrační testování. Místo toho použijte samostatná testovací nebo předprodukční prostředí.
Diagnostika a monitorování
Azure Monitor slouží k provoznímu monitorování ve službě API Management i Logic Apps. Azure Monitor poskytuje informace na základě metrik nakonfigurovaných pro každou službu a je ve výchozím nastavení povolená. Další informace naleznete v tématu:
- Monitorování publikovaných rozhraní API
- Monitorování stavu, nastavení protokolování diagnostiky a zapnutí upozornění pro Azure Logic Apps
Každá služba má také tyto možnosti:
Pokud chcete provádět hlubší analýzu a řídicí panely, odešlete do Azure Log Analytics protokoly Logic Apps.
Pro monitorování DevOps nakonfigurujte Aplikace Azure lication Insights pro API Management.
API Management podporuje šablonu řešení Power BI pro vlastní analýzy rozhraní API. Tuto šablonu řešení můžete použít k vytvoření vlastního analytického řešení. Power BI zpřístupní sestavy pro firemní uživatele.
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 zvýšit škálovatelnost služby API Management, přidejte tam, kde je to vhodné, zásady ukládání do mezipaměti. Ukládání do mezipaměti také pomáhá snížit zatížení back-endových služeb.
Pokud chcete nabídnout větší kapacitu, můžete škálovat úrovně Azure API Management Basic, Standard a Premium v oblasti Azure. Pokud chcete analyzovat využití vaší služby, vyberte v nabídce Metriky kapacitu a podle potřeby vertikálně navyšte nebo vertikálně navyšte kapacitu. Proces upgradu nebo škálování může trvat 15 až 45 minut.
Doporučení pro škálování služby API Management:
Při škálování zvažte vzory provozu. Zákazníci s více nestálými vzory provozu potřebují větší kapacitu.
Konzistentní kapacita větší než 66 % může znamenat potřebu vertikálního navýšení kapacity.
Konzistentní kapacita, která je nižší než 20 %, může znamenat příležitost vertikálně snížit kapacitu.
Před povolením zatížení v produkčním prostředí vždy otestujte službu API Management reprezentativním zatížením.
S úrovní Premium můžete škálovat instanci služby API Management napříč několika oblastmi Azure. Díky tomu má služba API Management nárok na vyšší smlouvu SLA a umožňuje zřizovat služby v blízkosti uživatelů ve více oblastech.
Bezserverový model Logic Apps znamená, že správci nemusí plánovat škálovatelnost služeb. Služba se automaticky škáluje tak, aby splňovala poptávku.
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ě snížit kapacitu nebo nakonfigurovat automatické škálování.
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.
Další informace najdete v části věnované nákladům v tématu Dobře navržená architektura Microsoft Azure.
Další kroky
Související prostředky
Kvůli větší spolehlivosti a škálovatelnosti používejte fronty zpráv a události k oddělení back-endových systémů. Tato architektura je znázorněna v dalším článku v této sérii:
Možná vás zajímají také tyto články z Centra architektury Azure: