Hinweis: Dieser Blogbeitrag stammt aus der Zeit vor dem Zusammenschluss und wurde von ARS realisiert – heute Teil von ATVANTAGE. Unsere Erfahrung bleibt – nur unser Name hat sich geändert. Hier finden Sie weitere Informationen rund um die Fusion.

Lesezeit: 4 Minuten

DevOps und APIOps in der Praxis: Erfolgsfaktoren und Best Practices
 

Im letzten Teil unserer Serie beleuchten wir die praktische Anwendung von DevOps und APIOps. Gerade für Teams, die an modernen, verteilten Systemen arbeiten und DevOps-Methoden optimal umsetzen wollen, ist die Integration von APIOps ein entscheidender Faktor. Dieser Artikel zeigt anhand eines realen Projekts, wie beide Ansätze erfolgreich in der Praxis umgesetzt werden können. 

Zielsetzung

Ein Versicherungsunternehmen beschäftigt mehrere Teams, die an separaten Software-Produkten arbeiten. Diese Teams agieren unabhängig voneinander und folgen eigenen Release-Zyklen. Das Ziel des Unternehmens ist es, echte DevOps-Prozesse einzuführen. Da die verschiedenen Software-Produkte über APIs kommunizieren, sollen die DevOps-Prozesse auch die API-Landschaft abdecken und APIOps eingeführt werden.
Die Ziele sind dabei:

•    Unabhängige und eigenverantwortliche Nutzung durch die Teams
•    Übergreifende Einführung von Automatisierung
•    Qualitätskontrollen nach zentralen Vorgaben
•    Einheitliche Prozesse zur Verwaltung des API-Lebenszyklus

Aufbau

Für die Umsetzung entscheiden wir uns für GitHub Actions. Mit diesem Werkzeug können wir sehr einfach vordefinierte Bausteine mit eigenen Aktionen ergänzen. Dadurch erhalten wir einfache Wiederverwendbarkeit von häufig eingesetzten Aktionen und zugleich die Freiheit, komplexere Abläufe selbst zu steuern. Gleichzeitig bietet uns GitHub-Actions eine einfache Art, CI/CD direkt mit unserer Codeverwaltung zu integrieren. Wir ergänzen die vordefinierten Actions mit Custom-Actions, also selbst definierten Aktionen. Diese Aktionen können durch die einzelnen Teams in ihre eigene Pipeline in den Workflow integrieren werden.
 

Abbildung 1: Exemplarischer Lauf der Pipeline

Erste Schritte: OpenAPI-Scans und Tests

Die erste Action scannt alle OpenAPI-Dateien im Projektordner und prüft sie mit einem Linter als statischem Analysetool zunächst auf syntaktische Korrektheit sowie auf die Einhaltung der unternehmenseigenen REST-Guideline. Am Ende werden Warnungen und Verstöße gegen verpflichtende Regeln in einer Zusammenfassung des Pipeline-Laufs tabellarisch dargestellt. Darüber hinaus werden alle OpenAPI-Spezifikationen auf Änderungen überprüft, und mittels eines Diff-Tools wird die Rückwärtskompatibilität dieser Änderungen geprüft. Diff-Tools vergleichen zwei Versionen einer API und prüfen auf Änderungen, die potenziell bestehende Clients beeinträchtigen könnten. So wird sichergestellt, dass Änderungen rückwärtskompatibel sind und keine unerwarteten Fehler in den abhängigen Systemen auftreten. So wird der Entwickler direkt nach dem Commit darauf hingewiesen, ob die vorgenommenen Änderungen an der OpenAPI für bestehende Clients problematisch sind und welche Änderungen das konkret betrifft. Optional kann dieses Vorgehen durch die Einbindung von Consumer Driven Contract Tests mit Pact ergänzt werden. Diese Tests ermöglichen es, den Servicevertrag zwischen verschiedenen Services zu testen. Dies stellt sicher, dass Änderungen in der API keinen unerwarteten Bruch bei den Consumer-Diensten verursachen.

Erspüren von Anpassungsbedarfen

Diese Systematik der Team-Topologien und ihrer Kommunikationsmodi ermöglicht eine gezielte Strukturierung der Inter-Team-Kommunikation im Hinblick auf das Gesetz von Conway zur Erreichung der gewünschten Systemarchitektur, die Angleichung der tatsächlichen kognitiven Last auf die Teamkapazität und den gleichermaßen effizienten wie effektiven Einsatz von Kommunikationsaufwänden. Das Definieren der Kommunikationsstruktur einer Organisation ist jedoch keine einmalige Aufgabe. Ändern sich Voraussetzungen, die einer gewählten Struktur zugrunde liegen, so muss auch die Struktur dem geänderten Bedarf angepasst werden - entweder temporär oder dauerhaft. Daher muss eine Organisation solche Anpassungsbedarfe aktiv erspüren und systematisch darauf reagieren.

Ein exemplarischer Lauf der Pipeline mit der beschriebenen GitHub Action:

Im Beispiel sehen wir, dass beim letzten Commit zwei Dateien geändert wurden: cats.yml und dogs.yml. Daraufhin wird die GitHub Action (on-push Trigger) ausgeführt und ermittelt, welche OpenAPI-Dateien geändert wurden. Für jede der OpenAPI-Dateien läuft nun ein weiterer Schritt, in dem die Überprüfungen durch Linter und Diff durchgeführt werden: Dieser Schritt stellt fest, dass die Datei dogs.yml derart geändert wurde, dass Consumer betroffen sind. Deshalb schlägt der Build fehl, da eine der geänderten Dateien die automatische Prüfung nicht bestanden hat.
Das Ergebnis eines erfolgreichen Pipeline-Laufs wäre, dass die API veröffentlicht wird und für die Consumer bereitsteht. Da jedoch noch eine Abhängigkeit zur Version der Software besteht, wird die veröffentlichte API noch nicht unter dem öffentlichen DNS-Namen der Software bereitgestellt, sondern nur für den internen Gebrauch freigegeben. Die Umschaltung des DNS-Eintrags auf die neue Version erfolgt erst, wenn Software und API aktualisiert wurden.

Nächste Schritte: Bau und Release der Anwendung

Weitere Actions kümmern sich um den Bau, die Analyse und das Testen der Anwendung. Mithilfe von SonarQube führen wir statische Code-Analysen durch, um die grundlegende Qualität sicherzustellen. Anschließend werden automatisierte Tests durchgeführt. Sind alle Qualitätschecks erfolgreich, wird die Anwendung auf die Zielumgebung deployed, und die API in der neuen Version wird aktiviert.
 

Ausblick

In modernen, containerisierten Umgebungen, die oft auf Kubernetes basieren, spielen Pipelines eine entscheidende Rolle bei der Orchestrierung der Deployments. Infrastructure as Code (IaC), z. B. mit Terraform oder Ansible, ermöglicht dabei eine automatisierte Bereitstellung und Verwaltung der Infrastruktur, wodurch DevOps- und APIOps-Prozesse weiter skalierbar und wiederholbar werden. Die enge Verzahnung dieser Technologien erleichtert es Teams, kontinuierlich neue Versionen sowohl von Anwendungen als auch von APIs zu entwickeln, zu testen und auszurollen, während gleichzeitig die Infrastruktur konsistent bleibt.
 

Auswirkungen auf die Teams

Die Bereitstellung der Pipeline-Bausteine und deren Wartung erfolgt durch ein Platform-Team, das als Dienstleister für die Stream-Aligned-Produktteams fungiert. Auch der Betrieb der ausführenden Pipeline-Infrastruktur mit GitHub wird vom Platform-Team übernommen. Um den Produktteams die Erstellung und Nutzung der Tools zu erleichtern, wird ein Enabling-Team geschaffen, das Coaching und Onboarding anbietet. Da die Produktteams jedoch unabhängig voneinander ihre Pipelines aufbauen und verwalten können, erreichen wir eine hohe Skalierbarkeit der Arbeitsaufwände und können die Kommunikation zwischen den beteiligten Teams gut steuern. So wird die kognitive Last der Beteiligten nicht überstrapaziert.
Eine Gefahr besteht darin, dass die Stream-Aligned-Teams im Laufe der Zeit unbeabsichtigte Nutzungsmöglichkeiten der Pipelines entwickeln oder sogar parallele Lösungen entstehen. Um dem entgegenzuwirken, werden die Projekte regelmäßig vom Enabling-Team geprüft. Falls eine Verwilderung der DevOps-Tools festgestellt wird, kann das Enabling-Team korrigierend eingreifen und die Teams zur korrekten Nutzung zurückführen.
 

Fazit

Das Thema DevOps und CI/CD ist nicht neu. Seit etlichen Jahren beschäftigt sich die Industrie mit diesen Praktiken, und es werden ständig neue Trends gesetzt. Dennoch stellen wir oft fest, dass der tatsächliche Einsatz dieser Praktiken auf Herausforderungen stößt. Besonders schlechte Kommunikation oder unklare Verantwortungsbereiche führen schnell zu Hindernissen. Dadurch steigt der Aufwand, der in die Anwendung von DevOps investiert werden muss, und die beteiligten Mitarbeiter entwickeln Frustration. Wir haben aufgezeigt, was aus unserer Sicht getan werden kann, um in diesem Umfeld gute Voraussetzungen für effiziente Kommunikation zu schaffen. Mit den vorgeschlagenen Teamschnitten können Fähigkeiten

Blogautor

Johannes Brühl
Softwarearchitekt ARS Computer und Consulting GmbH

Ihr Erfolg ist unser Ziel

Stehen Sie vor komplexen IT-Projekten? Mit unserer Expertise bieten wir Ihnen maßgeschneiderte Lösungen. Erfahren Sie mehr.

Werde Teil unseres Teams

Wir suchen ständig nach neuen Talenten. Für dich haben wir genau die richtige Stelle. Schau dir unsere offenen Positionen an.

Noch Fragen? Wir helfen Ihnen gerne!

Blog 10.10.24

DevOps? Warum APIOps der nächste logische Schritt ist

APIOps erweitert DevOps-Praktiken auf APIs, um deren Entwicklung zu automatisieren und zu optimieren. Dieser Ansatz verbessert Qualität, Sicherheit und Geschwindigkeit im API-Management.

Blog 05.09.24

Effiziente DevOps-Teams: Teamschnitte und Kommunikation

Durch gezielte Teamschnitte und optimale Kommunikationsmodi wird die kognitive Last in DevOps-Teams reduziert. Für effizientere Zusammenarbeit und kontinuierlichen Fortschritt.

Blog 23.08.24

"DevOps, quo vadis?" – Team Topologien

Erfahren Sie, wie Team-Topologien in DevOps Silos aufbrechen und erfolgreiche Zusammenarbeit fördern. Entdecken Sie die vier fundamentalen Teamarten.

Blog 18.07.24

Ticket-Schneiden: Best Practices und Agile Methoden

Erfahren Sie, wie Sie effektive Tickets für die Softwareentwicklung schreiben und schneiden, um Probleme zu vermeiden. Mehr über die Bedeutung von User Stories und deren korrekte Umsetzung.

Teaserbild Unternehmensprozesse mit Low-Code digitalisieren
Blog 04.04.23

Unternehmensprozesse digitalisieren – am besten mit Low-Code

Auch heute geht das Digitalisieren von Unternehmensprozessen eher schleppend voran. Low-Code Plattformen von Anbietern wie Mendix können hier Abhilfe leisten.

Blog

Der Cloud vorgelagert: Edge Computing für Datenanalysen

Sicherheitsbedenken und Performance-Engpässe gestalten die Verarbeitung und Analyse von Daten in der Cloud zunehmend schwierig. So spricht einiges für eine Zwischenschicht: den Edge.

Branche

Digitaler Wandel in der Öffentliche Verwaltung

Die digitale Transformation wird die Arbeitswelt gerade in der öffentlichen Verwaltung massiv verändern. Wir unterstützen die Behörden von Bund, Ländern und Kommunen bei der strategischen und technischen Umsetzung ihrer Projekte in der Verwaltungsmodernisierung.

Schild als Symbol für innere und äußere Sicherheit
Branche

Innere und äußere Sicherheit

Verteidigungskräfte und Polizei müssen Bürger*innen und den Staat vor immer neuen Bedrohungen schützen. Moderne IT- & Softwarelösungen unterstützen dabei.

Blog 01.08.24

Migration von HOST-Anwendungen zu AWS: Modernisierung

Lernen Sie, wie moderne AWS-Services nahtlos in bestehende Host-Landschaften integriert werden und profitieren Sie von den Vorteilen von Serverless-Technologien.

Headerbild für lokale Entwicklerressourcen in Deutschland
Branche

Digitalisierungspartner vor Ort für Versicherungen

Wir finden die optimale IT-Lösung für Versicherungen! ► Alles aus einer Hand ✓ Persönlich vor Ort ✓ Jetzt persönlichen Austausch vereinbaren.

Headerbild zur Logistik- und Transportbranche
Branche

KI & Digitalisierung für die Transport- und Logistikbranche

Digitalisierung und Transparenz der Prozesse sowie automatisierte Unterstützung bei der Optimierung können Logistikunternehmen helfen, den Spagat zwischen Kosten und Leistung besser zu bewältigen.

Blog 09.07.24

Ein Erfahrungsbericht zur Praxis von Lean-Agile-Prinzipien

Spiele sind nicht nur Zeitvertreib; sie sind mächtige Werkzeuge, um abstrakte Konzepte greifbar zu machen. Während eines Workshops setzten wir verschiedene Spiele ein, die nicht nur Spaß machten, sondern auch tiefe Einsichten in Lean- und Agile-Prinzipien ermöglichten. Die Entscheidungen, die die Teilnehmer während des Spiels trafen, spiegelten oft die realen Herausforderungen und Chancen wider, mit denen Unternehmen konfrontiert sind.

Blog 19.09.24

Die Zukunft datenbankzentrierter IT-Architekturen

Datenbankzentrierte IT-Architekturen prägen viele Unternehmen. Doch ist dieser Ansatz noch zukunftsfähig? Dieser Artikel beleuchtet die Herausforderungen und Alternativen.

Blog 02.03.23

Enterprise Architecture vs. DevOps und agiles Mindset

Über die Rolle von Enterprise-Architekten in Unternehmen, wie sie moderne Softwareentwicklung beeinflussen und Kompetenzbereiche in IT-Abteilungen.

Blog 05.01.23

Teil 6 - Die Architektenrolle in DevOps-Teams/Organisationen

Erfahren Sie in diesem Blogbeitrag mehr über die Rolle der Architekten in DevOps-Teams und wie sich die Architekturarbeit im cloud-native Umfeld verändert hat.

Blog 26.04.24

Team Topology: Ein Wegweiser für effektive DevOps-Kultur

Erfahren Sie, wie Team Topology und effektive Kommunikationsmodi die DevOps-Kultur fördern und die Softwareentwicklung revolutionieren. Ein Wegweiser für erfolgreiches Teammanagement.

Teaserbild zum Blogbeitrag: "Welches Low-Code-Tool ist das richtige?"
Blog 12.05.23

Welches Low-Code-Tool ist das richtige für mein Unternehmen?

Wichtige Auswahlkriterien ✅ Vergleich zwischen Anbietern wie Microsoft, Mendix, HCL und SAP ✅ Wir erleichtern Ihnen im Blog die Entscheidung!

Blog 16.12.24

Wie IBM FileNet und WatsonX.AI den Arbeitsalltag verändern

Digitaler Assistent für Unternehmen: Wie IBM FileNet und WatsonX.AI den Arbeitsalltag verändern

Blog

E-Mobilität-Business lebt von der Datenqualität

Das E-Auto laden und weiterfahren? X-INTEGRATE hat dafür eine Technologieplattform entwickelt, über die sie zugleich ei-ne hohe Datenqualität sicherstellt.

Blog 28.08.23

Demokratisierung von Softwaretests

Besser und schneller Software testen: Welche Testmethoden beziehen nicht-technische Abteilungen ein? Über Tools wie Cypress und Cucumber lesen Sie hier.