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
Application. Programmet är en klient som anropar API-gatewayen efter autentisering med Microsoft Entra. Programmet kan vara en webbapp, mobilapp eller någon annan klient som kan göra HTTP-begäranden.
Microsoft Entra-ID. Används för att autentisera klientprogrammet. Klientprogrammet hämtar en åtkomsttoken från Microsoft Entra-ID och inkluderar den i begäran till API-gatewayen.
Azure API Management. API Management består av två relaterade komponenter:
API-gateway. API-gatewayen accepterar HTTP-anrop från klientprogrammet, validerar token från Microsoft Entra-ID och vidarebefordrar begäran till serverdelstjänsten. API-gatewayen kan också transformera begäranden och svar samt cachesvar.
Utvecklarportal. utvecklarportalen används av utvecklare för att identifiera och interagera med API:erna. Utvecklarportalen kan anpassas så att den matchar organisationens varumärke.
Azure Logic Apps. Logikappar används för att samordna anropen till serverdelstjänsterna. Logikappar kan utlösas av en mängd olika händelser och kan anropa en mängd olika tjänster. I den här lösningen används Logic Apps för att anropa serverdelstjänsterna och tillhandahålla enkel anslutning via anslutningsappar vilket minskar behovet av anpassad kod.
Serverdelstjänster. Serverdelstjänsterna kan vara valfri tjänst eller branschspecifika program, till exempel en databas, en webbtjänst eller ett SaaS-program. Serverdelstjänsterna kan finnas i Azure eller lokalt.
Komponenter
-
Integration Services är en samling tjänster som du kan använda för att integrera program, data och processer. I den här lösningen används två av dessa tjänster: Logic Apps och API Management. Logic Apps används för att underlätta meddelandebaserad integrering mellan system och underlätta anslutningen till anslutningsappar. API Management används för att tillhandahålla en fasad för serverdelstjänsterna, vilket möjliggör ett konsekvent gränssnitt för klienter att interagera med.
- 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 lösningen används Logic Apps för att samordna anropen till serverdelstjänsterna och tillhandahålla enkel anslutning via anslutningsappar, vilket minskar behovet av anpassad kod.
- 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. I den här lösningen tillhandahåller API Management ytterligare funktioner som hastighetsbegränsning, autentisering och cachelagring till serverdelstjänsterna. DESSUTOM tillhandahåller API Management en utvecklarportal där klienter kan identifiera och interagera med API:erna.
- Azure DNS är en värdtjänst för DNS-domäner. Azure DNS är värd för de offentliga DNS-posterna för API Management-tjänsten. Detta gör att klienter kan matcha DNS-namnet till IP-adressen för API Management-tjänsten.
- 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. Här används Entra-ID för att skydda API Management-tjänsten med hjälp av OAuth 2.0 och utvecklarportalen med hjälp av Entra B2C.
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. 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. Premium-nivån stöder även 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.
Api Management-förbrukningsnivån rekommenderas inte för den här lösningen eftersom den inte stöder utvecklarportalen som krävs för den här arkitekturen. Utvecklarnivån är specifikt för icke-produktionsmiljöer och rekommenderas inte för produktionsarbetsbelastningar. En funktionsmatris som beskriver skillnaderna mellan nivåerna finns här.
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 checklistan för Designgranskning för tillförlitlighet.
Granska serviceavtalen för varje tjänst här
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 checklistan för Designgranskning för Security.
Ä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 fungerar med känsliga data kan du läsa Säker åtkomst och data för arbetsflöden i Azure Logic Apps för detaljerad vägledning.
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.
Kostnadsoptimering
Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i checklistan Designgranskning för 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.
Operational Excellence
Operational Excellence omfattar de driftsprocesser som distribuerar ett program och håller det igång i produktion. Mer information finns i checklistan för Designgranskning för Operational Excellence.
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 är arbetsbelastningens förmåga att skala för att uppfylla användarnas krav på ett effektivt sätt. Mer information finns i checklistan för Designgranskning 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.
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: