Automatisieren von API-Bereitstellungen mit APIOps

Azure API Management
Azure DevOps
Azure Pipelines

APIOps ist eine Methodik, welche die Konzepte von GitOps und DevOps auf API-Bereitstellungen anwendet. Genau wie DevOps unterstützt APIOps Teammitglieder dabei, problemlos Änderungen vorzunehmen und sie iterativ und automatisiert bereitzustellen. Diese Architektur veranschaulicht, wie Sie den gesamten API-Lebenszyklus und die API-Qualität mithilfe von APIOps verbessern können.

Architektur

Diagramm der Architektur für automatisierte API-Bereitstellungen mit APIOps auf Azure.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Workflow

  1. API-Operatoren führen die Extraktorpipeline aus, um das Git-Repository mit der API Management-Instanz zu synchronisieren und das Git-Repository mit API Management-Objekten im erforderlichen Format aufzufüllen.

  2. Wenn eine API-Änderung in der API Management-Instanz erkannt wird, wird ein Pull Request (PR) erstellt, der von Operatoren überprüft werden kann. Operatoren führen die Änderungen im Git-Repository zusammen.

  3. API-Entwickler klonen das Git-Repository, erstellen einen Branch und API-Definitionen mithilfe der OpenAPI-Spezifikation oder den Tools ihrer Wahl.

  4. Wenn ein Entwickler Änderungen an das Repository pusht, wird ein PR zur Überprüfung erstellt.

  5. Der PR kann abhängig von der erforderlichen Steuerungsebene automatisch genehmigt oder überprüft werden.

  6. Nachdem Änderungen genehmigt und zusammengeführt wurden, stellt die Veröffentlichungspipeline die neuesten Änderungen auf der API Management-Instanz bereit.

  7. API-Operatoren erstellen und ändern API Management-Richtlinien, Diagnosen, Produkte und andere relevante Objekte und committen dann die Änderungen.

  8. Die Änderungen werden überprüft und nach der Genehmigung zusammengeführt.

  9. Nach dem Zusammenführen der Änderungen stellt die Veröffentlichungspipeline die Änderungen mithilfe des API-Definitionsprozesses bereit.

Komponenten

  • Azure API Management erstellt konsistente und moderne API-Gateways für Back-End-Dienste. Neben der Weiterleitung von API-Aufrufen an Back-Ends überprüft diese Plattform auch Anmeldeinformationen, erzwingt Nutzungskontingente und protokolliert Metadaten.

  • Azure DevOps ist ein Dienst für die umfassende und nahtlose Verwaltung Ihres End-to-End-Entwicklungslebenszyklus, einschließlich Planung und Projektmanagement, Codeverwaltung bis hin zum Build- und Releasevorgang.

  • Azure Pipelines bietet Continuous Integration (CI) und Continuous Delivery (CD), um Code zu testen und zu erstellen und auf einem beliebigen Ziel bereitzustellen.

  • Azure Repos ist ein Satz mit Tools für die Versionskontrolle, einschließlich Standard-Kit, mit denen Sie Ihren Code verwalten können.

Alternativen

Diese Lösung nutzt Azure Repos für die Git-Funktionalität und Azure Pipelines für die Pipelines. Sie können alle vergleichbaren Technologien verwenden.

Szenariodetails

APIOps verwendet Versionskontrolle zum Verwalten von APIs und erstellt einen Überwachungspfad zu Änderungen an APIs, Richtlinien und Vorgängen.

API-Entwickler, die eine APIOps-Methodik verwenden, überprüfen und überwachen APIs früher und häufiger und erkennen und beheben Abweichungen von API-Standards schneller, um die Spezifikationen und die API-Qualität zu verbessern. Je mehr APIs Sie mit einem APIOps-Ansatz erstellen und bereitstellen, desto größer ist die Konsistenz zwischen den APIs.

Diese APIOps-Architektur verwendet Azure API Management als API-Verwaltungsplattform. Azure DevOps organisiert die API-Verwaltung. Azure Repos stellt Git-Funktionen bereit, und Azure Pipelines erstellt die CI/CD-Pipeline.

Mögliche Anwendungsfälle

  • Jede Organisation, die APIs entwickelt und verwaltet
  • Streng regulierte Branchen: Versicherungen, Banken, Finanzen, Regierung

Überlegungen

Diese Überlegungen setzen die Säulen des Azure Well-Architected Framework um, das aus einer Reihe von Leitprinzipien besteht, die zur Verbesserung der Qualität einer Workload verwendet werden können. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Sicherheit

Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Säule „Sicherheit“.

Diese Lösung bietet mehrere sicherheitsbezogene Vorteile. Einzelne Entwickler - und sogar Entwickler - greifen nicht direkt auf die API-Verwaltungsinstanz zu, um Änderungen oder Aktualisierungen vorzunehmen. Stattdessen pushen die Benutzer Änderungen in ein Git-Repository, das von den Extraktor- und Veröffentlichungspipelines gelesen und auf die API Management-Instanz angewendet wird. Dieser Ansatz folgt der bewährten Sicherheitspraxis der geringsten Berechtigung, da den Teams keine Schreibrechte für die API Management-Dienstinstanz erteilt werden. In Diagnose- oder Problembehandlungsszenarien können Sie erweiterte Berechtigungen für einen begrenzten Zeitraum von Fall zu Fall gewähren.

Um sicherzustellen, dass die API Management-Instanzen best Practices für die Sicherheit verwenden, können Sie diese Lösung erweitern, um best Practices für die API zu erzwingen, indem Sie Tools von Drittanbietern und Komponententests verwenden. Teams können per PR-Überprüfung frühzeitig Feedback geben, wenn die vorgeschlagenen Änderungen an einer API oder Richtlinie gegen Standards verstoßen.

Neben dem Einrichten von Repository-Berechtigungen sollten Sie die folgenden Sicherheitsmaßnahmen in Git-Repositories implementieren, die mit API Management-Instanzen synchronisiert werden:

  • Pull Request (PR)-Überprüfung: Verwenden von Branches und Schützen der Branches, die den Zustand der API Management-Instanzen darstellen, vor dem direkten Pushen von Änderungen an sie. PRs müssen mindestens einen Prüfer haben, um das Vier-Augen-Prinzip umzusetzen.
  • Unveränderlicher Verlauf: Lassen Sie neue Commits nur über vorhandene Änderungen hinaus zu. Unveränderlicher Verlauf ist für Überwachungszwecke besonders wichtig.
  • Multi-Faktor-Authentifizierung: Erfordert von Ihren Benutzer, dass diese zweistufige Authentifizierung aktivieren.
  • Signierte Commits: Nur signierte Commits zulassen, die anschließend nicht mehr geändert werden können.

Kostenoptimierung

Bei der Kostenoptimierung geht es darum, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.

  • Verwenden Sie den Azure-Preisrechner, um die voraussichtlichen Kosten zu ermitteln.

  • API Management bietet die folgenden Ebenen: Consumption, Developer, Basic, Standard und Premium.

  • GitHub bietet einen kostenlosen Dienst. Um jedoch erweiterte sicherheitsbezogene Funktionen wie Codebesitzer oder erforderliche Prüfer verwenden zu können, benötigen Sie den Team-Plan. Weitere Informationen finden Sie unter der Preisübersicht für GitHub.

Optimaler Betrieb

Die Säule „Optimaler Betrieb“ deckt die Betriebsprozesse ab, die für die Bereitstellung einer Anwendung und deren Ausführung in der Produktion sorgen. Weitere Informationen finden Sie unter Übersicht über die Säule „Optimaler Betrieb“.

APIOps kann DevOps-Produktivität für API-Entwicklung und -Bereitstellungen steigern. Eines der nützlichsten Features ist die Möglichkeit, Git-Vorgänge zu nutzen, um schnell ein Rollback von Änderungen mit unerwünschtem Verhalten vorzunehmen. Das Commit-Diagramm enthält alle Commits, sodass es bei der Analyse zur Nachbereitung hilfreich sein kann.

API-Operatoren verwalten häufig mehrere Umgebungen für denselben API-Satz. Es ist üblich, mehrere Phasen einer API auf verschiedenen API Management Instanzen oder in einer freigegebenen API Management-Instanz bereitzustellen. Das Git-Repository, das die einzige Quelle der Wahrheit ist, zeigt, welche Versionen von Anwendungen derzeit in einem Cluster bereitgestellt werden.

Wenn jemand einen PR im Git-Repository erstellt, weiß der API-Operator, dass er neuen Code zu überprüfen hat. Wenn ein Entwickler zum Beispiel die OpenAPI-Spezifikation nimmt und die API-Implementierung erstellt, fügt er diesen neuen Code dem Repository hinzu. Die Operatoren können den PR überprüfen und sicherstellen, dass die zur Überprüfung übermittelte API den best Practices und Standards entspricht.

Effiziente Leistung

Leistungseffizienz ist die Fähigkeit Ihrer Workload, auf effiziente Weise eine den Anforderungen der Benutzer entsprechende Skalierung auszuführen. Weitere Informationen finden Sie unter Übersicht über die Säule „Leistungseffizienz“.

APIOps bietet viele Vorteile, aber wenn API Management-Landschaften wachsen, steigt auch die Komplexität der Verwaltung. Diese Lösung hilft bei der Bewältigung von Herausforderungen wie:

  • Beibehalten des Überblicks über alle Umgebungen und API Management-Instanzen.
  • Nachverfolgen kritischer Änderungen an APIs und Richtlinien.
  • Erstellen eines Überwachungspfads für alle bereitgestellten Änderungen.

Bereitstellen dieses Szenarios

Die Bereitstellung dieser Lösung beinhaltet die folgenden Schritte:

  • Entwickeln der API im Portal oder ändern der OpenAPI-Spezifikation mit einem Tool Ihrer Wahl.

    • Wenn Sie Änderungen im Portal vornehmen, können Sie den Extraktor ausführen, um automatisch alle APIs und andere relevante Richtlinien, Vorgänge und Konfigurationen aus API Management zu extrahieren. Sie können diese Informationen mit dem Git-Repository synchronisieren.

    • Verwenden Sie optional die Azure DevOps CLI, um einen neue Pull Request zu erstellen.

  • Der Extraktor-Workflow umfasst die folgenden Schritte:

  • Im vorliegenden Szenario hat die Pipeline, die Änderungen im Portal in die API Management-Instanz herunterlädt, die folgenden Phasen: Extraktor erstellen, Artefakte über das Portal erstellen und Vorlagenbranch erstellen.

    • Extraktor erstellen

      In dieser Phase wird der Extraktor-Code erstellt.

    • Artefakte über das Portal erstellen

      In dieser Phase wird der Extraktor ausgeführt und es werden Artefakte erstellt, die einer Git-Repositorystruktur ähneln, wie im folgenden Screenshot gezeigt:

      Screenshot: 'APIM-automation', der 'apim-instances' und eine Ordnerhierarchie.

      • Vorlagenbranch erstellen

        Nachdem das Artefakt generiert wurde, wird in dieser Phase ein PR mit den extrahierten Änderungen erstellt, der vom Plattformteam geprüft werden kann.

        Wenn Sie den Extraktor zum ersten Mal ausführen, wird alles aus dem Git-Repository gepullt. Der erstellte PR enthält alle APIs, Richtlinien, Artefakte und so weiter.

        Spätere Extraktionen enthalten nur Änderungen, die vor der Extraktion im PR vorgenommen wurden. Manchmal werden Änderungen nur an der Spezifikation einer API vorgenommen. Dies ist im folgenden PR-Beispiel der Fall.

        Screenshot: Beispiel einer Pull Request nach einer Extraktion, die vorgeschlagene Änderungen an einer Datei namens 'specification.yml' zeigt.

  • Ein Prüfer wechselt zu Pull Requests, um die aktualisierten Pull Requests anzuzeigen. Sie können auch automatische Genehmigungen konfigurieren, um diesen Schritt zu automatisieren.

    Screenshot: Ein Beispiel für eine Pull Request, die Änderungen am Inhalt der Datei 'policy.xml' und nur Änderungen an Leerzeichen in anderen Dateien zeigt.

  • Nachdem der PR genehmigt wurde, wird eine weitere Pipeline ausgelöst, die von API Management auf dem Portal veröffentlicht wird. Im vorliegenden Beispiel hat sie die folgenden Phasen: Buildersteller, Buildabschluss und APIM-Instanzen veröffentlichen.

    Screenshot: Die Phasen der APIM-Publish-to-Portal-Pipeline.

    • Die Phase Buildersteller übernimmt die Erstellung neuer APIs.
    • In der Phase Buildabschluss werden alle Löschungen verarbeitet.
    • In der Phase APIM-Instanzen veröffentlichen werden Änderungen an der API Management-Instanz veröffentlicht.

    Screenshot: Zeigt die Aufträge in einem Beispiellauf von APIM-publish-to-portal, einer Pipeline.

    Wenn diese Pipeline erfolgreich ausgeführt wurde, werden die Änderungen in der API Management-Instanz veröffentlicht.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte