Automatisieren von API-Bereitstellungen mit APIOps
APIOps ist eine Methode, die die Konzepte von GitOps und DevOps auf die API-Bereitstellung anwendet. Wie DevOps hilft APIOps Teammitgliedern dabei, einfach Änderungen vorzunehmen und auf iterative und automatisierte Weise bereitzustellen. Diese Architektur veranschaulicht, wie Sie den gesamten API-Lebenszyklus und die API-Qualität mithilfe von APIOps verbessern können.
Architektur
Laden Sie eine Visio-Datei dieser Architektur herunter.
Arbeitsablauf
API-Operatoren führen die Extraktorpipeline aus, um das Git-Repository mit der API-Verwaltungsinstanz zu synchronisieren und das Git-Repository mit API-Verwaltungsobjekten im erforderlichen Format aufzufüllen.
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.
API-Entwickler klonen das Git-Repository, erstellen eine Verzweigung und erstellen API-Definitionen mithilfe der OpenAPI-Spezifikation oder tools ihrer Wahl.
Wenn ein Entwickler Änderungen an das Repository pusht, wird ein PR zur Überprüfung erstellt.
Der PR kann abhängig von der erforderlichen Steuerungsebene automatisch genehmigt oder überprüft werden.
Nachdem Änderungen genehmigt und zusammengeführt wurden, stellt die Veröffentlichungspipeline die neuesten Änderungen auf der API Management-Instanz bereit.
API-Operatoren erstellen und ändern API Management-Richtlinien, Diagnosen, Produkte und andere relevante Objekte und committen dann die Änderungen.
Die Änderungen werden überprüft und nach der Genehmigung zusammengeführt.
Nach dem Zusammenführen der Änderungen stellt die Veröffentlichungspipeline die Änderungen mithilfe des API-Definitionsprozesses bereit.
Komponenten
Azure API Management erstellt konsistente, 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 Verwaltung Ihres Entwicklungslebenszyklus end-to-End, einschließlich Planung und Projektmanagement, Codeverwaltung und fortlaufender Erstellung und Veröffentlichung.
Azure Pipelines ermöglicht die kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD), um Ihren Code zu testen und zu erstellen und an jedes Ziel zu versenden.
Azure Repos ist eine Reihe von Versionssteuerungstools, einschließlich standardmäßiger Git, die Sie zum Verwalten Ihres Codes verwenden können.
Alternativen
Diese Lösung verwendet Azure Repos , um Git-Funktionen bereitzustellen, und Azure-Pipelines stellen die Pipelines bereit. 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 bietet Git-Funktionen, 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 bilden die Säulen des Azure Well-Architected Framework, einer Reihe von Leitprinzipien, die Sie zur Verbesserung der Qualität eines Workloads verwenden können. Weitere Informationen finden Sie unter Well-Architected Framework.
Sicherheit
Sicherheit bietet Sicherheitsmaßnahmen gegen bewusste Angriffe und den Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie in der Prüfliste zur Entwurfsüberprüfung für 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 Methode der Sicherheit der geringsten Berechtigungen , indem Teams keine Schreibberechtigungen für die API-Verwaltungsdienstinstanz erteilen. 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:
- Überprüfung der Pullanforderung (PR): Verwenden Sie Verzweigungen, und schützen Sie die Verzweigungen, die den Status der API-Verwaltungsinstanzen darstellen, vor änderungen, die direkt an sie übertragen werden. PRs müssen mindestens einen Prüfer haben, um das Vier-Augen-Prinzip umzusetzen.
- Unveränderlicher Verlauf: Nur neue Commits über vorhandene Änderungen zulassen. Unveränderlicher Verlauf ist für Überwachungszwecke besonders wichtig.
- Mehrstufige Authentifizierung: Erfordern Sie, dass Ihre Benutzer die zweistufige Authentifizierung aktivieren.
- Signierte Commits: Nur signierte Commits zulassen, die nach der Tatsache nicht geändert werden können.
Kostenoptimierung
Die Kostenoptimierung konzentriert sich auf Möglichkeiten, unnötige Ausgaben zu reduzieren und die betriebliche Effizienz zu verbessern. Weitere Informationen finden Sie in der Prüfliste für die Entwurfsüberprüfung für die Kostenoptimierung.
Verwenden Sie den Azure-Preisrechner , um Kosten zu schätzen.
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 GitHub-Preise.
Operative Exzellenz
„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 in der Prüfliste zur Entwurfsüberprüfung für Operational Excellence.
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 beispielsweise die OpenAPI-Spezifikation verwendet und die API-Implementierung erstellt, fügen sie diesen neuen Code zum 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.
Leistungseffizienz
Die Leistungseffizienz bezieht sich auf die Fähigkeit Ihrer Workload, die Anforderungen der Benutzer effizient zu erfüllen. Weitere Informationen finden Sie in der Prüfliste zur Entwurfsüberprüfung für Die 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 Sie die API im Portal, oder nehmen Sie Änderungen an der OpenAPI-Spezifikation mithilfe eines Tools Ihrer Wahl vor.
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.
Optional können Sie die Azure DevOps CLI verwenden, um eine neue Pullanforderung zu erstellen.
Der Extraktor-Workflow umfasst die folgenden Schritte:
Ausführen einer Pipeline, die Änderungen im Portal in die API Management-Instanz herunterlädt.
-
In unserem Szenario hat die Pipeline, die Änderungen im Portal in die API-Verwaltungsinstanz herunterlädt, die folgenden Phasen: Buildextraktionsmodul, Erstellen von Artefakten aus dem Portal und Erstellen von Vorlagenzweigen.
Buildextraktionsmodul
In dieser Phase wird der Extraktor-Code erstellt.
Erstellen von Artefakten aus dem Portal
In dieser Phase wird der Extraktor ausgeführt und es werden Artefakte erstellt, die einer Git-Repositorystruktur ähneln, wie im folgenden Screenshot gezeigt:
Erstellen eines Vorlagenzweigs
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.
Ein Prüfer wechselt zu Pullanforderungen , um die aktualisierten Pullanforderungen anzuzeigen. Sie können auch automatische Genehmigungen konfigurieren, um diesen Schritt zu automatisieren.
Nachdem der PR genehmigt wurde, wird eine weitere Pipeline ausgelöst, die von API Management auf dem Portal veröffentlicht wird. In unserem Beispiel gibt es die folgenden Phasen: Erstellen, Erstellen von Terminator und Veröffentlichen von APIM-Instanzen.
- Die Erstellungsphase des Builderstellers behandelt die Erstellung neuer APIs.
- Die Buildterminatorphase behandelt alle Löschungen.
- Die Veröffentlichungs-APIM-Instanz veröffentlicht Änderungen an der API-Verwaltungsinstanz.
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:
- Rishabh Saha | Principal Solution Architect
Um nicht öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.
Nächste Schritte
- Azure-Pipelines
- APIOps für Azure-API-Verwaltung
- CI/CD für API-Verwaltung mit Azure Resource Manager-Vorlagen
- GitOps-Übersicht
- GitOps speichern
- Lernprogramm: Bereitstellen von Konfigurationen mithilfe von GitOps auf einem Azure Arc-fähigen Kubernetes-Cluster