Tato referenční architektura používá k orchestraci volání do podnikových back-endových systémů službu Azure Integration Services . 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.
Azure Integration Services je kolekce služeb pro integraci aplikací a dat. Tato architektura používá dvě z těchto služeb: Logic Apps k orchestraci pracovních postupů a API Management k vytváření katalogů rozhraní API. Tato architektura je dostatečná pro scénáře základní integrace, kde se pracovní postup aktivuje synchronním voláním back-endových služeb. Na této základní architektuře je stavět sofistikovanější architektura využívající fronty a události .
Stáhněte si soubor aplikace Visio s touto architekturou.
Architektura
Tato architektura se skládá z následujících komponent:
Back-endové systémy. Na pravé straně diagramu jsou vidět různé back-endové systémy, které podnik nasadil nebo na které spoléhá. Může se jednat o systémy SaaS, další služby Azure nebo webové služby, které zveřejňují koncové body REST nebo SOAP.
Azure Logic Apps. Logic Apps je bezserverová platforma pro vytváření podnikových pracovních postupů, které integrují aplikace, data a služby. V této architektuře se aplikace logiky aktivují požadavky HTTP. Pracovní postupy můžete také vnořit 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 je spravovaná služba pro publikování katalogů rozhraní HTTP API, která podporuje opakované použití a zjistitelnost. 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 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 také testovat na portálu pro vývojáře.
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, než se dostanou do 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.
Azure DNS. Azure DNS je hostitelská služba pro domény DNS. Azure DNS poskytuje překlad názvů pomocí infrastruktury Microsoft Azure. Hostováním domén v Azure můžete spravovat záznamy DNS 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 název vlastní domény na IP adresu. Další informace najdete v tématu Konfigurace vlastního názvu domény v API Management.
Azure Active Directory (Azure AD) Pomocí Azure AD ověřte klienty, kteří volají bránu rozhraní API. Azure AD podporuje protokol OpenID Connect (OIDC). Klienti získají přístupový token z Azure AD a brána rozhraní API ověří token pro autorizaci požadavku. Při použití úrovně Standard nebo Premium API Management mohou Azure AD také zabezpečit přístup k portálu pro vývojáře.
Doporučení
Vaše konkrétní požadavky se můžou lišit od zde uvedené obecné architektury. 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í produkční smlouvu o úrovni služeb (SLA) a podporují horizontální navýšení kapacity v rámci oblasti Azure. Kapacita propustnosti pro 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ě vaší sady funkcí a úrovně požadované propustnosti. Další informace najdete v tématu ceny API Management a Kapacita instance Azure API Management.
Každá instance Azure API Management má výchozí název domény, což je subdoména azure-api.net
, například 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 se vyžaduje nízká latence, například při 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 Azure App Service. Pomocí API Management předáte rozhraní API uživatelům rozhraní API.
Oblast
Pokud chcete minimalizovat latenci sítě, umístěte API Management a Logic Apps do stejné oblasti. Obecně zvolte oblast, která je nejblíže vašim uživatelům (nebo nejblíže vašim back-endovým službám).
Aspekty zabezpečení
Pokud chcete zvýšit škálovatelnost 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 azure API Management úrovně Basic, Standard a Premium v oblasti Azure. Pokud chcete analyzovat využití vaší služby, v nabídce Metriky vyberte možnost Metrika kapacity a pak podle potřeby vertikálně navyšte nebo vertikálně sniž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 vzorce provozu. Zákazníci s 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 pod 20 %, může značit příležitost ke snížení kapacity.
Před povolením zatížení v produkčním prostředí vždy službu API Management otestujte reprezentativním zatížením.
S úrovní Premium můžete škálovat instanci API Management napříč několika oblastmi Azure. Díky tomu API Management nárok na vyšší smlouvu SLA a umožňuje vám zřizovat služby v blízkosti uživatelů v několika oblastech.
Model bez serveru Logic Apps znamená, že správci nemusí plánovat škálovatelnost služeb. Služba se automaticky škáluje podle poptávky.
Aspekty dostupnosti
Projděte si smlouvu SLA pro jednotlivé služby:
Pokud nasadíte API Management ve dvou nebo více oblastech s úrovní Premium, má nárok na vyšší smlouvu SLA. Viz ceny API Management.
Zálohování
Pravidelně zálohujte konfiguraci API Management. Soubory záloh můžete ukládat v 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 API Management, obnovte zálohu do nové instance a přepointujte záznamy DNS.
Uchovávejte pasivní instanci služby API Management v jiné oblasti Azure. Pravidelně obnovujte zálohy do této instance, aby byly synchronizované s aktivní službou. K obnovení služby během události zotavení po havárii stačí převést pouze záznamy DNS. S tímto přístupem se účtují další náklady, protože platíte za pasivní instanci, ale zkracuje se doba potřebná k obnovení.
Pro aplikace logiky doporučujeme přístup založený na konfiguraci jako kódu pro zálohování a obnovení. Vzhledem k tomu, že aplikace logiky jsou bezserverové, můžete je rychle znovu vytvořit ze šablon Azure Resource Manager. Uložte šablony do správy zdrojového kódu a integrujte je 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 v API Management. Vlastnost back-endu rozhraní API můžete aktualizovat pomocí základního skriptu PowerShellu.
Důležité informace o 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ů.
Access. Pokud chcete použít zásady přístupu na prostředky 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ň pro 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 Manager 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
Zvažte přípravu úloh, což znamená nasazení do různých fází a spuštění ověření v každé fázi, než přejdete k další fázi. tímto způsobem můžete nabízet aktualizace produkčních prostředí vysoce kontrolovaným způsobem a minimalizovat neočekávané problémy s nasazením. Modrozelené nasazení a kanárkové verze jsou doporučené strategie nasazení pro aktualizaci živého produkčního prostředí. Zvažte také dobrou strategii vrácení zpět pro situaci, kdy nasazení selže. Můžete například automaticky znovu nasadit dřívější úspěšné nasazení z historie nasazení. Dobrým příkladem je parametr příznaku --rollback-on-error v Azure CLI.
Izolace úloh
Umístěte API Management a všechny jednotlivé aplikace logiky do samostatných Resource Manager šablon. 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 Manager, Azure uchovává kopii této verze a 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 zpět na předchozí verzi.
API Management podporuje dva odlišné, ale doplňující se koncepty správy verzí:
Verze umožňují uživatelům rozhraní API zvolit verzi rozhraní API podle svých potřeb, například v1, v2, beta nebo produkčního prostředí.
Revize umožňují správcům rozhraní API provádět zásadní změny v rozhraní API a tyto změny nasazovat spolu s protokolem změn, který uživatele rozhraní API informuje o změnách.
Můžete provést revizi ve vývojovém prostředí a tuto změnu nasadit do jiných prostředí pomocí šablon Resource Manager. Další informace najdete v tématu Publikování více verzí rozhraní API.
Revize můžete také použít k otestování rozhraní API před provedením změn aktuálních a přístupných uživatelům. Tato metoda se ale nedoporučuje pro zátěžové testování nebo testování integrace. Místo toho použijte samostatná testovací nebo předprodukční prostředí.
Diagnostika a monitorování
Azure Monitor použijte k provoznímu monitorování v API Management i Logic Apps. Azure Monitor poskytuje informace na základě metrik nakonfigurovaných pro jednotlivé služby 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ést hlubší analýzu a řídicí panely, odešlete protokoly Logic Apps do Azure Log Analytics.
V případě monitorování DevOps nakonfigurujte Aplikace Azure Insights pro API Management.
API Management podporuje šablonu řešení Power BI pro vlastní analýzu rozhraní API. Tuto šablonu řešení můžete použít k vytvoření vlastního analytického řešení. Firemním uživatelům Power BI zpřístupňuje sestavy.
Důležité informace o zabezpečení
I když tento seznam nepopisuje úplně všechny osvědčené postupy zabezpečení, tady je několik aspektů zabezpečení, které platí konkrétně pro 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 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 v API Management pomocí OAuth nebo OpenID Connect. Pokud chcete zabezpečit koncové body veřejného rozhraní API, nakonfigurujte zprostředkovatele identity a přidejte zásadu ověřování JSON Web Token (JWT). Další informace najdete v tématu Ochrana rozhraní API pomocí OAuth 2.0 s Azure Active Directory a API Management.
Připojte se k back-endovým službám z API Management pomocí vzájemných certifikátů.
Vynucujte https v rozhraních API 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í odpovídajících technik.
Pokud aplikace logiky vyžaduje citlivé hodnoty, které nemůžete vytvořit v rámci konektoru, uložte tyto hodnoty v Azure Key Vault a odkazujte na ně ze šablony Resource Manager. 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ů označovaných jako pojmenované hodnoty nebo vlastnosti. Tyto objekty bezpečně ukládají hodnoty, ke kterým máte přístup prostřednictvím zásad API Management. Další informace najdete v tématu Použití pojmenovaných hodnot v zásadách Azure API Management.
Důležité informace o nákladech
Obecně platí, že k odhadu nákladů se používá cenová kalkulačka Azure . Tady jsou některé další aspekty.
API Management
Účtují se vám poplatky za všechny spuštěné instance API Management. Pokud jste vertikálně navýšili kapacitu a nepotřebujete tuto úroveň výkonu po celou dobu, vertikálně snižte kapacitu ručně nebo nakonfigurujte automatické škálování.
Logic Apps
Logic Apps používá model bez serveru . Fakturace se počítá na základě provedení akce a konektoru. Další informace najdete v tématu Logic Apps – ceny.
Další informace najdete v části věnované nákladům v tématu Dobře navržená architektura Microsoft Azure.
Další kroky
Pro zajištění větší spolehlivosti a škálovatelnosti oddělte back-endové systémy pomocí front zpráv a událostí. Tento model je uveden v dalším článku této série.