APIOps is een methodologie die de concepten van GitOps en DevOps toepast op API-implementatie. Net als DevOps helpt APIOps teamleden eenvoudig wijzigingen aan te brengen en ze op een iteratieve en geautomatiseerde manier te implementeren. Deze architectuur laat zien hoe u de volledige API-levenscyclus en API-kwaliteit kunt verbeteren met behulp van APIOps.
Architectuur
Een Visio-bestand van deze architectuur downloaden.
Workflow
API-operators voeren de extractor-pijplijn uit om de Git-opslagplaats te synchroniseren met het API Management-exemplaar en de Git-opslagplaats te vullen met API Management-objecten in de vereiste indeling.
Als er een API-wijziging wordt gedetecteerd in het API Management-exemplaar, wordt er een pull-aanvraag (PR) gemaakt om operators te controleren. Operators voegen de wijzigingen samen in de Git-opslagplaats.
API-ontwikkelaars klonen de Git-opslagplaats, maken een vertakking en API-definities maken met behulp van de OpenAPI-specificatie of hulpprogramma's van hun keuze.
Als een ontwikkelaar wijzigingen naar de opslagplaats pusht, wordt er een pull-aanvraag gemaakt voor controle.
De pull-aanvraag kan automatisch worden goedgekeurd of gecontroleerd, afhankelijk van het vereiste controleniveau.
Nadat wijzigingen zijn goedgekeurd en samengevoegd, implementeert de publicatiepijplijn de meest recente wijzigingen in het API Management-exemplaar.
API-operators maken en wijzigen API Management-beleid, diagnostische gegevens, producten en andere relevante objecten en voeren vervolgens de wijzigingen door.
De wijzigingen worden gecontroleerd en ze worden samengevoegd na goedkeuring.
Nadat de wijzigingen zijn samengevoegd, implementeert de publicatiepijplijn de wijzigingen met behulp van het API-definitiesproces.
Onderdelen
Azure API Management maakt consistente, moderne API-gateways voor back-endservices. Naast het routeren van API-aanroepen naar back-ends, verifieert dit platform ook referenties, dwingt dit gebruiksquota af en registreert metagegevens.
Azure DevOps is een service voor het end-to-end beheren van uw ontwikkelingslevenscyclus, waaronder planning en projectbeheer, codebeheer en continue ontwikkeling en release.
Azure Pipelines maakt continue integratie (CI) en continue levering (CD) mogelijk om uw code te testen en te bouwen en naar elk doel te verzenden.
Azure-opslagplaatsen is een set hulpprogramma's voor versiebeheer, waaronder standaard Git, die u kunt gebruiken om uw code te beheren.
Alternatieven
Deze oplossing maakt gebruik van Azure-opslagplaatsen om Git-functionaliteit te bieden en Azure Pipelines biedt de pijplijnen. U kunt vergelijkbare technologieën gebruiken.
Scenariodetails
APIOps maakt gebruik van versiebeheer voor het beheren van API's en het maken van een audittrail met wijzigingen in API's, beleidsregels en bewerkingen.
API-ontwikkelaars die een APIOps-methodologie gebruiken, beoordelen en controleren van API's eerder en vaker, het sneller vangen en oplossen van afwijkingen van API-standaarden om specificaties en API-kwaliteit te verbeteren. Hoe meer API's u bouwt en implementeert met een APIOps-benadering, hoe groter de consistentie tussen API's.
Deze APIOps-architectuur maakt gebruik van Azure API Management als het API Management-platform. Azure DevOps organiseert API Management. Azure-opslagplaatsen bieden Git-functionaliteit en Azure Pipelines maakt de CI/CD-pijplijn.
Potentiële gebruikscases
- Elke organisatie die API's ontwikkelt en beheert
- Sterk gereglementeerde branches: verzekeringen, banken, financiën, overheid
Overwegingen
Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd, een set richtlijnen die u kunt gebruiken om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.
Beveiliging
Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.
Deze oplossing biedt verschillende beveiligingsvoordelen. Afzonderlijke ontwikkelaars, en zelfs operators, hebben niet rechtstreeks toegang tot het API Management-exemplaar om wijzigingen of updates toe te passen. In plaats daarvan pushen gebruikers wijzigingen naar een Git-opslagplaats en lezen en publicerende pijplijnen lezen en toepassen op het API Management-exemplaar. Deze benadering volgt de best practice voor beveiliging van minimale bevoegdheden door teams geen schrijfmachtigingen te geven voor het API Management-service-exemplaar. In diagnostische scenario's of scenario's voor probleemoplossing kunt u beperkte machtigingen verlenen voor een beperkte periode per geval.
Om ervoor te zorgen dat de API Management-exemplaren best practices voor beveiliging gebruiken, kunt u deze oplossing uitbreiden om best practices voor API's af te dwingen met behulp van hulpprogramma's van derden en eenheidstests. Teams kan vroege feedback geven via pr-beoordeling als de voorgestelde wijzigingen in een API of beleid in strijd zijn met standaarden.
Afgezien van de taak om opslagplaatsmachtigingen in te stellen, kunt u overwegen de volgende beveiligingsmaatregelen te implementeren in Git-opslagplaatsen die worden gesynchroniseerd met API Management-exemplaren:
- Pull-aanvraag (PR): Gebruik vertakkingen en beveilig de vertakkingen die de status van de API Management-exemplaren vertegenwoordigen, zodat wijzigingen rechtstreeks naar deze exemplaren worden gepusht. Vereisen dat PULL's ten minste één revisor hebben om het principe van vier ogen af te dwingen.
- Onveranderbare geschiedenis: alleen nieuwe doorvoeringen toestaan boven op bestaande wijzigingen. Onveranderbare geschiedenis is vooral belangrijk voor controledoeleinden.
- Meervoudige verificatie: vereisen dat uw gebruikers tweeledige verificatie activeren.
- Ondertekende doorvoeringen: alleen ondertekende doorvoeringen toestaan die na het feit niet kunnen worden gewijzigd.
Kostenoptimalisatie
Kostenoptimalisatie gaat over het verminderen van onnodige uitgaven en het verbeteren van operationele efficiëntie. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.
Gebruik de Azure-prijscalculator om een schatting van de kosten te maken.
API Management biedt de volgende lagen: Verbruik, Ontwikkelaar, Basic, Standard en Premium.
GitHub biedt een gratis service. Als u echter geavanceerde beveiligingsfuncties wilt gebruiken, zoals code-eigenaren of vereiste revisoren, hebt u het teamplan nodig. Zie GitHub-prijzen voor meer informatie.
Operationele uitmuntendheid
Operationele uitmuntendheid omvat de operationele processen die een toepassing implementeren en deze in productie houden. Zie Overzicht van de operationele uitmuntendheidpijler voor meer informatie.
APIOps kan de DevOps-productiviteit voor API-ontwikkeling en -implementaties verhogen. Een van de handigste functies is de mogelijkheid om Git-bewerkingen te gebruiken om snel wijzigingen terug te draaien die onverwacht werken. De doorvoergrafiek bevat alle doorvoeringen, zodat deze kunnen helpen bij de post-mortemanalyse.
API-operators beheren vaak meerdere omgevingen voor dezelfde set API's. Het is gebruikelijk dat er verschillende fasen van een API zijn geïmplementeerd in verschillende API Management-exemplaren of in een gedeeld API Management-exemplaar. De Git-opslagplaats, die de enige bron van waarheid is, laat zien welke versies van toepassingen momenteel in een cluster worden geïmplementeerd.
Wanneer iemand een pull-aanvraag in de Git-opslagplaats maakt, weet de API-operator dat er nieuwe code moet worden beoordeeld. Wanneer een ontwikkelaar bijvoorbeeld de OpenAPI-specificatie gebruikt en de API-implementatie bouwt, voegt deze nieuwe code toe aan de opslagplaats. De operators kunnen de pull-aanvraag controleren en ervoor zorgen dat de API die is verzonden voor beoordeling voldoet aan de best practices en standaarden.
Prestatie-efficiëntie
Prestatie-efficiëntie is de mogelijkheid om op efficiënte wijze uw werkbelasting te schalen om te voldoen aan de vereisten die gebruikers eraan stellen. Zie overzicht van de pijler Prestatie-efficiëntie voor meer informatie.
APIOps heeft veel voordelen, maar naarmate API Management-landschappen groeien, is de complexiteit van het beheren ervan ook groot. Deze oplossing helpt bij het oplossen van uitdagingen zoals:
- Een overzicht houden van alle omgevingen en API Management-exemplaren.
- Essentiële wijzigingen bijhouden in API's en beleid.
- Een audittrail maken voor alle geïmplementeerde wijzigingen.
Dit scenario implementeren
Het implementeren van deze oplossing omvat de volgende stappen:
Ontwikkel de API in de portal of breng wijzigingen aan in de OpenAPI-specificatie met behulp van een hulpprogramma van uw keuze.
Als u wijzigingen aanbrengt in de portal, kunt u de extractor uitvoeren om automatisch alle API's en andere relevante beleidsregels, bewerkingen en configuraties uit API Management te extraheren. U kunt deze informatie synchroniseren met de Git-opslagplaats.
U kunt eventueel de Azure DevOps CLI gebruiken om een nieuwe pull-aanvraag te maken.
De extractorwerkstroom bevat de volgende stappen die u uitvoert:
Voer een pijplijn uit waarmee wijzigingen in de portal worden gedownload naar het API Management-exemplaar.
-
In ons scenario heeft de pijplijn die wijzigingen in de portal downloadt naar het API Management-exemplaar de volgende fasen: Extractor bouwen, Artefacten maken vanuit de portal en Sjabloonbranch maken.
Extractor bouwen
In deze fase wordt de extractorcode gebouwd.
Artefacten maken vanuit de portal
In deze fase wordt de extractor uitgevoerd en worden artefacten gemaakt die lijken op een Git-opslagplaatsstructuur, zoals weergegeven in de volgende schermopname:
Sjabloonbranch maken
Nadat het artefact is gegenereerd, maakt deze fase een pull-aanvraag met de wijzigingen die zijn geëxtraheerd voor het platformteam om te controleren.
De eerste keer dat u de extractor uitvoert, wordt alles opgehaald uit de Git-opslagplaats. De pull-aanvraag die wordt gemaakt, bevat alle API's, beleidsregels, artefacten enzovoort.
Latere extracties hebben alleen wijzigingen aangebracht vóór de extractie in de pull-aanvraag. Soms zijn wijzigingen alleen mogelijk aan de specificatie van een API, wat het geval is in het volgende voorbeeld van een pull-aanvraag.
Een revisor gaat naar Pull-aanvragen om de bijgewerkte pull-aanvragen weer te geven. U kunt ook automatische goedkeuringen configureren om deze stap te automatiseren.
Nadat de pull-aanvraag is goedgekeurd, wordt een andere pijplijn geactiveerd die vanuit API Management naar de portal wordt gepubliceerd. In ons voorbeeld hebben we de volgende fasen: maker bouwen, eindteken bouwen en APIM-exemplaren publiceren.
- De build creator-fase verwerkt het maken van nieuwe API's.
- De eindfase van de build verwerkt eventuele verwijderingen.
- In de fase APIM-exemplaren publiceren wijzigingen in het API Management-exemplaar.
Nadat deze pijplijn is uitgevoerd, worden de wijzigingen in het API Management-exemplaar gepubliceerd.
Medewerkers
Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.
Hoofdauteur:
- Rishabh Saha | Hoofdoplossingsarchitect
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
- Azure Pipelines
- APIOps voor Azure API Management
- CI/CD voor API Management met behulp van Azure Resource Manager-sjablonen
- Overzicht van GitOps
- GitOps opslaan
- Zelfstudie: Configuraties implementeren met GitOps in een Kubernetes-cluster met Azure Arc