Den här referensarkitekturen använder Azure Integration Services för att samordna anrop till företagets serverdelssystem. Serverdelssystemen kan innehålla SaaS-system (programvara som en tjänst), Azure-tjänster och befintliga webbtjänster i företaget.
Arkitektur
Ladda ned en Visio-fil med den här arkitekturen.
Arbetsflöde
Serverdelssystem. Till höger i diagrammet visas de olika serverdelssystem som företaget har distribuerat eller förlitar sig på. Dessa system kan omfatta SaaS-system, andra Azure-tjänster eller webbtjänster som exponerar REST- eller SOAP-slutpunkter.
Azure Logic Apps. I den här arkitekturen utlöses logikappar 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 vanliga tjänster. Logic Apps erbjuder hundratals anslutningsappar och du kan skapa anpassade anslutningsappar.
Azure API Management. API Management består av två relaterade komponenter:
API-gateway. API-gatewayen accepterar HTTP-anrop och dirigerar dem till serverdelen.
Utvecklarportal. 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.
Azure DNS. Azure DNS tillhandahåller namnmatchning med hjälp av Azure-infrastrukturen. 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.
Microsoft Entra-ID. Använd Microsoft Entra-ID för att autentisera klienter som anropar API-gatewayen. Microsoft Entra ID stöder OIDC-protokollet (OpenID Connect). Klienter hämtar en åtkomsttoken från Microsoft Entra-ID och API Gateway validerar token för att auktorisera begäran. Om du använder nivån Standard eller Premium för API Management kan Microsoft Entra-ID också hjälpa till att skydda åtkomsten till utvecklarportalen.
Komponenter
- Integration Services är en samling tjänster som du kan använda för att integrera program, data och processer.
- Logic Apps är en serverlös plattform för att skapa företagsarbetsflöden som integrerar program, data och tjänster.
- API Management är en hanterad tjänst för publicering av kataloger med HTTP-API:er. Du kan använda den för att främja återanvändning och identifiering av dina API:er och för att distribuera en API-gateway till proxy-API-begäranden.
- Azure DNS är en värdtjänst för DNS-domäner.
- Microsoft Entra ID är en molnbaserad identitets- och åtkomsthanteringstjänst. Företagsanställda kan använda Microsoft Entra-ID för att komma åt externa och interna resurser.
Information om scenario
Integration Services är en samling tjänster som du kan använda för att integrera program, data och processer för ditt företag. Den här arkitekturen använder två av dessa tjänster: Logic Apps för att samordna arbetsflöden och API Management för att skapa kataloger med API:er.
I den här arkitekturen skapas 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 klientdelsklienter från serverdelen. Den kan till exempel skriva om URL:er eller transformera begäranden innan de når serverdelen. Den hanterar också många övergripande problem som autentisering, cors-stöd (cross-origin resource sharing) och cachelagring av svar.
Potentiella användningsfall
Den här arkitekturen räcker för grundläggande integreringsscenarier där arbetsflödet utlöses av synkrona anrop till serverdelstjänster. En mer avancerad arkitektur med hjälp av köer och händelser bygger på den här grundläggande arkitekturen.
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. De här nivåerna erbjuder ett serviceavtal för produktion (SLA) 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. Premium-nivån har också stöd för utskalning i flera Azure-regioner. Välj din nivå baserat på din funktionsuppsättning och nivån på det dataflöde som krävs. Mer information finns i PRISSÄTTNING för API Management och Kapacitet för en Azure API Management-instans.
Varje Azure API Management-instans har ett standarddomännamn, som är en underdomän azure-api.net
för , 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 halvlånga API-anrop. Om det krävs låg svarstid, 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 för dina API-konsumenter.
Region
För att minimera nätverksfördröjningen placerar du 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 serverdelstjänster).
Att tänka på
Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som du kan använda för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.
Tillförlitlighet
Tillförlitlighet säkerställer att ditt program kan uppfylla de åtaganden du gör gentemot dina kunder. Mer information finns i Översikt över tillförlitlighetspelare.
Granska serviceavtalet för varje tjänst:
Om du distribuerar API Management i två eller flera regioner med Premium-nivå är det berättigat till ett högre serviceavtal. Se PRISSÄTTNING FÖR API Management.
Säkerhetskopior
Säkerhetskopiera regelbundet din API Management-konfiguration. Lagra dina säkerhetskopieringsfiler 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å din RTO:
I en haveriberedskapshändelse etablerar du en ny API Management-instans, återställer säkerhetskopian till den nya instansen och pekar om DNS-posterna.
Behåll en passiv instans av API Management-tjänsten 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. För att återställa tjänsten under en haveriberedskapshändelse behöver du bara återberätta DNS-posterna. Den här metoden medför ytterligare kostnader eftersom du betalar för den passiva instansen, men det minskar återställningstiden.
För logikappar rekommenderar vi en konfigurations-som-kod-metod för säkerhetskopiering och återställning. Eftersom logikappar är serverlösa kan du snabbt återskapa dem från Azure Resource Manager-mallar. Spara mallarna i källkontrollen, integrera mallarna med din CI/CD-process (kontinuerlig integrering/kontinuerlig distribution). I en haveriberedskapshä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 serverdelsegenskap med hjälp av ett grundläggande PowerShell-skript.
Säkerhet
Säkerhet ger garantier mot avsiktliga attacker och missbruk av dina värdefulla data och system. Mer information finns i Översikt över säkerhetspelare.
Även om den här listan inte helt beskriver alla metodtips för säkerhet, här är några säkerhetsöverväganden som gäller specifikt för den här arkitekturen:
Azure API Management-tjänsten har en fast offentlig IP-adress. Begränsa åtkomsten för att anropa 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 Connect. För att 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 OAuth 2.0 med Microsoft Entra ID och API Management.
Anslut till serverdelstjänster från API Management med hjälp av ömsesidiga certifikat.
Framtvinga HTTPS på API Management-API:erna.
Lagra hemligheter
Lägg aldrig in lösenord, åtkomstnycklar eller anslutningssträngar i källkontrollen. Om dessa värden krävs kan du skydda och distribuera dessa värden med hjälp av lämpliga tekniker.
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 för distributionsmallar och parameterfiler för varje miljö. Mer information finns i Skydda 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 som du kan komma åt via API Management-principer på ett säkert sätt. Mer information finns i Använda namngivna värden i Azure API Management-principer.
Driftsäkerhet
Driftskvalitet omfattar de driftsprocesser som distribuerar ett program och håller det igång i produktion. Mer information finns i Översikt över grundpelare för driftskvalitet.
DevOps
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.
När du tilldelar resurser till resursgrupper bör du tänka på följande faktorer:
Livscykel. I allmänhet ska du placera de resurser som har samma livscykel i samma resursgrupp.
Åtkomst. 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 samlade kostnader 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-mallar för att distribuera Azure-resurserna och följ IaC-processen (infrastruktur som kod). Mallar gör det enklare att automatisera distributioner med hjälp av Azure DevOps Services eller andra CI/CD-lösningar.
Mellanlagring
Överväg att mellanlagra dina arbetsbelastningar, vilket innebär att distribuera till olika steg och köra valideringar i varje steg innan du går vidare till nästa. Om du använder den här metoden kan du push-överföra uppdateringar till dina produktionsmiljöer på ett mycket kontrollerat sätt och minimera oväntade distributionsproblem. Blågrön distribution och canary-versioner är rekommenderade distributionsstrategier för uppdatering av liveproduktionsmiljö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 enskilda logikappar i sina 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 konfigurationen för en logikapp 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 har stöd för två distinkta men kompletterande versionsbegrepp:
Med versioner kan API-konsumenter välja en API-version baserat på deras behov, till exempel v1, v2, beta eller produktion.
Omarbetningar gör det möjligt för API-administratörer att göra icke-inbrytningsä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 den ä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 du gör ändringarna 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 tillhandahåller information baserat på de mått som konfigurerats för varje tjänst och är aktiverad 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 stöder Power BI-lösningsmallen 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 gör Power BI rapporter tillgängliga.
Prestandaeffektivitet
Prestandaeffektivitet handlar om att effektivt skala arbetsbelastningen baserat på användarnas behov. Mer information finns i Översikt över grundpelare för prestandaeffektivitet.
Om du vill öka skalbarheten för API Management lägger du till cachelagringsprinciper där det är lämpligt. Cachelagring bidrar också till att minska belastningen på serverdelstjä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 för din tjänst väljer du Kapacitetsmått på menyn Må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 skalning av 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 bör du alltid belastningstesta DIN API Management-tjänst med en representativ belastning.
Med Premium-nivån kan du skala en API Management-instans i flera Azure-regioner. Detta gör API Management berättigat till ett högre serviceavtal och gör att du kan etablera tjänster nära användare i flera regioner.
Logic Apps serverlösa modell innebär att administratörer inte behöver planera för tjänstens skalbarhet. Tjänsten skalas automatiskt för att möta efterfrågan.
Kostnadsoptimering
Normalt beräknar du kostnader med hjälp av Azures priskalkylator. Här följer 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. Fakturering beräknas baserat på åtgärds- och anslutningskörning. Mer information finns i avsnittet med priser för Logic Apps.
Mer information finns i kostnadsavsnittet i Microsoft Azures välstrukturerade ramverk.
Nästa steg
Relaterade resurser
För bättre tillförlitlighet och skalbarhet använder du meddelandeköer och händelser för att frikoppla serverdelssystemen. Den här arkitekturen visas i nästa artikel i den här serien:
Du kan också vara intresserad av dessa artiklar från Azure Architecture Center: