DevOps: Von der Codeänderung zum zuverlässigen Deployment

Modulare technische Installation mit den fünf verbundenen DevOps-Stationen Code, Build, Test, Freigabe und Betrieb, die den automatisierten Weg einer Softwareänderung bis zum laufenden System darstellen.

Zusammenfassung

DevOps verbindet Softwareentwicklung und IT-Betrieb mit dem Ziel, Änderungen schneller, zuverlässiger und nachvollziehbarer bereitzustellen. Automatisierte CI/CD-Pipelines übernehmen dabei wiederkehrende Schritte wie Build, Tests und Deployment. Ergänzt durch GitOps, Infrastructure as Code, Monitoring und kurze Feedback-Loops können Fehler früher erkannt und Änderungen kontrolliert ausgerollt werden. Entscheidend ist jedoch nicht nur die Technik: Zusammenarbeit, Automatisierung, Messbarkeit und Wissensaustausch bilden gemeinsam die Grundlage einer funktionierenden DevOps-Kultur.

Was bedeutet DevOps?

Bei klassisch getrennten Entwicklungs- und Betriebsprozessen entstehen häufig Übergaben zwischen verschiedenen Teams. Entwickler:innen erstellen neue Funktionen, während andere Personen für Infrastruktur, Deployment und Betrieb verantwortlich sind.

DevOps versucht, diese Trennung zu reduzieren. Entwicklung und Betrieb arbeiten enger zusammen, wiederkehrende Abläufe werden automatisiert und Informationen über den Zustand einer Anwendung fließen möglichst schnell zurück an die beteiligten Teams.

Dabei ist DevOps nicht nur eine Sammlung bestimmter Werkzeuge. Die Grundidee lässt sich mit vier Bereichen zusammenfassen: Culture, Automation, Measurement und Sharing. Zusammenarbeit und Vertrauen sind damit ebenso wichtig wie automatisierte Pipelines, Monitoring oder technische Plattformen.

CI/CD als Grundlage automatisierter Softwarebereitstellung

Continuous Integration, kurz CI, bedeutet, Änderungen möglichst früh in einen gemeinsamen Entwicklungsstand zu integrieren. Nach einer Codeänderung können automatisch Builds und Tests gestartet werden. Fehler werden dadurch nicht erst kurz vor einem Release sichtbar.

Continuous Delivery geht einen Schritt weiter: Eine erfolgreich geprüfte Version wird so vorbereitet, dass sie jederzeit veröffentlicht werden könnte. Das Deployment auf vorbereitende Umgebungen kann bereits automatisiert erfolgen, während die Freigabe für die Produktivumgebung weiterhin bewusst bestätigt wird.

Beim Continuous Deployment entfällt auch dieser letzte manuelle Schritt. Besteht eine Änderung sämtliche vorgesehenen Prüfungen, wird sie automatisch produktiv ausgerollt.

Dadurch entsteht eine Pipeline, in der jeder Schritt nachvollziehbar auf dem vorherigen aufbaut.

3D-Infografik einer CI/CD-Pipeline mit den Stufen Code, Build & Test, Freigabe und Deployment; ein fehlgeschlagener Test wird gestoppt, während erfolgreiche Softwarepakete weitergeführt werden.

Automatisierung reduziert manuelle Fehlerquellen

Ein zentrales Ziel von DevOps ist es, wiederkehrende manuelle Tätigkeiten möglichst weit zu automatisieren.

Nach einem Pull Request können beispielsweise Reviews und Statusprüfungen stattfinden. Anschließend startet eine zentrale Pipeline, erstellt die Anwendung, führt automatisierte Tests durch und erzeugt ein deploybares Artefakt beziehungsweise Container-Image.

Das reduziert nicht nur den manuellen Aufwand. Ein standardisierter Ablauf sorgt auch dafür, dass Builds und Deployments reproduzierbar ausgeführt werden. Das bekannte Problem „Auf meinem Rechner funktioniert es“ verliert dadurch an Bedeutung, weil Änderungen früh innerhalb einer gemeinsamen Pipeline geprüft werden.

GitOps und Infrastructure as Code

Automatisierung endet nicht beim Programmcode. Auch die Konfiguration der Infrastruktur kann versioniert und kontrolliert verwaltet werden.

Bei Infrastructure as Code, kurz IaC, wird Infrastruktur in Form von Dateien beziehungsweise Code beschrieben. Änderungen lassen sich damit ähnlich behandeln wie Änderungen an einer Anwendung: Sie können überprüft, versioniert und anschließend automatisiert umgesetzt werden.

GitOps verwendet ein Git-Repository als zentrale Quelle für den gewünschten Systemzustand. Wird dort beispielsweise eine Konfiguration geändert und freigegeben, kann ein Synchronisationsmechanismus erkennen, dass sich der gewünschte vom aktuellen Zustand unterscheidet, und die Infrastruktur entsprechend anpassen.

Damit wird gleichzeitig nachvollziehbar, wer wann welche Änderung vorgenommen hat.

Infografik zu GitOps und Infrastructure as Code: Ein in Git definierter Soll-Zustand wird synchronisiert und automatisch auf eine modulare Infrastruktur mit Web-Service, API-Gateway, Datenbank und Cache übertragen.

Kurze Feedback-Loops machen Fehler früh sichtbar

Automatisierung ist nur dann hilfreich, wenn sichtbar bleibt, ob sie tatsächlich funktioniert. Deshalb gehören Logs, Metriken, Traces, Statusinformationen und Alerts zu einer DevOps-Umgebung.

Scheitert ein automatisierter Test, sollte das Entwicklungsteam möglichst unmittelbar erfahren, welche Änderung betroffen ist. Auch nach einem Deployment muss der Zustand der Anwendung beobachtet werden.

Treten ungewöhnliche Fehler, Lastspitzen oder Ausfälle auf, können automatisierte Warnungen die verantwortlichen Teams informieren. Je schneller dieses Feedback eintrifft, desto schneller kann reagiert werden.

Damit entsteht ein Kreislauf: Änderung → Test → Deployment → Beobachtung → Feedback → nächste Verbesserung.

3D-Kreislauf der DevOps-Phasen Entwickeln, Testen, Betreiben und Beobachten mit direktem Feedback-Kanal von der Beobachtung zurück zur Entwicklung.

Sicher ausrollen und schnell zurückkehren

Auch eine weitgehend automatisierte Pipeline verhindert nicht jeden Fehler. Deshalb benötigt eine belastbare Deployment-Strategie zusätzliche Sicherheitsmechanismen.

Rolling Updates können neue Versionen schrittweise ausrollen, anstatt alle laufenden Instanzen gleichzeitig zu ersetzen. Health- beziehungsweise Readiness-Prüfungen stellen fest, ob eine neue Instanz tatsächlich bereit ist, Anfragen entgegenzunehmen.

Tritt trotzdem ein Problem auf, sollte ein Rollback möglichst schnell wieder auf einen funktionierenden Stand zurückführen können. Automatisierung bedeutet daher nicht, Fehler vollständig auszuschließen, sondern sie schneller zu erkennen und kontrollierter darauf reagieren zu können.

Fazit

DevOps beschleunigt Softwareentwicklung nicht allein durch schnellere Deployments. Der eigentliche Nutzen entsteht durch das Zusammenspiel aus Zusammenarbeit, Automatisierung, nachvollziehbarer Infrastruktur und kurzen Feedback-Loops.

CI/CD sorgt dafür, dass Änderungen regelmäßig gebaut und geprüft werden. GitOps und Infrastructure as Code machen Konfigurationen reproduzierbar und nachvollziehbar. Monitoring zeigt, wie sich Anwendungen im Betrieb tatsächlich verhalten.

Wir bei Aschauer IT & Business GmbH betrachten DevOps daher nicht als einzelnes Werkzeug, sondern als durchgängigen Ansatz von der Entwicklung bis zum stabilen Betrieb. Ziel sind Abläufe, die wiederholbar, transparent und möglichst weit automatisiert funktionieren.

Wenn ihr Fragen habt oder mehr über konkrete Einsatzmöglichkeiten erfahren möchtet, nutzt bitte den unten angelegten Kontaktbereich. Wir unterstützen euch gerne bei eurem Vorhaben.

Lukas Rohm

Geschäftsführer

Von Insights zu konkreten Lösungen.

Was Sie in unserem Blog lesen, setzen wir täglich in Projekten um. Lassen Sie uns gemeinsam Ihre Ideen weiterentwickeln und erfolgreich realisieren.

Scroll to Top