Blog

Microservices Summit
Das große Trainingsevent für Microservices, DevOps, Continuous Delivery, Docker & Cloud
28
Apr

Beschleunigte API-Bereitstellung mit APIOps: Automatisierung und Governance

Die Pandemie hat die Einführung von Microservices eindeutig beschleunigt. Neun von zehn Technologieführern [1] weltweit sind der Meinung, dass neue digitale Angebote zur Bewältigung der Herausforderungen rund um Covid-19 für den Erfolg ihres Unternehmens entscheidend sind. Für viele wird der API-Betrieb jedoch zu einem Hindernis, das diesen Erfolg in Frage stellt.

Die Technologie macht große Fortschritte und die Anwendungsfälle werden immer ausgereifter. Doch jetzt ist es höchste Zeit, auch beim Management des API-Lebenszyklus innovativ zu sein. Derzeit ist die IT auf zu viele manuelle Prozesse, komplexe Schritte und kostspielige Aktivitäten angewiesen, um APIs zu erstellen, auf die sich diese neuen digitalen Erlebnisse stützen. Das wiederum verschlechtert die Qualität dieser Erlebnisse und den gesamten Service für treue Kunden und Mitarbeiter. Diesen Stolperstein kann APIOps mit seiner Anwendung bewährter DevOps- und GitOps-Prinzipien während des gesamten API-Lebenszyklus beseitigen.

Anforderungen sind zunehmend komplex

Um die für schnelle Innovationen erforderliche Flexibilität zu erreichen, müssen APIs für die agile Nutzung und Wiederverwendbarkeit entwickelt werden. Das muss für jeden Dienst in einem verteilten Ökosystem gelten.

In der Welt des API-Management 1.0 bedeutete das, dass APIs in ein thematisches Portal gestellt wurden, damit API-Consumer (Nutzer) sie finden und darauf zugreifen konnten. In der heutigen API-Welt reicht das jedoch nicht mehr aus. Heutzutage ist die Wiederverwendung eine komplexere Gleichung, die von mehreren Kriterien abhängt – vom Betriebsmodell des Unternehmens bis hin zum gewünschten Endnutzererlebnis.

Deshalb folgt die Kultur erfolgreicher API-Teams einer produktbezogenen Denkweise: Alle APIs im Unternehmen werden als Produkt mit einem konkreten Ziel, einem Wert und einem eigenen Lebenszyklus betrachtet, nicht als technische Einheit, die im Hintergrund läuft. Um im Betrieb Effizienz und Agilität zu erreichen, müssen diese Produkte wiederverwendbar und damit nutzbar sein. Folgende Eigenschaften sollten APIs haben:

  • Gut konzipiert, geschützt und compliancekonform – sie folgen den besten in der Branche sowie der im eigenen Unternehmen angewandten Best Practices rund um Nutzung und Sicherheit. Beispiel: Wenn Sie Ihr iPhone nicht sperren könnten, würden Sie es trotzdem benutzen?

  • Dokumentiert, auffindbar und zugänglich, damit die API-Consumer Zugang haben und APIs (wieder-)verwenden können. Beispiel: Wäre es schwierig, ein iPhone zu finden, wie lange würden Sie damit warten, etwas anderes zu kaufen?

  • Schnell, zuverlässig und skalierbar, sodass die Consumer einen hochwertigen Service nutzen können und diesen weiterhin nutzen möchten. Beispiel: Wie lange würde man Apple die Treue halten, wenn die Mobiltelefone des Unternehmens ständig unzuverlässig wären?

Fehlt eine dieser Eigenschaften, dann ist das zwar kein Hindernis, ein API einzusetzen, es schränkt jedoch den wahren unternehmerischen Wert ein, den es bietet. APIs, denen diese Eigenschaften fehlen, können unzuverlässig und schwer zu nutzen sein. Zudem könnten sie sogar große Sicherheitsrisiken verursachen, die – wenn sie ausgenutzt werden – möglicherweise für negative Schlagzeilen sorgen. Tatsächlich haben die wiederholten ernsten Sicherheitsprobleme rund um APIs zu einem generellen Umdenken geführt: Studien zeigen, dass IT-Führungskräften die Qualität von APIs und Anwendungen (Applications) nun wichtiger ist als die Geschwindigkeit der Bereitstellung. Denn 80 Prozent der IT-Teams geben an, einen Kompromiss zwischen der Geschwindigkeit bei der Bereitstellung und der Qualität ihrer APIs zu schließen.

Warum der Kompromiss?

Einige Unternehmen geben API-Entwicklern einen großen Spielraum beim Bereitstellen, Verwalten und Veröffentlichen ihrer APIs. Diese Freiheit fördert zwar die schnelle Innovation, führt aber gleichzeitig bei weit verteilten Teams zu API-Plattformen voller Inkonsistenzen, denn es fehlen die notwendigen Qualitätskontrollen zur Durchsetzung der Standardisierung. Das hat zur Folge, dass sich APIs überschneiden, unterschiedliche Dokumentations- und Sicherheitsstandards aufweisen und entsprechend nicht wiederverwendet werden.

