Den här referensarkitekturen använder Azure Integration Services för att dirigera anrop till företagets backend-system. Backend-systemen kan innehålla SaaS-system (programvara som en tjänst), Azure-tjänster och befintliga webbtjänster i företaget.
Azure Integration Services är en samling tjänster för att integrera program och data. Den här arkitekturen använder två av dessa tjänster: Logic Apps dirigera arbetsflöden och skapa API Management skapa kataloger med API:er. Den här arkitekturen är tillräcklig för grundläggande integreringsscenarier där arbetsflödet utlöses av synkrona anrop till backend-tjänster. En mer avancerad arkitektur med köer och händelser bygger på den här grundläggande arkitekturen.

Arkitektur
Arkitekturen har följande komponenter:
Backend-system. Till höger i diagrammet visas de olika backend-system som företaget har distribuerat eller förlitar sig på. Dessa kan omfatta SaaS-system, andra Azure-tjänster eller webbtjänster som exponerar REST- eller SOAP-slutpunkter.
Azure Logic Apps. Logic Apps är en serverlös plattform för att skapa företagsarbetsflöden som integrerar program, data och tjänster. I den här arkitekturen utlöses logikapparna av HTTP-begäranden. Du kan också kapsla arbetsflöden för mer komplex orkestrering. Logic Apps använder anslutningsappar för att integrera med tjänster som används ofta. Logic Apps erbjuder hundratals anslutningsappar och du kan skapa anpassade anslutningsappar.
Azure API Management. API Management är en hanterad tjänst för publicering av kataloger med HTTP-API:er för att främja återanvändning och identifiering. API Management består av två relaterade komponenter:
API-gateway. API-gatewayen accepterar HTTP-anrop och dirigerar dem till backend.
Utvecklarportalen. Varje instans av Azure API Management ger åtkomst till en utvecklarportal. Den här portalen ger dina utvecklare åtkomst till dokumentation och kodexempel för att anropa API:erna. Du kan också testa API:er i utvecklarportalen.
I den här arkitekturen byggs sammansatta API:er genom att logikappar importeras som API:er. Du kan också importera befintliga webbtjänster genom att importera OpenAPI-specifikationer (Swagger) eller importera SOAP-API:er från WSDL-specifikationer.
API-gatewayen hjälper till att frikoppla klientklienter från klientsidan. Den kan till exempel skriva om URL:er eller transformera begäranden innan de når backend. Den hanterar också många övergripande frågor, till exempel autentisering, cor-origin-resursdelning (CORS) och cachelagring av svar.
Azure DNS. Azure DNS är en värdtjänst för DNS-domäner. Azure DNS namnmatchning med hjälp av Microsoft Azure infrastruktur. Genom att vara värd för dina domäner i Azure kan du hantera dina DNS-poster med samma autentiseringsuppgifter, API:er, verktyg och fakturering som du använder för dina andra Azure-tjänster. Om du vill använda ett anpassat domännamn, till exempel contoso.com, skapar du DNS-poster som mappar det anpassade domännamnet till IP-adressen. Mer information finns i Konfigurera ett anpassat domännamn i API Management.
Azure Active Directory (Azure AD). Använd Azure AD för att autentisera klienter som anropar API-gatewayen. Azure AD stöder OIDC-protokollet (OpenID Anslut). Klienter hämtar en åtkomsttoken från Azure AD och API Gateway verifierar token för att auktorisera begäran. När du använder standard- Premium på API Management kan Azure AD även skydda åtkomsten till utvecklarportalen.
Rekommendationer
Dina specifika krav kan skilja sig från den allmänna arkitektur som visas här. Använd rekommendationerna i det här avsnittet som en utgångspunkt.
API Management
Använd nivåerna API Management Basic, Standard eller Premium. Dessa nivåer erbjuder ett serviceavtal (SLA) för produktion och stöd för utskalning i Azure-regionen. Dataflödeskapaciteten för API Management mäts i enheter. Varje prisnivå har en maximal utskalning. Den Premium har även stöd för utskalning över flera Azure-regioner. Välj nivå baserat på din funktionsuppsättning och nivån för det dataflöde som krävs. Mer information finns i API Management ochKapacitet för en Azure API Management instans.
Varje Azure API Management instans har ett standarddomännamn, som är en underdomän azure-api.net till , till exempel contoso.azure-api.net . Överväg att konfigurera en anpassad domän för din organisation.
Logic Apps
Logic Apps fungerar bäst i scenarier som inte kräver låg svarstid för ett svar, till exempel asynkrona eller delvis långvariga API-anrop. Om kort svarstid krävs, till exempel i ett anrop som blockerar ett användargränssnitt, använder du en annan teknik. Du kan till exempel använda Azure Functions eller ett webb-API som distribuerats till Azure App Service. Använd API Management för att fronta API:et till dina API-konsumenter.
Region
Du kan minimera nätverksfördröjningen genom API Management och Logic Apps i samma region. I allmänhet väljer du den region som är närmast dina användare (eller närmast dina backend-tjänster).
Resursgruppen har också en region. Den här regionen anger var distributionsmetadata ska lagras och var distributionsmallen ska köras. Du kan förbättra tillgängligheten under distributionen genom att placera resursgruppen och resurserna i samma region.
Skalbarhetsöverväganden
Om du vill öka skalbarheten för API Management lägger du till cachelagringsprinciper där det är lämpligt. Cachelagring också till att minska belastningen på backend-tjänster.
Om du vill erbjuda större kapacitet kan du skala ut Nivåerna Azure API Management Basic, Standard och Premium i en Azure-region. Om du vill analysera användningen av din tjänst går du till menyn Mått och väljer alternativet Kapacitetsmått och skalar sedan upp eller ned efter behov. Uppgraderings- eller skalningsprocessen kan ta mellan 15 och 45 minuter att tillämpa.
Rekommendationer för att skala en API Management-tjänst:
Överväg trafikmönster vid skalning. Kunder med mer instabila trafikmönster behöver mer kapacitet.
Konsekvent kapacitet som är större än 66 % kan tyda på ett behov av att skala upp.
Konsekvent kapacitet som är under 20 % kan tyda på en möjlighet att skala ned.
Innan du aktiverar belastningen i produktion ska du alltid belastningstesta API Management tjänst med en representativ belastning.
Med Premium kan du skala en instans API Management flera Azure-regioner. Detta gör API Management berättigade till ett högre serviceavtal och gör att du kan etablera tjänster nära användare i flera regioner.
Den Logic Apps serverlösa modellen innebär att administratörer inte behöver planera för tjänstskalbarhet. Tjänsten skalas automatiskt för att möta efterfrågan.
Överväganden för tillgänglighet
Granska serviceavtalet för varje tjänst:
Om du distribuerar API Management över två eller flera regioner Premium nivå är den berättigad till ett högre serviceavtal. Se API Management prissättning.
Säkerhetskopior
Gör regelbundet en API Management konfiguration. Lagra dina säkerhetskopierade filer på en plats eller azure-region som skiljer sig från den region där tjänsten distribueras. Välj en strategi för haveriberedskap baserat på ditt RTO:
I en haveriberedskapshändelse etablerar du en API Management instans, återställer säkerhetskopian till den nya instansen och gör om DNS-posterna.
Behåll en passiv instans av API Management i en annan Azure-region. Återställ regelbundet säkerhetskopior till den instansen för att hålla den synkroniserad med den aktiva tjänsten. Om du vill återställa tjänsten under en haveriberedskapshändelse behöver du bara återbegjäna DNS-posterna. Den här metoden medför ytterligare kostnader eftersom du betalar för den passiva instansen, men minskar tiden för återställning.
För logikappar rekommenderar vi en konfigurations-som-kod-metod för att backa upp och återställa. Eftersom logikappar är serverlösa kan du snabbt återskapa dem från Azure Resource Manager mallar. Spara mallarna i källkontrollen och integrera mallarna med processen för kontinuerlig integrering/kontinuerlig distribution (CI/CD). I en katastrofåterställningshändelse distribuerar du mallen till en ny region.
Om du distribuerar en logikapp till en annan region uppdaterar du konfigurationen i API Management. Du kan uppdatera API:ets backend-egenskap med hjälp av ett grundläggande PowerShell-skript.
DevOps-överväganden
Skapa separata resursgrupper för produktions-, utvecklings- och testmiljöer. Med separata resursgrupper blir det enklare att hantera distributioner, ta bort testdistributioner och tilldela åtkomsträttigheter.
Tänk på följande när du tilldelar resurser till resursgrupper:
Livscykel. I allmänhet ska du placera de resurser som har samma livscykel i samma resursgrupp.
Åtkomst till. Om du vill tillämpa åtkomstprinciper på resurserna i en grupp kan du använda rollbaserad åtkomstkontroll i Azure (Azure RBAC).
Fakturering. Du kan visa sammanslagningskostnader för resursgruppen.
Prisnivå för API Management. Använd Developer-nivån för utvecklings- och testmiljöer. Du kan minimera kostnaderna under förproduktion genom att distribuera en replik av produktionsmiljön, köra dina tester och sedan stänga av den.
Distribution
Använd Azure Resource Manager för att distribuera Azure-resurser genom att följa IaC-processen (infrastruktur som). Mallar gör det enklare att automatisera distributioner med hjälp av Azure DevOps Serviceseller andra CI/CD-lösningar.
Mellanlagring
Överväg att mellanlagra dina arbetsbelastningar, vilket innebär att distribuera till olika faser och köra valideringar i varje steg innan du går vidare till nästa steg. på så sätt kan du skicka uppdateringar till dina produktionsmiljöer på ett mycket kontrollerat sätt och minimera oväntade distributionsproblem. Blå-grön distribution ochCanary-versioner är rekommenderade distributionsstrategier för uppdatering av live-produktionsmiljöer. Överväg också att ha en bra återställningsstrategi för när en distribution misslyckas. Du kan till exempel automatiskt distribuera om en tidigare, lyckad distribution från distributionshistoriken. Flaggparametern --rollback-on-error i Azure CLI är ett bra exempel.
Arbetsbelastningsisolering
Placera API Management och eventuella enskilda logikappar i egna separata Resource Manager mallar. Genom att använda separata mallar kan du lagra resurserna i källkontrollsystem. Du kan distribuera mallarna tillsammans eller individuellt som en del av en CI/CD-process.
Versioner
Varje gång du ändrar en logikapps konfiguration eller distribuerar en uppdatering via en Resource Manager-mall behåller Azure en kopia av den versionen och behåller alla versioner som har en körningshistorik. Du kan använda dessa versioner för att spåra historiska ändringar eller höja upp en version som logikappens aktuella konfiguration. Du kan till exempel återställa en logikapp till en tidigare version.
API Management två distinkta men kompletterande versionshanteringsbegrepp:
Med versioner kan API-konsumenter välja en API-version baserat på deras behov, till exempel v1, v2, beta eller produktion.
Revideringar gör att API-administratörer kan göra icke-större ändringar i ett API och distribuera ändringarna, tillsammans med en ändringslogg för att informera API-konsumenter om ändringarna.
Du kan göra en revision i en utvecklingsmiljö och distribuera ändringen i andra miljöer med hjälp av Resource Manager mallar. Mer information finns i Publicera flera versioner av ditt API
Du kan också använda revisioner för att testa ett API innan ändringarna görs aktuella och tillgängliga för användare. Den här metoden rekommenderas dock inte för belastningstestning eller integreringstestning. Använd separata test- eller förproduktionsmiljöer i stället.
Diagnostik och övervakning
Använd Azure Monitor för driftövervakning i både API Management och Logic Apps. Azure Monitor innehåller information baserat på de mått som konfigurerats för varje tjänst och är aktiverat som standard. Mer information finns i:
- Övervaka publicerade API:er
- Övervaka status, konfigurera diagnostikloggning och aktivera aviseringar för Azure Logic Apps
Varje tjänst har också följande alternativ:
För djupare analys och instrumentpaneler skickar du Logic Apps loggar till Azure Log Analytics.
För DevOps-övervakning konfigurerar du Azure Application Insights för API Management.
API Management har stöd för Power BI för anpassad API-analys. Du kan använda den här lösningsmallen för att skapa en egen analyslösning. För företagsanvändare kan Power BI göra rapporter tillgängliga.
Säkerhetsöverväganden
Även om den här listan inte helt beskriver alla metodtips för säkerhet finns det några säkerhetsaspekter som gäller särskilt för den här arkitekturen:
Azure API Management-tjänsten har en fast offentlig IP-adress. Begränsa åtkomsten för Logic Apps slutpunkter till endast IP-adressen för API Management. Mer information finns i Begränsa inkommande IP-adresser.
För att se till att användarna har rätt åtkomstnivåer använder du rollbaserad åtkomstkontroll i Azure (Azure RBAC).
Skydda offentliga API-slutpunkter i API Management med hjälp av OAuth eller OpenID Anslut. Om du vill skydda offentliga API-slutpunkter konfigurerar du en identitetsprovider och lägger till en JSON Web Token -valideringsprincip (JWT). Mer information finns i Skydda ett API med hjälp av OAuth 2.0 med Azure Active Directory och API Management.
Anslut till backend-tjänster från API Management med hjälp av ömsesidiga certifikat.
Framtvinga HTTPS på API Management-API:er.
Lagra hemligheter
Lägg aldrig in lösenord, åtkomstnycklar eller anslutningssträngar i källkontrollen. Om dessa värden krävs ska du skydda och distribuera dessa värden med hjälp av lämpliga metoder.
Om en logikapp kräver känsliga värden som du inte kan skapa i en anslutningsapp lagrar du dessa värden i Azure Key Vault och refererar till dem från en Resource Manager mall. Använd parametrar och parameterfiler för distributionsmallen för varje miljö. Mer information finns i Säkra parametrar och indata i ett arbetsflöde.
API Management hanterar hemligheter med hjälp av objekt som kallas namngivna värden eller egenskaper. Dessa objekt lagrar värden på ett säkert sätt som du kan komma åt API Management principer. Mer information finns i Använda namngivna värden i Azure API Management principer.
Kostnadsöverväganden
I allmänhet använder du priskalkylatorn för Azure för att beräkna kostnader. Här är några andra överväganden.
API Management
Du debiteras för alla API Management instanser när de körs. Om du har skalat upp och inte behöver den prestandanivån hela tiden skalar du ned eller konfigurerar autoskalning manuellt.
Logic Apps
Logic Apps använder en serverlös modell. Faktureringen beräknas baserat på åtgärds- och anslutningskörning. Mer information finns i Logic Apps prissättning.
Mer information finns i kostnadsavsnittet i Microsoft Azures välstrukturerade ramverk.
Nästa steg
För bättre tillförlitlighet och skalbarhet kan du använda meddelandeköer och händelser för att frikoppla backend-systemen. Det här mönstret visas i nästa referensarkitektur i den här serien: Enterprise-integrering med meddelandeköer och händelser.