Redigera

Dela via


Automatisera API-distributioner med APIOps

Azure API Management
Azure DevOps
Azure Pipelines

APIOps är en metod som tillämpar begreppen GitOps och DevOps på API-distribution. Precis som DevOps hjälper APIOps teammedlemmar att enkelt göra ändringar och distribuera dem på ett iterativt och automatiserat sätt. Den här arkitekturen visar hur du kan förbättra hela API-livscykeln och API-kvaliteten med hjälp av APIOps.

Arkitektur

Diagram över arkitekturen för automatiserade API-distributioner med APIOps i Azure.

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

Arbetsflöde

  1. API-operatorer kör extraktor-pipelinen för att synkronisera Git-lagringsplatsen med API Management-instansen och fylla i Git-lagringsplatsen med API Management-objekt i det format som krävs.

  2. Om en API-ändring identifieras i API Management-instansen skapas en pull-begäran (PR) för operatörer att granska. Operatorerna sammanfogar ändringarna till Git-lagringsplatsen.

  3. API-utvecklare klonar Git-lagringsplatsen, skapar en gren och skapar API-definitioner med hjälp av OpenAPI-specifikationen eller verktygen som de väljer.

  4. Om en utvecklare skickar ändringar till lagringsplatsen skapas en PR för granskning.

  5. Pr kan godkännas eller granskas automatiskt, beroende på vilken kontrollnivå som krävs.

  6. När ändringarna har godkänts och sammanfogats distribuerar publiceringspipelinen de senaste ändringarna till API Management-instansen.

  7. API-operatorer skapar och ändrar API Management-principer, diagnostik, produkter och andra relevanta objekt och genomför sedan ändringarna.

  8. Ändringarna granskas och de sammanfogas efter godkännandet.

  9. När ändringarna har sammanfogats distribuerar publiceringspipelinen ändringarna med hjälp av API-definitionsprocessen.

Komponenter

  • Azure API Management skapar konsekventa, moderna API-gatewayer för serverdelstjänster. Förutom routning av API-anrop till serverdelar verifierar den här plattformen även autentiseringsuppgifter, framtvingar användningskvoter och loggar metadata.

  • Azure DevOps är en tjänst för att hantera din utvecklingslivscykel från slutpunkt till slutpunkt, inklusive planering och projekthantering, kodhantering och fortsatt generering och lansering.

  • Azure Pipelines möjliggör kontinuerlig integrering (CI) och kontinuerlig leverans (CD) för att testa och skapa din kod och skicka den till alla mål.

  • Azure Repos är en uppsättning versionskontrollverktyg, inklusive standard-Git, som du kan använda för att hantera din kod.

Alternativ

Den här lösningen använder Azure Repos för att tillhandahålla Git-funktioner och Azure Pipelines tillhandahåller pipelines. Du kan använda alla jämförbara tekniker.

Information om scenario

APIOps använder versionskontroll för att hantera API:er och skapa en spårningslogg med ändringar i API:er, principer och åtgärder.

API-utvecklare som använder en APIOps-metod granskar och granskar API:er tidigare och oftare, fångar och löser avvikelser från API-standarder snabbare för att förbättra specifikationerna och API-kvaliteten. Ju fler API:er som du skapar och distribuerar med en APIOps-metod, desto större konsekvens mellan API:er.

Den här APIOps-arkitekturen använder Azure API Management som API-hanteringsplattform. Azure DevOps organiserar API-hantering. Azure Repos tillhandahåller Git-funktioner och Azure Pipelines skapar CI/CD-pipelinen.

Potentiella användningsfall

  • Alla organisationer som utvecklar och hanterar API:er
  • Strikt reglerade branscher: försäkring, bank, finans, myndigheter

Att tänka på

Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, 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.

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.

Den här lösningen ger flera säkerhetsrelaterade fördelar. Enskilda utvecklare – och även operatörer – har inte direkt åtkomst till API Management-instansen för att tillämpa ändringar eller uppdateringar. I stället skickar användarna ändringar till en Git-lagringsplats och extraktor- och publiceringspipelines läser och tillämpar dem på API Management-instansen. Den här metoden följer bästa praxis för säkerhet med minsta möjliga behörighet genom att inte ge teamen skrivbehörighet till API Management-tjänstinstansen. I diagnostik- eller felsökningsscenarier kan du bevilja utökade behörigheter för en begränsad tid från fall till fall.

För att se till att API Management-instanserna använder metodtips för säkerhet kan du utöka den här lösningen för att tillämpa API-metodtips med hjälp av verktyg från tredje part och enhetstestning. Teams kan ge tidig feedback via PR-granskning om de föreslagna ändringarna av ett API eller en princip strider mot standarder.

Förutom uppgiften att konfigurera lagringsplatsens behörigheter bör du överväga att implementera följande säkerhetsåtgärder i Git-lagringsplatser som synkroniseras med API Management-instanser:

  • Granskning av pull-begäran (PR): Använd grenar och skydda de grenar som representerar tillståndet för API Management-instanserna från att skicka ändringarna direkt till dem. Kräv att PR:er har minst en granskare för att framtvinga principen med fyra ögon.
  • Oföränderlig historik: Tillåt endast nya incheckningar utöver befintliga ändringar. Oföränderlig historik är särskilt viktig för granskningsändamål.
  • Multifaktorautentisering: Kräv att användarna aktiverar tvåfaktorautentisering.
  • Signerade incheckningar: Tillåt endast signerade incheckningar som inte kan ändras i efterhand.

Kostnadsoptimering

Kostnadsoptimering handlar om att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.

  • Normalt beräknar du kostnader med hjälp av priskalkylatorn för Azure.

  • API Management erbjuder följande nivåer: Förbrukning, Utvecklare, Basic, Standard och Premium.

  • GitHub erbjuder en kostnadsfri tjänst. Men om du vill använda avancerade säkerhetsrelaterade funktioner, till exempel kodägare eller nödvändiga granskare, behöver du teamplanen. Mer information finns i GitHub-priser.

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.

APIOps kan öka DevOps-produktiviteten för API-utveckling och distributioner. En av de mest användbara funktionerna är möjligheten att använda Git-åtgärder för att snabbt återställa ändringar som beter sig oväntat. Incheckningsdiagrammet innehåller alla incheckningar, så att det kan hjälpa till med analysen efter döden.

API-operatorer hanterar ofta flera miljöer för samma uppsättning API:er. Det är vanligt att flera steg i ett API distribueras till olika API Management-instanser eller i en delad API Management-instans. Git-lagringsplatsen, som är den enda sanningskällan, visar vilka versioner av program som för närvarande distribueras till ett kluster.

När någon gör en PR på Git-lagringsplatsen vet API-operatören att de har ny kod att granska. När en utvecklare till exempel använder OpenAPI-specifikationen och skapar API-implementeringen lägger de till den nya koden på lagringsplatsen. Operatörerna kan granska PR och se till att API:et som har skickats för granskning uppfyller bästa praxis och standarder.

Prestandaeffektivitet

Prestandaeffektivitet handlar om att effektivt skala arbetsbelastningen baserat på användarnas behov. Mer information finns i Översikt över grundpelare för prestandaeffektivitet.

APIOps har många fördelar, men i takt med att API Management-landskapen växer ökar även komplexiteten i att hantera dem. Den här lösningen hjälper dig att möta utmaningar som:

  • Hålla en översikt över alla miljöer och API Management-instanser.
  • Spåra viktiga ändringar i API:er och principer.
  • Skapa en spårningslogg för alla distribuerade ändringar.

Distribuera det här scenariot

Distributionen av den här lösningen omfattar följande steg:

  • Utveckla API:et i portalen eller gör ändringar i OpenAPI-specifikationen med hjälp av ett valfritt verktyg.

    • Om du gör ändringar i portalen kan du köra extraktorn för att automatiskt extrahera alla API:er och andra relevanta principer, åtgärder och konfigurationer från API Management. Du kan synkronisera den här informationen till git-lagringsplatsen.

    • Du kan också använda Azure DevOps CLI för att skapa en ny pull-begäran.

  • Arbetsflödet för extraheraren innehåller följande steg:

  • I vårt scenario har pipelinen som laddar ned ändringar i portalen till API Management-instansen följande steg: Byggextraktor, Skapa artefakter från portalen och Skapa mallgren.

    • Build-extraktor

      I det här steget skapas extraheringskoden.

    • Skapa artefakter från portalen

      Den här fasen kör extraktorn och skapar artefakter som liknar en Git-lagringsplatsstruktur som den som visas i följande skärmbild:

      Skärmbild av

      • Skapa mallgren

        När artefakten har genererats skapar den här fasen en PR med de ändringar som extraheras för plattformsteamet att granska.

        Första gången du kör extraktorn hämtas allt från Git-lagringsplatsen. Den PR som skapas har alla API:er, principer, artefakter och så vidare.

        Senare extraheringar har endast ändringar som gjorts före extrahering i PR. Ibland kan ändringar bara vara till specifikationen av ett API, vilket är fallet i följande exempel på en PR.

        Skärmbild av ett exempel på en pull-begäran efter en extrahering som visar föreslagna ändringar i en fil med namnet

  • En granskare går till Pull-begäranden för att visa uppdaterade pull-begäranden. Du kan också konfigurera automatiska godkännanden för att automatisera det här steget.

    Skärmbild av ett exempel på en pull-begäran som visar ändringar i innehållet i

  • När du har godkänt PR utlöses en annan pipeline som publicerar från API Management till portalen. I vårt exempel har den följande steg: skapa skapare, skapa terminator och publicera APIM-instanser.

    Skärmbild av stegen i APIM-publish-to-portal, en pipeline.

    • Byggskaparfasen hanterar skapandet av nya API:er.
    • Bygget av terminator-fasen hanterar alla borttagningar.
    • Steget publicera APIM-instanser publicerar ändringar i API Management-instansen.

    Skärmbild som visar jobben i en exempelkörning av APIM-publish-to-portal, en pipeline.

    När den här pipelinen har körts publicerar den ändringarna i API Management-instansen.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Nästa steg