Was ist DevOps?

Hier erfahren Sie, wie DevOps Menschen, Prozesse und Technologien vereint, um Kunden schneller bessere Produkte zu liefern.

DevOps – Definition

Der Begriff setzt sich aus „Dev“ (Development, Entwicklung) und „Ops“ (Operations, Vorgänge) zusammen und vereint Menschen, Prozesse und Technologien, damit Kunden kontinuierlich hochwertige Produkte erhalten.

Was bedeutet DevOps für Teams? DevOps ermöglicht es zuvor getrennten Rollen wie Entwicklung, IT-Betrieb, Qualitätstechnik und Sicherheit, sich zu koordinieren und zusammenarbeiten, um bessere und zuverlässigere Produkte zu liefern. Durch die Einführung der DevOps-Kultur mit DevOps-Methoden und -Tools können Teams besser auf die Anforderungen ihrer Kunden reagieren, das Vertrauen in ihre eigenen Anwendungen steigern und Geschäftsziele schneller erreichen.

Die Vorteile von DevOps

Wenn Teams die DevOps-Kultur, -Methoden und -Tools einführen, werden sie produktiver und entwickeln schneller bessere Produkte. So können sie die Kundenzufriedenheit steigern. Diese verbesserte Zusammenarbeit und Produktivität ist auch für das Erreichen folgender Geschäftsziele entscheidend:

Kürzere Time-to-Market

Anpassung an den Markt und Wettbewerb

Aufrechterhaltung der Stabilität und Zuverlässigkeit von Systemen

Verbesserung der MTTR (Mean Time To Recover, mittlere Reparaturzeit)

DevOps und der Anwendungslebenszyklus

DevOps wirkt sich durch die Planungs-, Entwicklungs-, Bereitstellungs- und Betriebsphasen auf den Anwendungslebenszyklus aus. Jede Phase hängt von den anderen ab, und keine der Phasen ist rollenspezifisch. In einer idealen DevOps-Kultur ist jede Rolle in bestimmtem Ausmaß an jeder Phase beteiligt.

Plan

In der Planungsphase konzipieren, definieren und beschreiben DevOps-Teams die Features und Funktionen der Anwendungen und Systeme, an denen sie arbeiten. Sie verfolgen den Fortschritt mit niedriger und hoher Granularität, also von Aufgaben für ein einzelnes Produkt bis hin zu Aufgaben für ein breites Produktspektrum. DevOps-Teams planen flexibel und gewährleisten die Sichtbarkeit, indem sie beispielsweise Backlogs erstellen, Fehler nachverfolgen, die agile Softwareentwicklung mit Scrum verwalten, Kanban-Boards verwenden und den Fortschritt in Form von Dashboards visualisieren.

Entwickeln

Die Entwicklungsphase umfasst alle Aspekte der Programmierung – das Schreiben, Testen, Prüfen und Integrieren des Codes durch Teammitglieder – und das Erstellen des Codes in Buildartefakte, die in unterschiedlichen Umgebungen bereitgestellt werden können. DevOps-Teams können schnell Innovationen liefern, ohne dabei Einbußen bei der Qualität, Stabilität und Produktivität in Kauf nehmen zu müssen. Hierfür verwenden sie hochproduktive Tools, automatisieren alltägliche und manuelle Schritte und iterieren in kleinen Inkrementen durch automatisierte Tests und Continuous Integration.

Bereitstellen

Unter „Lieferung“ versteht man das konsistente und zuverlässige Bereitstellen von Anwendungen in Produktionsumgebungen. Die Lieferphase umfasst auch das Bereitstellen und Konfigurieren der vollständig gesteuerten zugrunde liegenden Infrastruktur, auf der diese Umgebungen basieren.

In der Lieferphase definieren Teams einen Releaseverwaltungsprozess mit eindeutigen manuellen Genehmigungsphasen. Sie legen außerdem automatisierte Gates fest, die Anwendungen zwischen den Phasen verschieben, bis sie den Kunden zur Verfügung gestellt werden. Durch die Automatisierung dieser Prozesse werden sie skalierbar, wiederholbar und kontrollierbar. So können DevOps-Teams ihre Projekte sowohl regelmäßig als auch einfach und souverän liefern.

Betreiben

Die Betriebsphase umfasst die Verwaltung, Überwachung und Problembehandlung von Anwendungen in Produktionsumgebungen. Bei der Einführung von DevOps-Methoden müssen Teams die Zuverlässigkeit und Hochverfügbarkeit ihrer Systeme gewährleisten und eine Vermeidung von Ausfallzeiten anstreben. Dabei muss für Sicherheit und Governance gesorgt sein. DevOps-Teams verfolgen das Ziel, Probleme zu ermitteln und schnell zu beheben, bevor sie beim Kunden auftreten und diesen beeinträchtigen. Zur Aufrechterhaltung dieser Wachsamkeit sind umfangreiche Telemetriedaten, interaktive Warnungen und eine vollständige Sichtbarkeit der Anwendungen und zugrunde liegenden Systeme erforderlich.

DevOps-Kultur

DevOps-Methoden automatisieren und optimieren Prozesse zwar durch Technologie, doch alles beginnt mit der Kultur in der Organisation und mit den Personen, die an den Prozessen mitwirken. Für die Einführung einer DevOps-Kultur sind weitreichende Änderung an der Arbeitsweise und Zusammenarbeit der Mitarbeiter nötig. Wenn Organisationen die DevOps-Kultur jedoch etablieren können, kann eine Umgebung für enorm leistungsfähige Entwicklungsteams geschaffen werden.

Zusammenarbeit, Sichtbarkeit, Abstimmung

Eine gute DevOps-Kultur zeichnet sich insbesondere durch die Zusammenarbeit der Teams aus. Diese beginnt bei der Sichtbarkeit. Unterschiedliche Teams – z. B. für die Entwicklung und den IT-Betrieb – müssen ihre DevOps-Prozesse, -Prioritäten und -Zuständigkeiten einander offenlegen. Diese Teams müssen ihre Arbeit zudem zusammen planen und ihre Ziele und Erfolgskriterien aufeinander abstimmen.

Geänderte Zuständigkeiten und Verantwortlichkeiten

Wenn sich die Teams gebildet haben, übernehmen sie den Besitz und werden an zusätzlichen Lebenszyklusphasen beteiligt – nicht nur an den Phasen, die für ihre Rolle am wichtigsten sind. Entwickler sind beispielsweise nicht nur für die Innovation und die Qualität in der Entwicklungsphase verantwortlich, sondern auch für die Leistung und Stabilität, die ihre Änderungen in der Betriebsphase bewirken. Gleichzeitig müssen IT-Mitarbeiter für Governance, Sicherheit und Compliance in der Planungs- und Entwicklungsphase sorgen.

Kürzere Releasezyklen

DevOps-Teams bleiben flexibel, da sie Software in kurzen Zyklen veröffentlichen. Durch kürzere Releasezyklen werden auch die Planung und das Risikomanagement vereinfacht, da es sich um einen inkrementellen Prozess handelt, der die Auswirkungen auf die Systemstabilität reduziert. Zudem können Organisationen auf die wandelnden Anforderungen der Kunden und auf Wettbewerbsdruck reagieren.

Kontinuierlicher Informationsfluss

Leistungsstarke DevOps-Teams konzentrieren sich auf Wachstum. Sie arbeiten nach Fail-Fast-Prinzip und integrieren Erfahrungen in ihre Prozesse, sodass diese ständig verbessert werden und die Kundenzufriedenheit steigt. So können Innovationen beschleunigt und die Anpassungsfähigkeit an den Markt gewährleistet werden. DevOps ist eine Reise, und es ist immer Raum für Wachstum.

Erfahren Sie, wie Microsoft-Teams die DevOps-Kultur übernommen haben

Weitere Informationen

DevOps-Methoden

Teams wenden DevOps nicht nur durch die Einführung einer DevOps-Kultur an, sondern auch durch das Implementieren bestimmter Methoden im Anwendungslebenszyklus. Einige dieser Methoden sind für das Beschleunigen, Automatisieren und Optimieren einer bestimmten Phase vorgesehen. Andere umfassen mehrere Phasen, damit Teams nahtlose Prozesse erstellen und so die Produktivität steigern können.

Continuous Integration und Continuous Delivery (CI/CD)

Continuous Integration ist eine Softwareentwicklungsmethode, bei der Entwickler Codeänderungen regelmäßig in den Hauptbranch des Codes mergen. Continuous Integration umfasst automatisierte Tests, die immer dann ausgeführt werden, wenn Code committet wird. Dadurch wird sichergestellt, dass der Code im Hauptbranch immer stabil ist.

Unter Continuous Delivery versteht man die regelmäßige, automatisierte Bereitstellung neuer Anwendungsversionen in eine Produktionsumgebung. Durch das Automatisieren der Bereitstellungsschritte können Teams Bereitstellungsfehler reduzieren und häufigere Updates liefern.

Wenn beide Methoden verwendet werden, resultiert daraus der CI/CD-Prozess, der alle Schritte zwischen dem Committen des Codes und der Produktionsbereitstellung vollständig automatisiert. Durch die Implementierung von CI/CD können Teams sich auf das Schreiben von Code konzentrieren sowie manuelle, alltägliche Schritte und die daraus resultierenden menschlichen Fehler vermeiden. Mit CI/CD kann neuer Code zudem schneller und risikoärmer bereitgestellt werden. Bereitstellungen werden häufiger und in kleineren Inkrementen durchgeführt. Dadurch werden Teams flexibler, produktiver und souveräner in Bezug auf den ausgeführten Code.

Versionskontrolle

Unter Versionskontrolle versteht man das Verwalten von Code in Versionen. Dabei werden Revisionen und der Änderungsverlauf nachverfolgt, damit der Code einfacher überprüft und wiederhergestellt werden kann. Diese Methode wird in der Regel mit einem Versionskontrollsystem wie Git implementiert, in dem mehrere Entwickler zusammen Code schreiben können. Diese Systeme bieten einen geradlinigen Prozess für das Mergen von Codeänderungen in einer Datei, für die Konfliktbehandlung und für das Rollback von Änderungen in frühere Zustände.

Der Einsatz eines Versionskontrollsystems stellt eine grundlegende DevOps-Methode dar, da Entwicklungsteams bei der Zusammenarbeit unterstützt werden, Programmieraufgaben unter Teammitgliedern aufteilen und den gesamten Code speichern können, damit dieser mühelos wiederhergestellt werden kann.

Die Versionskontrolle ist auch für andere Methoden wie Continuous Integration und Infrastructure-as-Code notwendig.

Mehr über Git erfahren

Agile Softwareentwicklung

Bei der agilen Softwareentwicklung handelt es sich um einen Ansatz, dessen Schwerpunkt auf Teamwork, Kunden- und Benutzerfeedback und einer hohen Anpassungsfähigkeit an Änderungen durch kurze Releasezyklen liegt. Teams, die nach dem Prinzip der agilen Softwareentwicklung arbeiten, stellen Kunden fortlaufend Änderungen und Verbesserungen zur Verfügung, holen deren Feedback ein und nutzen es, um die Wünsche und Anforderungen der Kunden für ihre Anwendungen zu berücksichtigen. Die agile Softwareentwicklung unterscheidet sich grundlegend von älteren Modellen wie dem Wasserfallmodell, bei dem lange Releasezyklen zum Einsatz kommen, die durch sequenzielle Phasen definiert werden.

Kanban- und Scrum-Methoden kommen bei der agilen Softwareentwicklung häufig zum Einsatz.

Infrastruktur als Code (IaC)

Infrastructure-as-Code definiert die Systemressourcen und Topologien deskriptiv. Dadurch können Teams diese Ressourcen so verwalten, wie sie es mit Code tun würden. Diese Definitionen können gespeichert und in Versionskontrollsystemen mit Versionen versehen werden. Dort können sie auch – wie Code – überprüft und rückgängig gemacht werden.

Durch das Anwenden von Infrastructure-as-Code können Teams Systemressourcen zuverlässig, wiederholbar und kontrolliert bereitstellen. Infrastructure-as-Code ermöglicht zudem die automatisierte Bereitstellung und reduziert das Risiko menschlicher Fehler. Davon können Sie insbesondere bei komplexen, umfangreichen Umgebungen profitieren. Diese wiederholbare, zuverlässige Lösung für die Umgebungsbereitstellung ermöglicht Teams das Nutzen von Entwicklungs- und Testumgebungen, die mit der Produktionsumgebung identisch sind. Das Duplizieren von Umgebungen in unterschiedliche Rechenzentren und Cloudplattformen wird also einfacher und effizienter.

Konfigurationsverwaltung

Unter Konfigurationsverwaltung versteht man das Verwalten des Zustands von Ressourcen wie Servern, virtuellen Computern und Datenbanken in einem System. Mithilfe von Tools für die Konfigurationsverwaltung können Teams Änderungen kontrolliert und systematisch ausrollen. Dadurch werden die Risiken reduziert, die durch das Anpassen der Systemkonfiguration entstehen können. Teams verwenden Tools für die Konfigurationsverwaltung, um den Zustand des Systems nachzuverfolgen und Konfigurationsabweichungen zu vermeiden, damit die Konfiguration der Systemressourcen nicht im Lauf der Zeit vom definierten Zustand abweicht.

Wenn die Systemdefinition und -konfiguration zusammen mit Infrastructure-as-Code angewendet werden, können einfach Vorlagen und Automatisierungen für diese erstellt werden. So können Teams komplexe Umgebungen skalierbar betreiben.

Continuous Monitoring

Unter Continuous Monitoring versteht man einen vollständigen Echtzeiteinblick in die Leistung und Integrität des gesamten Anwendungsstapels, der von der zugrunde liegenden Infrastruktur bis zu den Softwarekomponenten auf höherer Ebene reicht. Diese Einblicke entstehen aus der Erfassung von Telemetriedaten und Metadaten und aus dem Festlegen von Warnungen für vorab definierte Bedingungen, die eine Überprüfung durch den Betreiber erfordern. Telemetrie umfasst Ereignisdaten und Protokolle aus unterschiedlichen Systembestandteilen, die an einem Ort gespeichert werden, an dem sie analysiert und abgefragt werden können.

Leistungsstarke DevOps-Teams sorgen dafür, dass Warnungen interaktiv und aussagekräftig gestaltet werden. Zudem erfassen sie umfangreiche Telemetriedaten, um Erkenntnisse aus großen Datenmengen zu gewinnen. Durch diese Erkenntnisse können Teams Probleme in Echtzeit beheben und testen, wie die Anwendung dadurch in zukünftigen Entwicklungszyklen verbessert wird.

DevOps-Tools

Teams nutzen viele verschiedene DevOps-Tools, um die DevOps-Kultur in ihrer Organisation zu fördern. Die meisten Teams setzen mehrere Tools ein und erarbeiten benutzerdefinierte Toolketten, die an die jeweilige Phase im Anwendungslebenszyklus angepasst sind. Die Einführung eines bestimmten Tools oder einer bestimmten Technologie ist zwar nicht mit der Einführung von DevOps gleichbedeutend, aber wenn die DevOps-Kultur etabliert und die Prozesse definiert wurden, können Mitarbeiter DevOps-Methoden implementieren und optimieren, wenn sie die richtigen Tools nutzen. Nutzen Sie die Tools, mit denen Sie DevOps in die Praxis umsetzen können:

DevOps und die Cloud

Der Wechsel zur Cloud hat die Arbeitsweise von Teams beim Entwickeln, Bereitstellen und Betreiben von Apps maßgeblich verändert. Zusammen mit der Einführung von DevOps können Teams ihre Methoden optimieren und für verbesserte Kundenzufriedenheit sorgen.

Cloudflexibilität

Teams können ihre Apps flexibler entwickeln, da sie die schnelle Bereitstellung nutzen und Cloudumgebungen mit unbegrenzten Ressourcen für mehrere Regionen konfigurieren können. Heutzutage müssen Sie keine physischen Server mehr kaufen, konfigurieren und verwalten, sondern ihre Teams erstellen Cloudumgebungen innerhalb weniger Minuten und fahren diese wieder herunter, wenn sie nicht mehr benötigt werden.

Kubernetes

Da Containertechnologie für immer mehr Anwendungen zum Einsatz kommt, entwickelt sich Kubernetes zum Branchenstandard für das bedarfsorientierte Orchestrieren von Containern. Das Automatisieren des Erstellens und Bereitstellens von Containern über CI/CD-Pipelines und das Überwachen dieser Container in der Produktion sind im Zeitalter von Kubernetes wichtiger denn je.

Serverloses Computing

Da die Verwaltung der Infrastruktur nun zum größten Teil in der Hand des Cloudanbieters liegt, können Ihre Teams sich auf ihre Apps anstatt auf die zugrunde liegende Infrastruktur konzentrieren. Dank serverlosem Computing können Apps ausgeführt werden, ohne dass Server konfiguriert oder verwaltet werden müssen. Ihnen stehen zudem Optionen zur Reduzierung von Komplexität und Risiken für Bereitstellungen und Vorgänge zur Verfügung.

Beginnen Sie Ihre Reise mit DevOps

Durch die Vielzahl der verfügbaren Methoden und Lösungen kann DevOps zunächst überwältigend wirken. Der Schlüssel zum Erfolg besteht darin, klein anzufangen und von anderen zu lernen.

Häufig gestellte Fragen (FAQ)

  • DevOps wird in einer Organisation mit verschiedenen Rollen praktiziert, von denen einige eng zusammenarbeiten müssen. In den meisten Fällen umfassen die DevOps-Rollen die Entwicklung, die IT, den Betrieb, die Sicherheit und den Support.
  • DevOps ist nicht auf eine einzelne Rolle beschränkt. Sämtliche Mitarbeiter, die an den Lebenszyklusphasen einer Anwendung beteiligt sind, müssen nach der DevOps-Kultur arbeiten. In manchen Organisationen gibt es jedoch einige Mitarbeiter oder Teams, deren Fokus allein auf der Automatisierung, dem Festlegen von Methoden und der Implementierung von CI/CD-Pipelines liegt. Der offizielle Titel für diese Rollen kann beispielsweise „DevOps-Entwickler“ oder „DevOps-Spezialist“ lauten.
  • Die Einführung von DevOps kann in einer großen Organisation eine Herausforderung darstellen. Es erfordert Geduld und Beharrlichkeit, die Kultur einer großen Organisation zu ändern und die Prozesse und Tools zu standardisieren. In den meisten großen Organisationen gibt es Early Adopters der DevOps-Methoden. Wenn die Methoden weiter ausreifen und positive Ergebnisse erzielen, schließen sich andere Teams üblicherweise an und beginnen, ihren eigenen Weg zu DevOps zu gehen.

    Erfahren Sie, wie Microsoft-Teams die DevOps-Kultur übernommen haben.

  • Das wahre Ziel von DevOps besteht darin, Kunden kontinuierlich hochwertige Produkte zu liefern. Die Ergebnisse der DevOps-Einführung müssen in Relation zu den Geschäftszielen bewertet werden. DevOps-Teams richten sich nach diesen Zielen und erreichen diese durch kurze Releasezyklen. Durch diese Zyklen können Teams flexibel auf den Markt reagieren und sich kontinuierlich durch Kundenfeedback weiterentwickeln.
  • Bei DevOps und der agilen Softwareentwicklung handelt es sich um moderne Richtlinien, die für die Produktentwicklung, den Produktstart oder Produktreleases zum Einsatz kommen. DevOps ist eine Kultur, die die Zusammenarbeit aller Rollen fördert, die an der Entwicklung und Wartung der Software beteiligt sind. Die agile Softwareentwicklung ist eine Methode, die auf den Erhalt der Produktivität und das Vorantreiben von Releases ausgerichtet ist und reale Bedingungen wie sich ändernde Anforderungen berücksichtigt. DevOps und die agile Softwareentwicklung schließen sich nicht gegenseitig aus und werden häufig kombiniert.
  • Neben Continuous Integration sind Continuous Delivery und Continuous Deployment weitere Methoden, mit denen die Phasen der Softwarebereitstellung automatisiert werden.