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
application. Aplikace je klient, který po ověření pomocí Microsoft Entra volá bránu rozhraní API. Aplikace může být webová aplikace, mobilní aplikace nebo jakýkoli jiný klient, který může provádět požadavky HTTP.
Microsoft Entra ID. Slouží k ověření klientské aplikace. Klientská aplikace získá přístupový token z ID Microsoft Entra a zahrne ho do požadavku na bránu rozhraní API.
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 z klientské aplikace, ověří token z ID Microsoft Entra a předá požadavek back-endové službě. Brána rozhraní API může také transformovat požadavky a odpovědi a odpovědi do mezipaměti.
Portál pro vývojáře Vývojáři používají portál pro vývojáře ke zjišťování rozhraní API a interakci s nimi. Portál pro vývojáře je možné přizpůsobit tak, aby odpovídal brandingu vaší organizace.
Azure Logic Apps. Aplikace logiky se používají k orchestraci volání back-endových služeb. Aplikace logiky se dají aktivovat různými událostmi a můžou volat různé služby. V tomto řešení se Služba Logic Apps používá k volání back-endových služeb a poskytování snadného připojení prostřednictvím konektorů snížení potřeby vlastního kódu.
back-endové služby. Back-endové služby můžou být libovolná služba nebo obchodní aplikace, jako je databáze, webová služba nebo aplikace SaaS. Back-endové služby je možné hostovat v Azure nebo místně.
Komponenty
-
Integrační služby jsou kolekce služeb, které můžete použít k integraci aplikací, dat a procesů. V tomto řešení se používají dvě z těchto služeb: Logic Apps a API Management. Logic Apps se používá k usnadnění integrace založené na zprávách mezi systémy a usnadnění připojení ke konektorům. API Management se používá k poskytování fasády pro back-endové služby, což umožňuje konzistentní rozhraní pro klienty, se kterými můžou pracovat.
- Logic Apps je bezserverová platforma pro vytváření podnikových pracovních postupů, které integrují aplikace, data a služby. V tomto řešení se Logic Apps používá k orchestraci volání back-endových služeb a zajištění snadného připojení prostřednictvím konektorů, což snižuje potřebu vlastního kódu.
- 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. V tomto řešení poskytuje služba API Management další možnosti, jako je omezování rychlosti, ověřování a ukládání do mezipaměti do back-endových služeb. Kromě toho api Management poskytuje vývojářský portál pro klienty ke zjišťování a interakci s rozhraními API.
- Azure DNS je hostitelská služba pro domény DNS. Azure DNS hostuje veřejné záznamy DNS pro službu API Management. To umožňuje klientům přeložit název DNS na IP adresu služby API Management.
- 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. Zde se id Entra používá k zabezpečení služby API Management pomocí OAuth 2.0 a portálu pro vývojáře pomocí Entra B2C.
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) produkčního 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.
Pro toto řešení se nedoporučuje úroveň Consumption služby API Management, protože nepodporuje portál pro vývojáře, který je pro tuto architekturu nutný. Úroveň Developer je určená speciálně pro neprodukční prostředí a nedoporučuje se pro produkční úlohy. Matici funkcí, která podrobně popisuje rozdíly mezi úrovněmi, najdete zde.
Každá instance služby Azure API Management má výchozí název domény, což je například azure-api.net
subdoména contoso.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, že vaše aplikace může splňovat závazky, které uděláte pro vaše zákazníky. Další informace naleznete v tématu Kontrolní seznam pro kontrolu spolehlivosti.
Projděte si smlouvy SLA pro každou službu, tady
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 naleznete v tématu Kontrolní seznam pro kontrolu návrhu prozabezpeč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řipojení 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 pracuje s citlivými daty, najdete podrobné pokyny v tématu Zabezpečený přístup a data pro pracovní postupy v Azure Logic Apps.
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.
Optimalizace nákladů
Optimalizacenákladůch Další informace naleznete v tématu Kontrolní seznam pro kontrolu návrhu proOptimalizace 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.
Efektivita provozu
Efektivita provozu se zabývá provozními procesy, které nasazují aplikaci a udržují ji spuštěnou v produkčním prostředí. Další informace naleznete v tématu kontrolní seznam pro kontrolu 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 vaší úlohy škálovat tak, aby splňovala požadavky, které na ni mají uživatelé efektivním způsobem. Další informace naleznete v tématu Kontrola návrhu kontrolní seznam pro zvýšení 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.
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: