„DevOps“ ist ein weiterer „Modebegriff“ der mir immer wieder über den Weg läuft (In Blogs, Vorträgen oder Gesprächen) und doch so wenige Leute können mir eine anständige Erklärung liefern, was DevOps überhaupt ist und bedeutet. Deswegen möchte ich mit diesem Artikel euch eine einfache Beschreibung an die Hand geben.
Ausgeschrieben ist DevOps eine Verschmelzung aus den Wörtern „development“ und „operations“ und wurde schlussendlich durch Patrick Debois auf Twitter erfunden zur Organisation einer Konferenz in Belgien mit dem Thema „agile System Administration“. „DevOps“ wurde somit als Hashtag zu Marketingzwecken kreiert. Daraus wurde schlussendlich der weltweit bekannte „DevOps Day“. Ziel war es die Experten aus Entwicklung und Betrieb zusammenzubringen für die Themen:
- Automatisierung
- Testing
- Sicherheit
- Organisationskultur
Und Lösungen für die Berührungspunkte der beiden Gebiete zu erarbeiten.
In ganz einfachen Worten:
Die Verbindung zwischen Software-Entwicklung und Software-Betrieb
Was ist mit Dev gemeint?
- Anwendungs-Performance optimieren durch Optimierung des Codes
- Code-Fehler beheben
- Neue Features entwickeln
Was ist mit Ops gemeint?
- Anwendungs-Verfügbarkeit sicherstellen
- Kommunikation mit Usern
- Probleme beheben, bevor der User es bemerkt
- Einhaltung von SLA Inhalten
Ist DevOps das gleiche wie Agil?
Kurze Antwort: Nein
Begründung:
DevOps bedeutet viel mehr das Konzept Ende-zu-Ende eines gesamten Prozesses und Agile ist ein Prozess zum Bearbeiten komplexer Projekte. Tiefer gelegt bedeutet es sogar, dass für DevOps der agile Ansatz einer der zentralen Methoden ist um erfolgreich arbeiten zu können. DevOps bedeutet viel mehr das Konzept Ende-zu-Ende eines gesamten Prozesses und Agile ist ein Prozess zum Bearbeiten komplexer Projekte. Tiefer gelegt bedeutet es sogar, dass für DevOps der agile Ansatz einer der zentralen Methoden ist um erfolgreich arbeiten zu können.
Was ist DevOps denn nun?
DevOps ist keine Person und auch keine Methode. Es ist vielmehr ein Kunstwort zu Beschreibung eines verfahren um Prozesse zwischen Development und Betrieb zu optimieren. Folgende Schritte sind dabei betroffen:
- Entwicklung
- Tests
- Einführung
- Monitoring
- Feedback
Also der Kreislauf der Entwicklung einer Plattform.
DevOps ist also ein Vorgehen in der IT um die Qualität eines Produktes auch bei zunehmender Komplexität zu wahren.
Fälschlicherweise werden manchmal Arbeitsstellen mit „DevOps“ ausgeschrieben. Damit sind Personen gemeint, welche sowohl die Entwicklung, als auch den Betrieb einer Plattform im Auge haben und alle Teilbereiche eingreifen können. Diese sind:
- Fachbereich (ProductOwner)
- Entwickler
- Tester oder Qualitätssicherung
- Security
- System-Architekt
- Support
- UX Designer
Quasi ein Mädchen für alles, welches alle Teilbereiche eines Produktes optimieren kann.
Mehrwert von DevOps
Die Anwendung von DevOps bringt im Endeffekt zwei wesentliche Mehrwerte:
- Schnellerer Flow von Entwicklung in den Betrieb
Das bedeutet, dass die Zeit von der Entwicklung eines Features bis zum Einsatz im Betrieb verringert wird. Werkzeuge oder Methoden dazu sind: Continuous Build, Integration, Test und Deployment, sowie das Beschränken großer Umgebungen von Systemen und Organisationen drumherum. - Dauerhaftes Feedback für die Entwicklung
Durch das direkte Feedback vom IT-Betrieb an die Entwicklung wird verhindert, dass ein Problem nicht zweimal auftritt und auch die Wege schnell und unkompliziert sind. Werkzeuge dafür sind zum Beispiel ein Ticket-System gekoppelt mit der Entwicklung (gitlab).
Ich hoffe, ich konnte euch einen kleinen Einblick in den Begriff DevOps gewähren, sodass ihr zumindest wisst, was sich tatsächlich damit gemeint ist.
Zum Abschluss noch ein klasse Zitat von Patrick Debois:
„And remember it’s all about putting the fun back into IT“
Folgend noch ein kleiner Verweis auf einen kurzen Vortrag, der das Thema DevOps sehr lebhaft erklärt: