web 1935737 640 1

Der Begriff DevOps (Development Operations) ist englischen Ursprungs und setzt sich aus „Dev“ (Entwicklung, Development) und „Ops“ (Vorgänge, Operations) zusammen. Mit DevOps wird ein Ansatz beschrieben, wie Prozesse, Technologien und Menschen vereint werden sollen, um Kunden kontinuierlich hochwertige Produkte zu liefern. Im folgenden Artikel gehen wir auf die Merkmale von DevOps im Detail ein und beleuchten das Thema von allen Seiten.

Development Operations im Überblick

Der Begriff DevOps bezieht sich auf einen Prozessverbesserungsansatz, der in erster Linie in der Softwareentwicklung und Systemadministration zum Einsatz kommt. Dieser Ansatz verfolgt das Ziel, in den Bereichen IT-Betrieb, Entwicklung und Qualitätssicherung für eine bessere und effizientere Zusammenarbeit zu sorgen. Um dies zu erreichen, kommen besondere Prozesse, Tools und Anreize zum Einsatz. Die verbesserte Zusammenarbeit der unterschiedlichen Teilbereiche wirkt sich äußerst positiv auf die Geschwindigkeit der Softwareentwicklung aus, wodurch auch die Kooperation zwischen den einzelnen Teams nachhaltig verbessert wird.

computer 1343393 640

Der Development Operations-Ansatz bringt insbesondere für Teams eine Vielzahl unterschiedlicher Vorteile. So ermöglicht DevOps beispielsweise zuvor getrennte Rollen, wie IT-Betrieb und Sicherheit, einheitlich zu koordinieren und zusammenzuführen. Mit der Einführung innovativer Development Operations-Methoden und -Tools können Teams effizienter und schneller auf die Anforderungen ihrer Kundschaft reagieren, um zuverlässigere und bessere Dienstleistungen und Produkte bereitzustellen. Wenn Teams, die Methoden, Tools und Kultur einführen, die von DevOps bereitgestellt werden, können sie schneller bessere Produkte entwickeln. Diese effizientere Produktivität und Zusammenarbeit wirkt sich äußerst positiv auf das Erreichen folgender Geschäftsziele aus:

– Schnellere Anpassung an neue Marktbedingungen und Wettbewerb

Optimierung der MTTR (mittlere Reparaturzeit)

– Bessere Zuverlässigkeit und Stabilität wichtiger Systeme und IT-Server

Anwendungslebenszyklus im Kontext von DevOps

Development Operations wirkt sich durch die enge Einbindung seiner Methoden im hohen Maße auf den Anwendungslebenszyklus aus. Jede Phase ist von der anderen Phase abhängig und keine der Phasen sollte als eine geschlossene Einheit betrachtet werden. In einer Idealen Implementierung des Development Operations-Ansatzes ist jede Rolle bis zu einem bestimmten Grad an jeder Phase beteiligt. Anwendungslebenszyklus im Kontext von DevOps ist durch vier Phasen gekennzeichnet:

  1. Plan: DevOps-Teams definieren, konzipieren und beschreiben in der Planungsphase die Funktionalitäten und Features der Anwendung und aller Systeme, an denen sie aktiv arbeiten. Die Teams verfolgen dabei den Fortschritt von Aufgaben für ein einzelnes Produkt bis hin zu Aufgaben für ein vielfältiges Produktspektrum. Die gesamte Planung läuft dabei äußerst flexibel ab. Durch das Erstellen von Backlogs wird die Sichtbarkeit erhöht, sodass Fehler besser nachverfolgbar sind
  2. Entwickeln: Die Entwicklungsphase beinhaltet alle Programmierarbeiten. Hierzu gehören neben dem Schreiben, Testen, Prüfen und der Integration des Codes auch die Einbindung des Codes in sogenannte „Buildartefakte“. Diese können in einer Vielzahl verschiedener Umgebungen bereitgestellt werden, wie beispielsweise Microsoft Azure, Amazon Web Services oder Google Cloud.
  3. Bereitstellen: Unter „Continuous Delivery“ versteht man das zuverlässige und konsistente Bereitstellen von Anwendungen in Produktionsumgebungen. Diese Phase umfasst auch die Inbetriebnahme und Konfiguration der zugrundeliegenden IT-Infrastruktur und aller virtueller Maschinen, auf der die Anwendungen ausgeführt werden. Die Teams definieren in der Lieferphase einen Releaseverwaltungsprozess mit strikten Genehmigungsphasen. Die Automatisierung dieser Prozesse führt nicht nur zu einer besseren Skalierung und Kontrolle, sondern Prozesse lassen sich so zudem flexibler wiederholen, ohne dass dadurch die Release-Planung wesentlich beeinträchtigt wird.
  4. Betreiben: Zu der Betriebsphase gehören u. a. die Überwachung, Verwaltung und Problembehandlung von Applikationen in Produktionsumgebungen. Im Rahmen der Einführung neuer DevOps-Methoden müssen die Verfügbarkeit und Zuverlässigkeit bestehender Systeme gewährleistet werden, wobei eine Vermeidung von Ausfallzeiten angestrebt werden sollte.
Mehr zum Thema:
Wofür benötigt man Monday?

kanban 4051777 640

DevOps und die Cloud

Cloud-Systeme bekommt immer mehr an Bedeutung und verändern maßgeblich die Arbeitsweise von Teams bei der Entwicklung, Bereitstellung und dem Betreiben von Anwendungen. Durch den Einsatz moderner DevOps-Methoden können Teams ihre bestehenden Methoden und Prozesse optimieren, um cloudnative Anwendungen optimal zu betreuen. Moderne Cloud-Systeme bieten Unternehmen eine enorme Flexibilität. So können Entwicklerteams beispielsweise ihre Anwendungen flexibler entwickeln, da sie auf eine schnelle Bereitstellung setzen und Cloud-Umgebungen mit unbegrenzten Ressourcen nutzen. Unternehmen müssen nicht mehr in eigene physische Hardware investieren. Stattdessen können Teams durch den Einsatz moderner Cloud-Umgebungen, wie beispielsweise Microsoft Azure, virtuelle Server nach Bedarf erstellen oder herunterfahren, wenn sie nicht mehr benötigt werden.

Im Rahmen moderner DevOps-Methoden hat sich in den letzten Jahren die Containertechnologie durchgesetzt und die Art und Weise, wie Apps in der Cloud bereitgestellt werden, maßgeblich verändert. Tools wie Docker und Kubernetes haben sich als Branchenstandard für das Erstellen und Bereitstellen von Containern entwickelt. Da die Verwaltung der gesamten IT-Infrastruktur zum größten Teil zum Aufgabenbereich des jeweiligen Cloudanbieters gehört, wie Amazon Web Services oder Microsoft Azure, können sich Teams voll und ganz auf die Entwicklung konzentrieren. Durch den Einsatz des serverlosen Computings lassen sich Anwendungen ausführen, ohne dass der Server konfiguriert oder verwaltet werden muss. Darüber hinaus stehen unterschiedliche Tools zur Reduzierung der Komplexität zur Verfügung.