Grundläggande Enterprise-integration i Azure

Azure Active Directory
API Management
DNS
Logic Apps
Monitor

Den här referensarkitekturen använder Azure Integration Services för att dirigera 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.

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 för att samordna arbetsflöden och Gestione API för att 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 serverdelstjänster. En mer avancerad arkitektur med köer och händelser bygger på den här grundläggande arkitekturen.

Arkitekturdiagram som visar enkel företagsintegrering

Ladda ned en Visio-fil med den här arkitekturen.

Arkitektur

Arkitekturen har följande komponenter:

  • Serverdelssystem. Till höger i diagrammet visas de olika serverdelssystem 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 vanliga tjänster. Logic Apps erbjuder hundratals anslutningsappar och du kan skapa anpassade anslutningsappar.

  • Azure Gestione API. Gestione API är en hanterad tjänst för publicering av kataloger med HTTP-API:er för att främja återanvändning och identifiering. Gestione API består av två relaterade komponenter:

    • API-gateway. API-gatewayen accepterar HTTP-anrop och dirigerar dem till serverdelen.

    • Utvecklarportal. Varje instans av Azure Gestione API 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 skapas sammansatta API:er genom att importera logikappar 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, till exempel autentisering, cors-stöd (cross-origin resource sharing) och cachelagring av svar.

  • Azure DNS. Azure DNS är en värdtjänst för DNS-domäner. Azure DNS tillhandahåller namnmatchning med hjälp av Microsoft 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 Gestione API.

  • 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 Connect). Klienter hämtar en åtkomsttoken från Azure AD och API Gateway validerar token för att auktorisera begäran. När du använder standard- eller Premium-nivån för Gestione API 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 Gestione API Basic, Standard eller Premium. Dessa nivåer erbjuder ett serviceavtal (SLA) för produktion och supporten skalas ut i Azure-regionen. Dataflödeskapaciteten för Gestione API mäts i enheter. Varje prisnivå har en maximal utskalning. Premium-nivån stöder även utskalning över flera Azure-regioner. Välj din nivå baserat på din funktionsuppsättning och den nivå av dataflöde som krävs. Mer information finns i Gestione API prissättning och Kapacitet för en Azure Gestione API-instans.

Varje Azure Gestione API-instans har ett standarddomännamn, som är en underdomän azure-api.nettill , 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 kort svarstid för ett svar, till exempel asynkrona eller halvlånga API-anrop. Om låg svarstid krävs, till exempel i ett anrop som blockerar ett användargränssnitt, använder du en annan teknik. Använd till exempel Azure Functions eller ett webb-API som distribuerats för att Служба приложений Azure. Använd Gestione API för att fronta API:et för dina API-konsumenter.

Region

För att minimera nätverksfördröjningen placerar du Gestione API 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).

Skalbarhetsöverväganden

Om du vill öka skalbarheten för Gestione API 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 Gestione API Basic, Standard och Premium i en Azure-region. Om du vill analysera användningen för din tjänst går du till menyn Mått och väljer alternativet Kapacitetsmått och skalar sedan upp eller ned efter behov. Uppgraderingen eller skalningsprocessen kan ta mellan 15 och 45 minuter att tillämpa.

Rekommendationer för skalning av en Gestione API-tjänst:

  • Överväg trafikmönster vid skalning. Kunder med mer flyktiga 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 måste du alltid belastningstesta din Gestione API-tjänst med en representativ belastning.

Med Premium-nivån kan du skala en Gestione API instans över flera Azure-regioner. Detta gör Gestione API berättigade till ett högre serviceavtal och gör att du kan etablera tjänster nära användare i flera regioner.

Den serverlösa Logic Apps-modellen 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.

Överväganden för tillgänglighet

Granska serviceavtalet för varje tjänst:

Om du distribuerar Gestione API mellan två eller flera regioner med Premium-nivå är det berättigat till ett högre serviceavtal. Se prissättningen för Gestione API.

Säkerhetskopior

Säkerhetskopiera regelbundet Gestione API konfigurationen. 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å din RTO:

  • I en haveriberedskapshändelse etablerar du en ny Gestione API instans, återställer säkerhetskopian till den nya instansen och pekar om DNS-posterna.

  • Behåll en passiv instans av Gestione API-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. Om du vill återställa tjänsten under en haveriberedskapshändelse behöver du bara återpunkta DNS-posterna. Den här metoden medför ytterligare kostnader eftersom du betalar för den passiva instansen, men minskar tiden att återställa.

För logikappar rekommenderar vi en konfiguration 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 processen för kontinuerlig integrering/kontinuerlig distribution (CI/CD). I en haveriberedskapshändelse distribuerar du mallen till en ny region.

Om du distribuerar en logikapp till en annan region uppdaterar du konfigurationen i Gestione API. Du kan uppdatera API:ets serverdelsegenskap 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.

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.

  • Access. 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 ackumulerade kostnader för resursgruppen.

  • Prisnivå för Gestione API. 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 faser och köra valideringar i varje steg innan du går vidare till nästa. På så sätt 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 omdistribuera en tidigare, lyckad distribution från distributionshistoriken. Flaggparametern --rollback-on-error i Azure CLI är ett bra exempel.

Arbetsbelastningsisolering

Placera Gestione API och enskilda logikappar i egna separata Resource Manager mallar. Genom att använda separata mallar kan du lagra resurserna i källkontrollsystemen. 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.

Gestione API stöder 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.

  • Med revisioner kan API-administratörer göra icke-bakåtkompatibla ändringar i ett API och distribuera dessa ändringar, 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 du gör ändringarna aktuella och tillgängliga för användarna. 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 Gestione API och Logic Apps. Azure Monitor tillhandahåller information baserat på de mått som konfigurerats för varje tjänst och är aktiverat som standard. Mer information finns i:

Varje tjänst har också följande alternativ:

  • För djupare analys och instrumentpaneler kan du skicka Logic Apps-loggar till Azure Log Analytics.

  • Konfigurera Azure Application Insights för Gestione API för DevOps-övervakning.

  • Gestione API 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.

Säkerhetsöverväganden

Även om den här listan inte helt beskriver alla rekommenderade säkerhetsmetoder, här är några säkerhetsöverväganden som gäller specifikt för den här arkitekturen:

  • Azure Gestione API-tjänsten har en fast offentlig IP-adress. Begränsa åtkomsten för att anropa Logic Apps-slutpunkter till endast IP-adressen för Gestione API. Mer information finns i Begränsa inkommande IP-adresser.

  • Om du vill se till att användarna har rätt åtkomstnivåer använder du rollbaserad åtkomstkontroll i Azure (Azure RBAC).

  • Skydda offentliga API-slutpunkter i Gestione API med hjälp av OAuth eller OpenID Connect. 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 OAuth 2.0 med Azure Active Directory och Gestione API.

  • Anslut till serverdelstjänster från Gestione API med hjälp av ömsesidiga certifikat.

  • Framtvinga HTTPS på Gestione API-API:er.

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 密钥保管库 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.

Gestione API 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 Gestione API principer på ett säkert sätt. Mer information finns i Använda namngivna värden i Azure Gestione API-principer.

Kostnadsöverväganden

I allmänhet använder du priskalkylatorn för Azure för att beräkna kostnaderna. Här följer några andra överväganden.

API Management

Du debiteras för alla Gestione API 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 Prissättning för Logic Apps.

Mer information finns i kostnadsavsnittet i Microsoft Azures välstrukturerade ramverk.

Nästa steg

För bättre tillförlitlighet och skalbarhet använder du meddelandeköer och händelser för att frikoppla serverdelssystemen. Det här mönstret visas i nästa artikel i den här serien.