4 Tipps für Devops-Teams

So entwickeln Sie "ecosystem-ready"

11.10.2023 von Isaac Sacolick
Ökosystemtaugliche APIs und Applikationen brauchen mehr als nur robuste Prozesse. Das sollten Devops-Teams wissen.
Entwickeln Sie schon "ecosystem-ready"?
Foto: Hurca - shutterstock.com

Sie haben Cloud-native Microservices entwickelt, einen Prozess für das API-Key-Management etabliert und die Integrationsoptionen dokumentiert. Die Frage ist nur: Sind Ihre APIs und Anwendungen auch bereit für das Ökosystem? Software-as-a-Service (SaaS)-Unternehmen haben die strategische Bedeutung der Integration in Plattform-Ökosysteme erkannt und stellen sicher, dass ihre Technologie mehr als nur APIs und Plugins bietet: Sie muss in der Lage sein, sowohl mit IFTTT-Plattformen wie Microsoft Power Automate, Zapier oder Zoho als auch mit Integrationsplattformen wie Boomi, MuleSoft und SnapLogic zu integrieren.

Ökosysteme wirken dabei deutlich breiter als Plattformen: Sie verbinden Lieferketten, interne Prozesse, Partner und Kunden. In seinem Buch "The Future of Competitive Strategy" definiert Autor Mohan Subramaniam Produktionsökosysteme als internen Weg für Unternehmen, den Wert von Daten zu erschließen. Konsumökosysteme sieht er als separate Verbindungen zu Lieferanten, Kunden und Partnern außerhalb der Wertschöpfungskette.

Was heißt "ecosystem-ready"?

Die Softwareentwicklung von einer API-First- auf eine Ecoysystem-Ready-Strategie umzustellen, erhöht die technischen Anforderungen für Devops-Teams - selbst wenn sie sich dabei nur auf interne Produktionsökosysteme fokussieren. Eine API, einen Service oder eine Anwendung zu entwickeln, die ökosystemtauglich ist, ermöglicht es verschiedenen Parteien, deren Interfaces, Daten und Funktionalitäten zu nutzen. Unabhängig davon, ob das im Rahmen einer Service-Level-Vereinbarung (SLA) definiert ist oder nicht, wird von den konsumierenden Services und Applikationen ein gewisses Maß an Robustheit, Zuverlässigkeit und Sicherheit erwartet.

Marko Anastasov, Mitbegründer des Softwareanbieters Semaphore CI/CD, liefert eine grundlegende Definition für eine ökosystemtaugliche Anwendung: "Eine Applikation, die 'ecosystem-ready' ist, legt Wert auf modulares Design, sichere und klar definierte APIs sowie robuste Monitoring- und Performance-Tools. Sie sollte sich über offene Standards nahtlos in bestehende Systeme integrieren lassen, während Continuous-Testing- und -Deployment-Strategien sichere Releases gewährleisten. Zu den kritischen Komponenten gehören dabei wirksame Security-Maßnahmen, System-Monitoring in Echtzeit und skalierbare Lösungen wie Container und Microservices."

"Ecosystem-ready" bedeutet für Devops-Teams, Best Practices in den Bereichen Testing, Daten- sowie Identity Management zu befolgen, wie Dennen Monks, Principal System Engineer beim Sicherheitsanbieter Bionic, erklärt: "Anwendungen, die Ökosystem-ready sind, müssen strenge Code-Testing-Anforderungen erfüllen, ihre Architektur anhand von Non-Functional Requirements (NFRs) validieren, compliant bleiben, wenn es um sensible Datenströme geht und Abhängigkeiten tracken. Dazu gehört beispielsweise eine solide Bestandsaufnahme aller offengelegter und über alle Services hinweg konsumierter APIs und die Validierung von Data-Broker-Services."

4 Tipps für ökosystemtaugliche Apps, APIs und Services

Wir haben uns mit einigen Experten unterhalten und geben Devops-Teams vier Tipps an die Hand, was über die genannten Grundlagen hinaus nötig ist, um "ecosystem-ready" zu entwickeln.

1. Security-Anforderungen und -Testing einbeziehen

Ökosystem-Komponenten benötigen robuste Sicherheitsimplementierungen, wie Filip Verlov, Field CTO bei Noname Security, weiß: "Unternehmen, die ein guter Ökosystempartner sein wollen, müssen API-Integration so einfach wie möglich gestalten. Dabei sollten sie sich darauf konzentrieren, sicheren Code bereitzustellen, indem sie Security-Testing und Integrationsdokumentation in Bezug auf APIs als Standard betrachten."

Geht es um die Sicherheitsanforderungen, unterstreicht Brian Cafferelli, Product Marketing Manager beim Softwareanbieter Quickbase, dass Security-Überprüfungen von Drittanbietern sowie integrierter DDoS-Schutz unerlässlich sind.

2. Auf offene Standards abstimmen

Der Wert einer ökosystemtauglichen Komponente steigt, wenn Partner, Kunden und andere Entwickler die zugrundeliegenden Best Practices von außen erkennen können. Eine Möglichkeit, diese Best Practices zu demonstrieren, besteht darin, sich offenen Standards zu verpflichten. Das erleichtert IT-Architekten die Evaluierung und Softwareentwicklern die Integration.

Ein guter Ansatzpunkt dafür bildet dabei das Identity Management, wie Rishi Bhargava, Mitbegründer des CIAM-Anbieters Descope, erklärt: "Ökosystemtaugliche Applikationen sollten alle wichtigen offenen, interoperablen Protokolle und Standards unterstützen, entweder nativ oder über Serviceanbieter, wie SAML, OAuth, OpenID Connect, FIDO und WebAuthn. Das gewährleistet einen sicheren und konsistenten Fluss von Benutzeridentitäten im gesamten Ökosystem und senkt die Eintrittsbarriere für jeden Partner, der die Anwendung integrieren möchte."

George Miranda, Head of Ecosystem beim Softwareanbieter Honeycomb, empfiehlt darüber hinaus, Observability-Features nicht nur für interne Diagnosen einzusetzen. Sie sollten auch dazu genutzt werden, konsumierende Services und Dienste in die Lage zu versetzen, Probleme in ihrer Servicekette zurückzuverfolgen: "OpenTelemetry (OTel) für Monitoring und Performance einzusetzen, ist nicht optional. Dabei ist ein oft übersehener Vorteil, dass das Produktintegrationen vereinfacht und wiederverwendbar macht."

3. Integrationen vereinfachen

Unternehmen sollten zudem darüber nachdenken, wie sie die Integration für nachgelagerte Entwickler erleichtern können. Deepak Anupalli, Mitbegründer und CTO von WaveMaker, erklärt: "Die Dokumentation der APIs alleine reicht nicht aus, um ein Developer-Ökosystem zu fördern. Dafür muss eine Sandbox-Umgebung geschaffen werden, in der Entwickler leicht verstehen können, wie sie APIs nutzen und sie in bestehende Datenquellen integrieren können. Design-Develop-Test-Deploy-Zyklen können in einem Ökosystem häufig auftreten und langwierig werden. Mit visuellen Entwicklungs-Tools und UI-Abstraktionen auf API-Basis, wie sie etwa Low-Code-Plattformen bieten, können Iterationen schneller und effizienter werden."

4. Generative-AI-Vorbereitungen treffen

Schließlich sollten Unternehmen auch mit Blick auf Generative AI entsprechend agieren: Sie könnten etwa ein ökosystemtaugliches Large Language Model (LLM) entwickeln, das über Drittanbieteranwendungen eingebettet und mit Prompts gefüttert werden kann.

Kjell Carlsson, Head of Data Science Strategy and Evangelism beim Softwareanbieter Domino, weiß, worauf es dabei ankommt: "Um KI nutzen zu können, müssen Unternehmen den SDLC mit dem Lebenszyklus der KI-Modellentwicklung abstimmen - und Support für ein rasant wachsendes KI-Ökosystem, bestehend aus neuen Datenquellen, Infrastrukturen, Modellen und Frameworks, gewährleisten. Erfolgreiche Unternehmen haben meist offene, flexible und hybride Entwicklungs- und Deployment-Plattformen implementiert und darüber hinaus in End-to-End-Governance und -Monitoring speziell für KI investiert."

7 Todsünden der Softwareentwicklung
1. Falsche Methodik wählen
Die richtige Methodik zu wählen, löst nicht automatisch sämtliche Probleme. Aber es verringert Reibungsverluste, die durch die Workflow-Organisation entstehen.
2. Skalierbarkeit ignorieren
Die architektonische Planung bringt manchmal jedoch auch mit sich, eigentlich gute Ideen verwerfen zu müssen. Hierbei gilt es für die Management-Ebene, Kosten und Nutzerwert von Funktionen mit Blick auf das große Ganze abzuwägen.
3. Trends verfallen
Auf jeden Technologiezug vorschnell aufzuspringen, kann nach hinten losgehen. In manchen Fällen werden dabei Fehler oder Sicherheitslücken erst im Nachhinein bekannt. Ist das kurz vor der Projekt-Deadline der Fall, sind die Probleme meist gewaltig.
4. Daten horten
Zu einer guten Softwarearchitektur gehört auch eine vorausschauende Planung, was die Menge der gespeicherten Daten angeht. Diese weitmöglichst zu minimieren, schützt alle Beteiligten und kann darüber hinaus Storage-Kosten sparen und die Systeme beschleunigen, weil auch weniger Daten in Bewegung sind.
5. Falsch auslagern
Die Debatte darüber, ob es besser ist, Software zu kaufen oder selbst zu entwickeln, tobt schon seit einigen Jahrzehnten. Dabei treffen sowohl Entwickler als auch ihre Manager regelmäßig schlechte Entscheidungen.
6. Testing meiden
Effektive Softwareentwickler wissen: Testing ist das A und O. Unit- und Integrationstests sind unerlässlich, um sicherzustellen, dass der Code während des gesamten Entwicklungsprozesses funktionsfähig bleibt.
7. Planung vernachlässigen
Programmcode erfordert in den meisten Fällen eine gewisse Hingabe an Planungsaktivitäten – was der Natur vieler Developer zuwiderläuft, die einfach nur möglichst schnell loslegen wollen.

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.