/

DevOps

Definition:

DevOps

Inhalt

DevOps ist ein Konzept zur besseren automatisierten Zusammenarbeit der Softwareentwicklung (Dev für Development) und der IT-Abteilung (Ops für Operations) in Unternehmen. Ziel ist es, durch agile Prozesse und Methoden einen kürzeren Entwicklungsprozess zu schaffen, der kontinuierlich bessere Anwendungen und Services für die Kundschaft bereitstellt. Das Konzept hat kulturelle, systemische, methodische und instrumentelle Dimensionen.

Definition: Was ist DevOps?

Der Begriff DevOps kam ca. im Jahr 2007 auf und steht für die Erkenntnis, dass Softwareentwickler und IT Operations-Abteilungen agiler zusammenarbeiten müssen, wenn sie in der Digitalisierung mit ihren Produkten und Lösungen am Markt Schritt halten wollen. Durch Automatisierung der Softwareentwicklung und des Produktlebenszyklus ist es möglich, steigende Kundenansprüche an Aktualität und die Bereitstellung neuer Software, Services und Tools zu beantworten. DevOps ist zwar kein starres Framework mit festem Toolkit, folgt aber in den meisten Betrieben und Teams denselben Grundbedingungen:

  • agile Methoden wie Sprints und Storys bei Planung, Produktion, Feedback und Monitoring
  • Continuous Integration und Continuous Delivery (CI/CD) über das Automatisieren von Code Merges, Tests und Deployment
  • absolute Transparenz innerhalb des Teams, gestützt durch die Kultur im gesamten Bereich und Tools wie Git Repositories (Code-Kontrollsystem) sowie entsprechende Workflows (Infrastructure as Code)
  • gemeinsame KPIs für Monitoring (Überwachung) und Controlling für einheitliches Verständnis der Mitarbeitenden
  • Software as a Service als Grundansatz für die Interaktion zwischen IT- Operations und Kundschaft

Mit kleinen Anpassungen lassen sich diese Methoden auf die Zusammenarbeit in ähnlichen Teamstrukturen mit anderen Schwerpunkten übertragen. So sind aus DevOps „Teildisziplinen“ wie DataOps (DevOps plus Data Science) oder DevSecOps (DevOps plus Security) entstanden, welche in datengetriebenen Unternehmen Einsatz finden und von essenzieller Bedeutung sind.

DevOps-Kultur: Was sind die Vorteile von DevOps?

Rücken verwandte Bereiche und Abteilungen in einem Unternehmen enger zusammen, führt dies meist zu einer positiven Veränderung der Unternehmenskultur. Dies ist nicht auf die Softwarenentwicklung beschränkt, entfaltet aber in einer digital getriebenen betrieblichen Umgebung besondere Vorteile. DevOps-Strukturen, -Prozesse und -Methoden stellen sicher, dass:

  • eine enge Zusammenarbeit zwischen der Entwicklung und dem IT-Betrieb ermöglicht wird, was zu einer besseren Kommunikation, höheren Effizienz, Agilität und schnelleren Umsetzung von Projekten führt
  • Ziele, Meilensteine und Aufgaben besser geplant und umgesetzt werden
  • Teammitglieder untereinander sowie verschiedene Teams miteinander transparent und kontinuierlich kommunizieren
  • Anforderungen von Stakeholdern und Kundenerwartungen (an Software) sofort sowie umfassend erfüllt werden
  • Verantwortung innerhalb des Teams klar definiert und getragen wird
  • Entwicklungszeiten signifikant verkürzt werden
  • Produkte, Anwendungen und Services zu schneller Marktreife gelangen
  • stabile, zuverlässige Systeme und Infrastrukturen geschaffen werden (Steigerung der Qualität und Sicherheit der Software)
  • Wettbewerbsvorteile generiert werden
  • der Wandel von starren Softwareendprodukten zum Service-Ansatz vollzogen werden kann

Was ist die DevOps Pipeline?

Die DevOps Pipeline ist das Framework für jeden Schritt im Entwicklungsprozess einer Software. Sie besteht üblicherweise aus acht Phasen. Im Sinne des agilen Projektmanagements müssen diese nicht alle durchlaufen werden oder können um weitere Schritte ergänzt werden. Streng genommen ist die Pipeline ein Infinity Loop, da die Prozesse und Phasen je nach Impuls (zum Beispiel durch Kundenfeedback) kontinuierlich und automatisiert durchlaufen werden. Die DevOps Pipeline beinhaltet in einer optimierten Variante die sogenannte CI/CD-Pipeline.

Phase 1 – Plan

Projekt- und Produktmanager:innen erstellen eine Roadmap für die Entwicklung einer Software und berufen sich auf den Input von Kundschaft und anderen Stakeholdern.

Phase 2 – Code

Softwarearchitekt:innen und Entwickler:innen erstellen Codes nach den Vorgaben der Roadmap. Dabei werden parallel weitere Inputs integriert und es wird über enge Feedbackschleifen an der Optimierung der Vorgaben gearbeitet.

Phase 3 – Build

Codes werden innerhalb der Entwicklungsteams geschrieben, überprüft, zusammengefügt und Tests unterzogen. In diesem Abschnitt entsteht eine CI/CD-Pipeline (Continuous Integration/Continuous Delivery) – ein fortlaufender Prozess im Team, der Codes und Änderungen nachverfolgbar macht und Fehler vermeiden soll.

Phase 4 – Test

Jeder erfolgreiche Build-Sprint zieht Tests in einer Staging-Umgebung nach sich – also Testverfahren in einer annähernd realistischen Umgebung.

Phase 5 – Release

Die Anwendung wird für die Produktionsumgebung und den Release bereitgestellt sowie mit allen notwendigen Schnittstellen, Abhängigkeiten und Updates versehen.

Phase 6 – Deploy

Die Anwendung wird über diverse Tools veröffentlicht.

Phase 7 – Operate

Kund:innen nutzen die Anwendung; das Betriebsteam kümmert sich um Server-Konfigurationen und die korrekte Bereitstellung.

Phase 8 – Monitor

Über Daten aus der Anwendungsperformance und dem Userverhalten wird die gesamte Pipeline überwacht und bei entsprechenden Problemen eingegriffen.

DevOps Tools und -Software

Eine wesentliche Aufgabe von DevOps besteht darin, die Entwicklung und Implementierung von IT-Infrastrukturen sowie Anwendungen zu beschleunigen, indem Prozesse mit speziellen Methoden, Verfahren und Softwaretools automatisiert werden.

Sowohl in jeder Phase der DevOps Pipeline als auch in der gesamten Zusammenarbeit setzen Teams auf unterschiedliche Tools und Software. Im Rahmen des DevOps Lebenszyklus werden z. B. Ansätze wie agile Softwareentwicklung, Infrastructure as Code oder Continuous Integration und Continuous Delivery eingesetzt. Welche Tools bestimmte Bedingungen und Funktionen für das jeweilige Team erfüllen, müssen Sie im Sinne des agilen Arbeitens selbst entscheiden. Zu häufig verwendeten Tools und Werkzeugen gehören:

  • Kanban-Tools wie Microsoft Azure Boards für das Projekt- und Phasenmanagement
  • Code- und Versionsverwaltung über Git mit Lösungen wie GitLab
  • Konfigurationsverwaltung, Releasemanagement und Containerisierung über diverse Plattformen
  • Business Intelligence-Software für Monitoring und Datenanalyse wie Microsoft Power BI

Sie haben weitere Fragen?

Sprechen Sie jetzt mit unserem Cloud Analytics Experten und wir zeigen Ihnen, wie Sie Ihr Unternehmen auf die nächste Stufe bringen können.

Dürsin Kurt
CEO Cloud Analytics