Wie die Natur Lebenszyklen von Schmetterlingen managt und was API Entwickler daraus lernen können
Die Natur sieht für jedes Lebewesen ein ausgeklügeltes System vor, wie es heranwachsen und überleben kann. Schmetterlinge beispielsweise durchlaufen vom Ei, über die Verpuppung, zur Raupe, bis hin zum ersten Flug als Schmetterling verschiedene Phasen in ihrem Leben, die von aussen betrachtet willkürlich erscheinen, aber in Wahrheit durch die Natur aktiv gemanagt wird. In diesem Blogbeitrag erfahren Sie, welche Lebenszyklen Ihrer APIs durchlaufen werden müssen, um fachlich sowie technisch hochstehende APIs rasch in Ihrem Ökosystem bereitstellen zu können.
Warum ein durchgängiges API Lebenszyklus-Management wichtig ist
Gute Schnittstellen zu bauen war bis anhin ein relativ komplexer Prozess mit vielen möglichen Stolperfallen. Einerseits müssen sehr detaillierte fachliche Analysen betrieben werden, um alle zu übertragenden Datenfelder, deren Struktur und Semantik zu kennen und andererseits sind die Übertragungskanäle und Formate auf ihre Eignung bezogen auf die Prozessanforderungen zu prüfen und bestimmen. Dabei war es bislang sehr aufwändig den Lebenszyklus von Schnittstellen zu managen, da diese nicht durchgängig durch entsprechende Plattformen aus einer Hand gemanagt werden konnten.
Ein erster Schritt dazu, Schnittstellen einfacher und effektiver bereitstellen zu können, ist die Einführung eines Entwicklungsprozesses, der von der Idee eines APIs bis hin zu dessen End-of-Life alle notwendigen Prozessschritte beinhaltet und sie einfach verwaltbar macht.
Abbildung 1: Management der Prozessschritte in den Lebenszyklen Ihrer APIs
Die dabei zu durchlaufenden Phasen bringen gegenüber heutiger Entwicklungstechniken viele Vorteile mit sich. Diese können zusätzlich verstärkt werden, wenn vorweg ein für alle künftigen APIs zu nutzenden Übermittlungskanal bestimmt und im Idealfall im Rahmen einer Digitalstrategie festgelegt wird. Hierzu empfehlen wir alle APIs in einem RESTful Pattern auszugestalten.
Welche Schritte in einem API Lebenszyklus-Management zu durchlaufen sind
Desgin – In der Design-Phase werden die fachlichen Anforderungen an das API definiert. Dabei wird geklärt, welche Ressourcen das API beinhalten muss und welche Operationen es ausführen können muss.
Model – Die Model-Phase wird dazu genutzt, die Anforderungen im Sinne eines Vertrages in einer Schnittstellendefinition wie Swagger oder RAML festzuhalten. Dabei werden die Schnittstellendefinitionen mit allen technisch notwendigen Elementen wie beispielsweise erwartete http Response-Codes erweitert. Damit wird einerseits festgelegt, was die Entwickler umsetzen müssen und andererseits ist damit die Schnittstelle für Entwickler dokumentiert und kann als Dokumentation bereits in einer Webplattform veröffentlicht werden.
Simulate – Um bereits basierend auf der Modellierung der Schnittstelle prüfen zu können, ob diese wie erwartet funktionieren sowie die korrekten Datenstrukturen an den Aufrufer zurückliefern wird, müssen moderne API Management-Plattformen in der Lage sein, entsprechende Testaufrufe ohne Implementierung der API zu ermöglichen. Dabei werden idealerweise Testdaten direkt in die Schnittstellendefinition mit eingebracht, so dass Zulieferer und Aufrufer diese abfragen können. Als Nebeneffekt sind entsprechende Datenstrukturen als Teil der Schnittstellendefinition mitdokumentiert und festgehalten.
Abbildung 2: Ausschnitt einer RAML API Definition inkl. integrierter Testdaten im json-Format
Get Feedback – Um schnell erste Eindrücke und die Verifikation der Schnittstellendefinition zu erhalten, empfiehlt es sich, die Schnittstellendefinition für einen definierten Benutzerkreis zu veröffentlichen. Diese Benutzer können basierend den in der Phase Simulate beschriebenen Testaufrufe die fachliche Abnahme der Schnittstellendefinition vornehmen und bereits jetzt, ohne dass eine einzige Zeile Sourcecode geschrieben wurde, ihr Feedback zur Schnittstelle abgeben.
Validate – Liegt das Feedback vor, kann die fachliche Dokumentation (bspw. Geschäftsprozesse) zum API im API Portal ergänzt und veröffentlicht werden. Mit Abschluss der Phase Validate liegt nun ein fachlich abgenommenes, technisch funktionierendes und vollständig dokumentiertes API vor, welches nun von den Entwicklern implementiert werden kann.
Build – Eine der Stärken des bisher beschriebenen Vorgehens liegt darin, dass die Definition des APIs von dessen Implementierung getrennt wurde. Da zum Zeitpunkt der Build-Phase die Schnittstellendefinition inkl. Datenstrukturen definiert und abgenommen vorliegt, können nun Backend- wie auch Frontendentwickler parallel mit ihrer Arbeit beginnen und ihre Implementierung gegenüber der in der Schnittstellendefinition eingebauten Simulation testen. Dadurch bestehen keine sequentiellen Abhängigkeiten mehr, welche bislang die Implementierung einer Schnittstelle verlängerten.
Test – Die API Entwicklungsplattform erlaubt den Entwickler ihre gängigen Testmuster wie bspw. Unittesting weiterhin zu nutzen und entsprechende Testläufe zu automatisieren. Die Testphase bedingt somit keiner methodischen Anpassung durch die Entwickler.
Deploy – Sind alle Tests erfolgreich durchgelaufen, kann der Entwickler seine Implementierung manuell oder durch Einbindung der bestehenden CI/CD Plattform automatisch auf eine Runtime deployen. Hierzu unterstützt die API Management Plattform idealerweise On-premise- wie auch Cloudlösungen.
Manage – Die Phase Manage widmet sich den Governance-Aspekten in der Bereitstellung eines APIs. Hierin können SLAs und Regeln zur Nutzung des APIs festgelegt werden, um einerseits dessen Stabilität und andererseits den Schutz der Runtime vor Überlast sicher zu stellen. Moderne API Management Plattformen bieten hierzu eine Vielzahl von Möglichkeiten inkl. der Möglichkeit zur Implementierung eigener Geschäftsregeln an.
Publish – Sind alle Sicherheitsaspekte definiert und die Implementierung des APIs ist verifiziert und abgenommen, kann das API nun auf eine produktive Umgebung publiziert werden. Dabei müssen verschieden Modi unterschieden werden können. Manche APIs sollen (mit entsprechenden Nutzungs- und Registrationsprozessen) öffentlich, andere nur intern bereitgestellt werden können. Zusätzlich dazu kann das neu publizierte API mit Verweis auf die in der Phase Validate bereitgestellte fachliche Dokumentation in sozialen Medien beworben und so ihr digitales Ökosystem gegen aussen sichtbar gemacht werden.
Operate – In der Phase Operate werden schlussendlich alle APIs auf ihr Funktionieren hin überwacht und liefern dabei Erkenntnisse zur Nutzungsintensität, zu Fehlerraten und weiterer, frei definierbarer Kennzahlen. In der Phase Operate sind die Ankündigungen zur Ausserbetriebnahme, die Ausserbetriebnahme selbst sowie die Inputs für eine neue Version eines APIs miteingeschlossen und können integral in einer API Management Plattform verarbeitet werden.
Warum dank einem durchgängigen API Lebenszyklus-Management Lösungen schneller implementiert werden können
Was sind nun also die Erfolgsfaktoren, um zu mehr Speed in der Lösungsimplementierung zu gelangen? Aus unserer Erfahrung sind folgende Faktoren massgebend:
- API first / Contract first: Definieren Sie vor der Implementierung etwelcher Komponenten, welche Daten an welchen Knotenpunkten auszutauschen sind und stellen Sie somit sicher, dass Sie die entsprechende Domäne / den entsprechenden Geschäftsprozess verstehen.
- Mocking basierend auf der API-Definition: Testen, verifizieren und validieren Sie Ihre APIs bereits auf Basis derer Definitionen und holen Sie so noch vor Start der API-Implementierung Feedbacks und Freigaben zur API-Definition ein.
- Kollaboration: Setzen Sie kurzzyklische iterative Prozesse zwischen Entwickler und Anforderungssteller zur Definition und Verifikation der APIs ein – fail fast, improve fast.
Abbildung 3: Mehr Speed dank frühestmöglicher API-Validierung und Parallelisierung in der Implementierung
Fazit
So wie die Natur die Lebenszyklen eines Schmetterlings managt, so müssen Sie auch die Lebenszyklen Ihrer APIs aktiv managen. Dabei empfiehlt es sich, einerseits einen ganzheitlichen Entwicklungsprozess zu implementieren und andererseits eine Plattform zu wählen, die diesen Prozess integral in einer Plattform anbietet, so dass alle APIs von einem Punkt heraus aktiv gemanagt sowie qualitativ hochstehend und rasch entwickelt werden können. Durch die Möglichkeiten frühzeitiger API-Nutzer- Feedbacks sowie der parallelen Entwicklung und Integration von APIs werden Ihre Stakeholder von Ihrer neugewonnenen Lösungsgeschwindigkeit begeistert sein.
Experten in API Lifecycle Management
Wenn auch Sie sich für die Implementierung eines ganzheitlichen API Entwicklungsprozesses interessieren, sind wir für Sie da. Als Experten im Thema Applikationsintegration und API Lifecycle Management unterstützen wir Sie in der Evaluation von API Management Plattformen und in der Implementierung der entsprechenden Prozesse sowie in der Lösungsarchitektur und Implementierung Ihrer flexiblen Business-Plattform. Kontaktieren Sie uns!
Übrigens: Wenn Sie keinen Beitrag mehr verpassen wollen, folgen Sie uns einfach auf LinkedIn oder lesen Sie unsere weiteren Blogbeiträge zum Thema API Lifecycle Management.