Daraus haben viele Unternehmen gelernt und sind bereits einen Schritt weiter. Sie setzen zentralisierte Teams für API-Plattformen zur Durchsetzung von Standards ein, indem sie die Entwürfe und Implementierungen vor der Bereitstellung überprüfen. Das führt jedoch zu Engpässen: Denn das Überprüfen jedes neuen API und jeder neuen Version hängt von manuellen Prozessen ab oder erfordert den Aufbau angepasster Tools und Workflows. Die Vorgehensweise ist daher weder nachhaltig noch skalierbar.

Einige Unternehmen waren mal mehr, mal weniger erfolgreich, indem sie ihre bewährten Verfahren bei API-Designern und -Ingenieuren eingeführt und deren Einhaltung vorgeschrieben haben. Die Absicht ist gut, der Erfolg aber hängt immer noch davon ab, ob sich bei diesen manuellen Prozessen wirklich jeder an die Standards hält, anstatt sie bewusst zu vermeiden, um die damit einhergehende Belastung zu verringern. Schließlich haben IT-Teams in einer Welt, die von Automatisierung und Eigenständigkeit geprägt ist, bessere Lösungen verdient.

Einführung von APIOps

Damit ist man auch schon bei den Herausforderungen hinsichtlich APIOps. Hier kommen die bewährten Prinzipien von DevOps und GitOps im API-Lebenszyklus zum Einsatz und Prozesse werden automatisiert, um API-Experten das Leben zu erleichtern. APIOps stattet Entwickler, Architekten und Betreiber mit Selfservice und automatisierten Tools aus. So lässt sich die Qualität von Spezifikationen, Implementierungen und der Betrieb von APIs während des gesamten Lebenszyklus sicherstellen. Dazu wird eine Plattform für Service-Konnektivität, die APIOps unterstützt, mit deklarativen Bereitstellungs-Pipelines, automatisierten Governance-Prüfungen und Versionskontrolle kombiniert. Das sind alles Tools, die heute von den meisten Unternehmen bereits erfolgreich verwendet werden.

Nach der anfänglichen Erstellung einer OpenAPI-Spezifikation – also dem API-Design – orchestriert APIOps eine ganze Reihe an Prozessen:

  • Überprüfung der Spezifikation auf Best Practices

  • Testen des Designs und der Implementierung

  • Erstellung einer deklarativen Konfigurationsdatei für die Bereitstellung

  • Anwendung und Konfiguration von Richtlinien für die Sicherheit

  • Monitoring und Betrieb in einem Gateway zur Verwaltung der API

  • Veröffentlichung von Endpunkten und Dokumentationen in einem Entwicklerportal für die Erkennung und den eigenständigen Zugriff

  • Laufende Folgemaßnahmen (Day-2-Operations)

Früher war das ein inkonsistentes und ineffizientes Vorgehen. Heute ist es ein vollständig automatisierter Prozess, der durch Versionskontrolle wie mit Git gemeistert wird und so ermöglicht, jeden Schritt sofort anzuhalten, zu testen, abzulehnen und zurückzusetzen. Dieser Durchbruch umfasst eine durchgängige Automatisierung und Tools für eine konsistente, kontinuierliche Bereitstellung der Konnektivitäts-Dienste von Teams – unabhängig von der gewünschten Bereitstellungsumgebung und davon, wer die Dienste erstellt und welche Tools verwendet werden.

APIOps steigert die Geschwindigkeit

Aufbauend auf GitOps verwendet APIOps die deklarative Konfiguration für automatisierte Bereitstellungen. Diese haben wegen ihrer Einfachheit und Effizienz die imperative Konfiguration als Best-Practice-Ansatz für CI/CD abgelöst. Moderne Service-Konnektivitätsplattformen unterstützen die deklarative Automatisierung und ermöglichen es API-Gateways, sich selbst auf der Grundlage dieser Anweisungen zu konfigurieren, anstatt Zeit mit der Erstellung und Pflege von Skripten für die Verwaltung der Konfiguration von Richtlinien und Endpunkten zu verschwenden.

Plattformen, die APIOps unterstützen, generieren die deklarative Konfiguration automatisch aus dem API-Design. Dadurch wird der manuelle Aufwand weiter verringert. Diese Kernfunktionen gewährleisten:

  • eine Markteinführung in kürzerer Zeit, da Abweichungen von Standards in der Pipeline früher erkannt werden

  • schnellere, wiederholbare und vorhersehbare Bereitstellungen im API-Ökosystem

  • einfaches Rollback zu früheren Bereitstellungszuständen mit Hilfe deklarativer Konfigurationsdateien aus dem Versionskontrollsystem

  • geringeres Risiko durch Automatisierung der Anwendung und Konfiguration von Sicherheitsrichtlinien

APIOps steigert die Qualität

APIOps sorgt für die programmatische Durchsetzung von API-, Sicherheits- und Governance-Standards in der gesamten Pipeline. Dadurch wird die Bereitstellung konsumierbarer, qualitativ hochwertiger APIs viel einfacher als zuvor. Mit APIOps lässt sich Folgendes erreichen:

  • Konsistenz in Qualität und Standards für alle APIs durch die Einbettung automatisierter Prüfungen und Tests für Governance in die CI/CD-Pipelines

  • produktivere Entwickler, die in der Lage sind, Standards selbst einzuhalten, ohne dass eine separate Dokumentation erforderlich ist

  • bessere Zusammenarbeit und weniger Aufwand bei Überarbeitungen, da die Standards bereits zu einem früheren Zeitpunkt erfüllt werden

  • eine Single Source of Truth für den Status von Bereitstellung und die Verwaltung von APIs über Bereitstellungsumgebungen, Teams und Prozesse hinweg

  • reibungslosere Bereitstellung, da eine versionskon-trollierte, deklarative Konfigurationsdatei den Teams ermöglicht, Änderungen zwischen den Konfigurationen zu sehen und zu erkennen, wann etwas nicht mehr funktioniert

Abbildung 1 zeigt, wie APIOps Service-Konnektivität für Plattformen ermöglicht.

walther_apiops_1.tif_fmt1.jpgAbb. 1: APIOps in Action

Design

Einige Plattformen bieten Entwicklern beim Entwurf eines API die Möglichkeit, die Prüfung und das Debugging an einem einzigen Ort durchzuführen. Hier sollte sofort ein Linter eingesetzt werden, damit die Entwickler wissen, dass sie die besten Praktiken und Coding Guidelines der Branche befolgen. Auch sollten die Entwickler in der Lage sein, Unit-Tests für die Funktionalität des Dienstes zu erstellen und Richtlinien für Governance und Sicherheit zu befolgen. Sie können automatisch die deklarative Konfiguration für ein API in der API-Designplattform generieren, um schnelle lokale Prüfungen durchzuführen, bevor sie ihren Code im richtigen Repository ablegen. Jedes API wird somit von der Entwurfsphase an geregelt, wobei sofortige lokale Tests des Entwurfs und der Governance durchgehend verfügbar sind.

Build

Wird eine Pull-Anfrage in einem Repository gestellt, weiß man, dass neuer Code geprüft werden muss. Gibt es z. B. ein neues API-Design oder der Entwickler hat die API-Implementierung erstellt und den neuen Code zum Repository hinzugefügt, muss sichergestellt werden, dass das zur Überprüfung eingereichte API immer noch den gleichen Standards entspricht, bevor er in den Code eingebunden wird.

Mit APIOps können Teams die Kommandozeilenwerkzeuge der API-Plattform verwenden, um alle Qualitäts- und Governance-Prüfungen, die den Entwicklern zur Verfügung stehen, über das Programm aufzurufen, sobald ein Pull Request erstellt wird. So können die Teams die verschiedenen Prüfungen so konfigurieren, dass sie in der Reihenfolge ausgeführt werden, die am besten zum Anwendungsfall, zur Pipeline-Stufe und zum Ziel der Bereitstellung passt. Zudem lässt sich die Freigabe des Pull Request so einschränken, dass alle Prüfungen bestanden werden müssen. Dazu sind keine manuellen Eingriffe nötig. Da alles automatisiert und programmgesteuert ist, können die Teams alle Anforderungen schnell erfüllen.

Deploy

Nach Abschluss des Prozesses kann der IT-Operator die deklarative Konfiguration programmgesteuert in die verschiedenen Module und Laufzeiten der Service-Connectivity-Plattform (z. B. über Kommandozeilenwerkzeuge) hochladen. Die Vorteile von GitOps für die kontinuierliche Bereitstellung werden auf den gesamten API-Lebenszyklus angewandt und ermöglichen vollständig automatisierte, schnellere und wiederholbare Bereitstellungen und Konfigurationen in der Plattform für Service-Konnektivität.

Schnellere Innovation, Konformität und Sicherheit

Die Komplexität der Technologie ist nicht der begrenzende Faktor für Innovation. Eher im Gegenteil: Je einfacher sich ein Prototyp erstellen, je schneller sich die Menge von Geschäftsfunktionen neu aufbauen und je einfacher sich ein Plug-and-Play-Ansatz wählen lässt, desto effektiver ist die Innovation. Der Erfolg ist jedoch begrenzt, wenn veraltete Prozesse die Einführung neuer Technologien behindern.

APIOps bietet die dringend benötigte Automatisierung für eine beschleunigte Bereitstellung und Adaption von APIs – v. a. vor dem Hintergrund zunehmender Komplexität, Größe und Erwartungen.