Getty Images/iStockphoto
Wie DevOps-Teams das API-Management in den Griff bekommen
Das Management von API-Ökosystemen stellt für DevOps-Teams eine Herausforderung dar. Worauf diese bei der Auswahl eines Tools achten sollten, um die Komplexität zu reduzieren.
Entwickler haben heute unendlich viele Möglichkeiten, wenn es um APIs geht. Genau wie bei den Standards gilt auch hier: Wenn ihnen einer nicht gefällt, gibt es viele weitere zur Auswahl. Und genau da liegt das Problem.
Obwohl APIs eine einfache und effektive Möglichkeit bieten, verschiedene funktionale Stubs, Dienste und Anwendungen miteinander zu verbinden, gibt es in der API-Welt keine klaren Best Practices, die mit ITIL für das IT-Service-Management vergleichbar sind.
Zwar sind API-Strukturen wie Simple Object Access Protocol (SOAP) und Representational State Transfer (REST) ziemlich standardisiert, doch die Funktionsweise von APIs ist weitaus komplexer. Das API-Management ist so komplex geworden, dass ein einzelner Entwickler – oder sogar eine Gruppe von Entwicklern – das Problem nicht mehr überblicken kann.
Doch in der heutigen Welt der Microservices ist die Fähigkeit, die APIs zu manipulieren, die für die Ausführung einer aus verschiedenen Services zusammengesetzten Anwendung erforderlich sind, eine Notwendigkeit für DevOps. Ohne ein gewisses Know-how über die Funktionsweise von APIs ist eine optimierte Microservices-basierte Plattform kaum möglich.
Was bedeutet das für DevOps-Teams? Viele Entwickler schöpfen das Potenzial von APIs nicht voll aus und entscheiden sich stattdessen für feste Verbindungen zwischen verschiedenen Diensten. Wenn die Zeit voranschreitet und Entwickler ihre eigenen Dienste aktualisieren oder ändern, brechen diese harten Verbindungen leicht ab, während dies bei einer erfolgreichen Nutzung von APIs nicht der Fall ist.
Andere wählen den minimalistischen Ansatz und verwenden nur das, was sie kennen, und vermeiden die problematischen Teile. Auch dies ist keine gute Option, da es die Gesamtfähigkeiten einer zusammengesetzten Anwendung auf den kleinsten gemeinsamen Nenner beschränkt.
Warum sollten DevOps-Teams ein API-Management-Tool verwenden?
Für Unternehmen, die Microservices, DevOps und CI/CD einsetzen, ist es unerlässlich, APIs effektiv und mit ihrem vollen Potenzial zu nutzen. Sich darauf zu verlassen, dass die Entwickler in einer solch dynamischen Umgebung selbst auf dem Laufenden bleiben, ist nicht machbar: Es ist weitaus besser, Tools zu verwenden, die sich auf das Management von APIs in einer breiten Umgebung konzentrieren.
Entwicklungsgruppen als Ganzes brauchen Zugang zu Systemen, welches die Welt der APIs erschließen, ihre Fähigkeiten offenlegen und ihre Nutzung erleichtern. API-Management-Tools können die Effektivität von API-Implementierungen verbessern und Unternehmen dabei unterstützen, das Beste aus ihren Microservices-Plattformen herauszuholen.
Bei der Suche nach einer API-Managementplattform sollten Sie folgende Punkte beachten:
- Ein API-Speicher, der Discovery-Services verwendet. Dies stellt sicher, dass Entwickler APIs leicht identifizieren können und hilft, die Erstellung mehrerer APIs in Fällen zu vermeiden, in denen bereits wiederverwendbarer Code existiert.
- Integration mit vorhandenen DevOps-Tools. Entwickler werden APIs nur dann in vollem Umfang nutzen, wenn sie leicht zugänglich und nutzbar sind. Daher müssen Entwickler von ihrem Arbeitsplatz aus auf APIs zugreifen können.
- API-Gateways. Dies ist ein wichtiger Bereich innerhalb des API-Managements. API-Gateways sind die Steuereinheiten, über die APIs interagieren und überwacht werden und an denen Probleme erkannt und zur Lösung an die Entwickler weitergeleitet werden können. Sie wenden auch Richtlinien in der gesamten API-Umgebung an.
- Integration von Ticketing-Systemen. Obwohl das API-Gateway Probleme identifiziert, integriert sich das API-Management-Tool in bestehende Ticketing-Systeme, um Systemduplizierungen zu vermeiden.
- API-Analysen. Während die Analysefunktionen in das Gateway eingebunden werden sollten, sollten sie auch den Betrieb untersuchen, um sicherzustellen, dass alles wie vorgesehen funktioniert. So sollte das Tool beispielsweise feststellen, wo die zunehmende Belastung einer API zu Leistungsproblemen führt, wo Änderungen an einer Seite einer API-Kopplung Probleme auf der anderen Seite verursachen und wo die API-Nutzung verwaist ist, da eine Seite nicht mehr vorhanden ist.
- Traffic-Management. Wenn eine API übermäßig genutzt wird oder eine technische Störung auftritt, muss ein API-Managementsystem das Problem angehen, indem es die API drosselt oder stoppt oder eine andere Instanz der verantwortlichen Anwendung oder des Dienstes hochfährt, um die Last besser auszugleichen.
- Authentifizierung und Benutzerverwaltung. APIs müssen sicher funktionieren. Einzelne APIs neigen jedoch dazu, sich auf ihre eigene Sicherheit zu konzentrieren und kennen nicht unbedingt der Sicherheitsfähigkeiten – oder -mängel – anderer APIs. Ein gutes API-Tool kann die Sicherheit über eine gesamte Plattform hinweg managen.
- Bewusstsein für und Integration mit Public-Cloud-Systemen. Auch wenn Sie derzeit keine Public Cloud verwenden, werden Sie dies in Zukunft wahrscheinlich tun. Stellen Sie sicher, dass die API-Managementplattform mit bestehenden Public-Cloud-Plattformen zusammenarbeitet, entweder direkt oder über deren integrierte API-Managementsysteme.
Einige Anbieter von API-Managementsystemen bieten auch die Vermarktung dieser an. Dies ist sinnvoll, wenn Sie planen, Ihre Microservices als öffentliche Dienste zur Verfügung zu stellen. Wenn es Ihnen jedoch nur um die interne Nutzung geht, sollte die Fähigkeit zur Überwachung der Nutzung in Form von Metriken – wie Durchsatz und Ressourcenbedarf – ausreichen.
Die meisten Cloud-Plattformen, darunter AWS, Microsoft Azure, Google Cloud Platform und IBM Cloud, verfügen über integrierte API-Management-Tools. Einige dieser Tools basieren auf spezialisierten kommerziellen Angeboten von hochspezialisierten API-Managementanbietern wie Apigee, das Google 2016 für die Verwendung auf der Google Cloud Platform übernommen hat.
Allerdings arbeitet nicht jeder mit einer Public Cloud – und selbst diejenigen, die dies tun, müssen manchmal Systeme auf einer Private Cloud oder einer anderen IT-Plattform in die Public Cloud integrieren. Daher besteht ein Bedarf an effektiven Tools, die in der gesamten DevOps-Kette eingesetzt werden können, um sicherzustellen, dass APIs vollständig genutzt, überwacht und verwaltet werden.
Beispiele für API-Management-Tools sind: