Back to top icon

Was ist DevOps?

Verbessern Sie die Zusammenarbeit zwischen IT-Teams, beschleunigen Sie Bereitstellungszyklen und sorgen Sie mit dieser modernen Softwareentwicklungsmethode für bessere Ergebnisse.

Kontakt

Einführung

Auch wenn die Akzeptanz von DevOps sowohl in großen Unternehmen als auch in internetbasierten Organisationen weiter zunimmt, herrscht doch Verwirrung darüber, was der Begriff genau bedeutet. Ist DevOps eine Kultur, eine Bewegung, eine Herangehensweise, eine Philosophie oder eine Mischung aus all diesen Dingen? Oder hat jeder eine andere Auffassung von DevOps?

Wie auch immer Sie DevOps definieren, der Weg zum Erfolg mit DevOps ist der Weg selbst. Ganz gleich, wo Sie sich auf Ihrem DevOps-Weg befinden, wir können Ihnen bei der Beantwortung einer Reihe grundlegender Fragen, wie beispielsweise die folgenden, behilflich sein:

  • Was ist DevOps?
  • Woher kommt es?
  • Welche Probleme führten zu DevOps?
  • Wie funktioniert DevOps?
  • Wie verbreitet ist die Nutzung von DevOps heute?
  • Warum wird DevOps eingeführt?
  • Wo liegen die Vorteile?

Kapitel 1: Was ist DevOps?

Das Wort „DevOps“ wurde 2009 von Patrick Debois geprägt, der zu einem seiner Gurus wurde. Der Begriff wurde durch die Kombination der Begriffe „Development“ und „Operations“ gebildet. Dies ist ein Ausgangspunkt, um genau zu verstehen, was die Leute normalerweise mit „DevOps“ meinen. Und es ist wichtig zu wissen, dass DevOps kein Vorgang, keine Technologie und auch kein Standard ist. Viele Anhänger bezeichnen DevOps als „Kultur“ – eine Sichtweise, die New Relic befürwortet. Unter dem Begriff „DevOps-Bewegung“ verstehen wir auch Themen wie Akzeptanzraten und Trends für die Zukunft. Eine „DevOps-Umgebung“ ist für uns eine IT-Einrichtung, die die DevOps-Kultur übernommen hat.

Dieser Leitfaden sagt eigentlich viel mehr über DevOps aus, aber für den Anfang brauchen wir eine aussagekräftige Definition. Uns sagt die von Gartner zu:

„DevOps stellt einen Wandel in der IT-Kultur dar und konzentriert sich auf die schnelle Bereitstellung von IT-Diensten durch die Einführung agiler, schlanker Praktiken im Kontext eines systemorientierten Ansatzes. DevOps legt Wert auf Menschen (und Kultur) und versucht, die Zusammenarbeit zwischen Betriebs- und Entwicklungsteams zu verbessern. DevOps-Implementierungen nutzen Technologien, insbesondere Automatisierungstools, die eine zunehmend programmierbare und dynamische Infrastruktur aus Sicht des Lifecycles nutzen können.“

Wichtig ist, dass die Bedeutung von DevOps als Überbegriff für die Prozesse, die Kultur und die Denkweise erweitert wurde. Der Lifecycle der Softwareentwicklung konnte verkürzt werden. Schnelle Feedback-Schleifen kamen zum Einsatz, wodurch die Bereitstellung von Funktionen, Korrekturen und Aktualisierungen häufiger möglich sind.

Kapitel 2: Woher kommt DevOps?

Trotz des mythischen Charakters einiger seiner Entstehungsgeschichten wurde DevOps nicht aus dem Hut gezaubert. Vielmehr wurde der Grundstein von DevOps schon vor langer Zeit gelegt und von zukunftsweisenden IT-Experten aus verschiedenen Disziplinen immer weiterentwickelt. Die beiden wichtigsten Vorläufer von DevOps sind:

  • Enterprise Systems Management (ESM). Viele derjenigen, die an der ursprünglichen Definition von DevOps beteiligt waren, sind Systemadministratoren. Diese Experten brachten wichtige ESM-Best Practices in DevOps ein, einschließlich Konfigurationsmanagement, Systemüberwachung, automatisierte Bereitstellung und den Toolchain-Ansatz.
  • Entwicklung von Agile. Ein Beobachter weist auf Folgendes hin: „DevOps entstand sozusagen als Nebenprodukt zu Agile – für eine agile Softwareentwicklung ist eine enge Zusammenarbeit zwischen Kunden, Produktmanagement, Entwicklern und (manchmal) QA absolut notwendig, um die Lücken zu schließen und schnell zu einem besseren Produkt zu gelangen … [DevOps erkennt an, dass] die Bereitstellung von Dienstleistungen und die Art und Weise, wie die App und die Systeme interagieren, auch für den Kunden ein wesentlicher Bestandteil des Leistungsversprechens sind. Deshalb muss das Produktteam diese Anliegen als oberste Priorität anerkennen. Aus dieser Perspektive erweitert DevOps die Agile-Prinzipien einfach über die Grenzen des Codes hinaus auf den gesamten erbrachten Service.“

Kapitel 3: Welche Probleme führten zur Entwicklung von DevOps?

Entwickler und Systemadministratoren sind sich in vielen Dingen oft uneinig. Beiden ist jedoch bewusst, dass ihre Kunden sie auf der Geschäftsseite des Unternehmens häufig in verschiedene Richtungen ziehen. Einerseits fordern Geschäftsanwender Veränderungen so schnell wie möglich – darunter neue Funktionen, Dienste und Einnahmequellen. Gleichzeitig wollen sie ein System, das stabil und frei von Ausfällen ist. Das hat zur Folge, dass Unternehmen entscheiden müssen: Wollen sie Veränderungen schnell umsetzen und bereitstellen und sich dabei mit einer instabilen Produktionsumgebung zufrieden geben? Oder möchten sie eine stabile, aber veraltete Umgebung pflegen?

Natürlich ist keine der beiden Möglichkeiten für Führungskräfte in Unternehmen akzeptabel. Und was noch viel gravierender ist, weder die eine noch die andere Lösung ist die bestmögliche für den Kunden.

Entwickler sind bereit, Software immer schneller auf den Markt zu bringen – schließlich ist das einer der Gründe, warum sie eingestellt wurden. Operations hingegen weiß, dass zu schnelle und unüberlegte Änderungen ohne angemessene Sicherheitsvorkehrungen das System destabilisieren können, was gegen ihre Prinzipien verstößt.

DevOps wurde dazu entwickelt, dieses Dilemma zu lösen, indem alle mit der Softwareentwicklung und -bereitstellung verbundenen Personen – Fachanwender, Entwickler, Testingenieure, Sicherheitstechniker, Systemadministratoren und manchmal auch andere – in einen einzigen, hochautomatisierten Workflow mit einem gemeinsamen Fokus integriert wurden: die schnelle Bereitstellung hochwertiger Software, die alle Benutzeranforderungen erfüllt und gleichzeitig die Integrität und Stabilität des gesamten Systems aufrechterhält.

Wie schließen sich diese unterschiedlichen Gruppen zusammen? Durch Annahme einer Reihe gemeinsamer Prinzipien, die die herkömmlichen Grenzen zwischen Fachdisziplinen und Funktionen überschreiten, zum Beispiel:

  • Festlegen von Erwartungen und Setzen von Prioritäten sowie Grundüberzeugungen.
  • Zusammenarbeit bei der Problemlösung innerhalb von Teams und über verschiedene Teams hinweg.
  • Automatisieren gemeinsamer und sich wiederholender Prozesse zur Freigabe von Zeit für wichtigere Arbeiten.
  • Integrieren von Feedback in die Arbeit und Messung von allem, was in die Produktion geht.
  • Teilen der Daten mit allen Beteiligten zur Förderung einer effektiveren Kultur der Zusammenarbeit zwischen verschiedenen Fachbereichen und Fachleuten.

Kapitel 4: DevOps, Agile und SRE näher erläutert

Unternehmen sprechen oft davon, zu DevOps zu wechseln und SREs einzustellen sowie agiler zu werden. In welcher Beziehung stehen diese Begriffe zueinander?

Dank der kurzen Entwicklungszyklen und dem schnellen Feedback iterieren Teams agil und schlank. Bei der agilen Handlungsweise liegt der Fokus auf der Kultur, ohne zu berücksichtigen, welche Tools eingesetzt werden.

Mithilfe von DevOps arbeiten Engineering-Organisationen in funktionsübergreifenden Teams zusammen. DevOps beginnt mit der Kultur und treibt die Tool-Bereitstellung voran.

SRE (System Reliability Engineering) ist die Methode, mit der Engineering-Organisationen die Automatisierung vorantreiben und hochskalierte Vorgänge Personen anvertrauen, denen Softwareentwicklung in die Wiege gelegt wurde. SRE beginnt mit Tools und fördert Kultur.

DevOps-Varianten (wie „SecDevOps“) beinhalten das Einfügen oder Hinzufügen einer anderen Organisation oder Praxis zu einem früheren Zeitpunkt im Software Development Lifecycle (SDLC). Die Verbreitung dieser verschiedenen DevOps-Typen spricht für die zunehmende Integration von Funktionen in moderne Organisationen. 

Diagramm menschliche Systeme vs. technische Systeme

Kapitel 5: Wie funktioniert DevOps?

Wie alle Kulturen enthält DevOps viele Variationen des Themas. Die meisten Beobachter sind sich jedoch einig, dass praktisch alle DevOps-Kulturen die folgenden Funktionen gemeinsam haben: Zusammenarbeit im Team, Automatisierung, kontinuierliche Integration, kontinuierliche Bereitstellung, kontinuierliche Tests, kontinuierliches Monitoring und schnelle Fehlerbehebung.

Zusammenarbeit

Anstatt mit dem Finger aufeinander zu zeigen, arbeiten Entwicklung und IT-Betrieb zusammen (doch, wirklich!). Während die Kluft zwischen diesen beiden Gruppen der Anstoß für die Gründung war, geht DevOps weit über die IT-Organisation hinaus. Denn die Notwendigkeit der Zusammenarbeit erstreckt sich auf alle, die an der Bereitstellung von Software beteiligt sind (nicht nur zwischen Development und Operations, sondern alle Teams, einschließlich Test, Produktmanagement und die Führungsebene).

„Die Grundlage für den Erfolg von DevOps ist, wie gut Teams und Einzelpersonen im gesamten Unternehmen zusammenarbeiten, um Dinge schneller, effizienter und effektiver zu erledigen.“

– Tony Bradley, „Scaling Collaboration in DevOps“, DevOps.com

Automatisierung

DevOps setzt stark auf Automatisierung – und das bedeutet, dass Sie Tools benötigen. Tools, die Sie erstellen. Tools, die Sie kaufen. Open-Source-Tools. Proprietäre Tools. Und diese Tools sind nicht nur planlos im Labor verstreut: DevOps setzt auf Tool-Ketten, um große Teile des gesamten Softwareentwicklungs- und Bereitstellungsprozesses zu automatisieren.

Achtung: Da DevOps-Tools so unglaublich sind, betrachten einige DevOps nur als eine Sammlung von Tools. Es ist zwar wahr, dass DevOps auf Tools angewiesen ist, aber DevOps ist viel mehr als das.

Kontinuierliche Integration

In DevOps-Kulturen findet man normalerweise eine kontinuierliche Integration, da DevOps aus der Agile-Kultur hervorgegangen ist und die kontinuierliche Integration ein Grundsatz des Agile-Ansatzes ist:

„Ein Eckpfeiler von DevOps ist die kontinuierliche Integration (Continuous Integration, CI), eine von Grady Booch entwickelte und benannte Technik, mit der Quellcode-Updates aller Entwickler eines Teams kontinuierlich zu einer gemeinsamen Hauptlinie zusammengeführt werden. Diese fortlaufende Zusammenführung verhindert, dass die lokale Kopie des Softwareprojekts eines Entwicklers nicht zu weit fortschreitet, bis neuer Code von anderen hinzugefügt wird. So lassen sich katastrophale Zusammenführungskonflikte vermeiden.“

– Aaron Cois, „Continuous Integration in DevOps“, DevOps-Blog, Software Engineering Institute, Carnegie Mellon

Das Prinzip der kontinuierlichen Integration der agilen Entwicklung hat kulturelle Auswirkungen auf die Entwicklergruppe. Wenn Entwickler gezwungen werden, ihre Arbeit häufig – im Minimalfall täglich – in die Arbeit anderer Entwickler zu integrieren, werden Integrationsprobleme und Konflikte viel früher aufgedeckt als bei dem Wasserfall-Modell. Um diesen Vorteil zu erzielen, müssen Entwickler jedoch viel häufiger miteinander kommunizieren – ein Prozess, der dem Image des einsamen Genie-Programmierers widerspricht, der wochen- oder monatelang an einem Modul arbeitet, bevor er „bereit“ ist, es weltweit zu versenden. Diese Art von offener häufiger Kommunikation entfaltet sich in DevOps.

Kontinuierliches Testen

Den Testbereich von DevOps übersieht man leicht – bis man auf die Nase fällt. Gartner bringt es so auf den Punkt: „Angesichts der steigenden Kosten und Auswirkungen von Softwarefehlern können Sie es sich nicht leisten, eine Version herauszubringen, die sich negativ auf die Kundenzufriedenheit auswirkt, oder neue Funktionen einführt, die das Unternehmen neuen Sicherheits-, Zuverlässigkeits- oder Compliance-Risiken aussetzen.“ Während die kontinuierliche Integration und Bereitstellung den Löwenanteil ausmacht, findet das andauernde Testen allmählich seinen Platz als wichtiges Element von DevOps.

Kontinuierliches Testen ist keine bloße QS-Funktion. Tatsächlich beginnt alles in der Entwicklungsumgebung. Die Zeiten sind vorbei, in denen die Entwickler der Qualitätssicherung den Code hinwerfen und sagen konnten: „Hier, versucht euer Glück.“ In einer DevOps-Umgebung sind alle der Qualität verpflichtet. Entwickler bauen Qualität in den Code ein und stellen Testdatensätze bereit. QS-Ingenieure erstellen Automatisierungstestfälle und die Testumgebung.

Auf der QS-Seite ist Geschwindigkeit das A und O. Wenn der QS-Zyklus Tage oder sogar Wochen dauert, befinden Sie sich letztendlich wieder in einem langwierigen wasserfallartigen Zeitplan. Testingenieure stellen sich der Herausforderung einer schnelleren Abwicklung, indem sie nicht nur einen Großteil des Testprozesses automatisieren, sondern auch, indem Sie die Testmethoden neu festlegen:

„Kontinuierliches Testen schafft ein zentrales Entscheidungssystem, mit dessen Hilfe Sie das Geschäftsrisiko einschätzen können, das jede Anwendung für Ihr Unternehmen darstellt. Wird es konsequent angewendet, stellt es für Entwicklerteams eine gute Anleitung dar, um die Geschäftserwartungen zu erfüllen. Manager haben zugleich einen größeren Einblick, wodurch sie sachkundige Abwägungsentscheidungen treffen können, um damit den Geschäftswert eines Release-Kandidaten zu optimieren.“

– Kontinuierliches Testen für IT-Führungskräfte, Parasoft

Es mag überraschen, aber die operative Funktion spielt beim Testen und der Qualitätssicherung eine wichtige Rolle. Operative Vorgänge können sicherstellen, dass Überwachungstools vorhanden und die Testumgebungen ordnungsgemäß konfiguriert sind. Sie können an Funktions-, Last-, Belastungs- und Dichtheitsprüfungen teilnehmen und Analysen anbieten, die auf ihren Erfahrungen mit ähnlichen Anwendungen in der Produktion basieren.

Kontinuierliche Tests zahlen sich aus und sind die Mühe wert. Die Testfunktion in einer DevOps-Umgebung hilft Entwicklern dabei, Qualität und Geschwindigkeit miteinander in Einklang zu bringen. Die Verwendung automatisierter Tools reduziert die Testkosten und ermöglicht es den Testingenieuren, ihre Zeit effektiver zu nutzen. Am wichtigsten ist aber, dass kontinuierliche Tests die Testzyklen verkürzen, indem sie frühzeitig Integrationstests ermöglichen.

Kontinuierliche Tests beseitigen auch Test-Bottlenecks durch virtualisierte abhängige Dienste und vereinfachen die Erstellung virtualisierter Testumgebungen. Diese können im Laufe sich wandelnder Systeme einfach bereitgestellt, gemeinsam genutzt und aktualisiert werden. Diese Funktionen reduzieren die Kosten für die Bereitstellung und Wartung von Testumgebungen und verkürzen die Dauer von Testzyklen, indem sie Integrationstests zu einem früheren Zeitpunkt im Lifecycle ermöglichen.

Continuous Delivery

Das Team von Amazon Web Services definiert Continuous Delivery als eine „DevOps-Softwareentwicklungspraxis, bei der Codeänderungen automatisch erstellt, getestet und für die Freigabe für die Produktion vorbereitet werden. Die kontinuierliche Integration wird erweitert, indem alle Codeänderungen nach der Erstellungsphase in einer Testumgebung und/oder einer Produktionsumgebung bereitgestellt werden. Wenn die kontinuierliche Bereitstellung ordnungsgemäß implementiert wurde, verfügen Entwickler immer über ein bereitstellungsfertiges Build-Artefakt, das einen standardisierten Testprozess durchlaufen hat.

Die tatsächliche Veröffentlichungshäufigkeit kann je nach Legacy und den Zielen des Unternehmens stark variieren. Leistungsstarke Organisationen, die DevOps verwenden, erzielen mehrere Bereitstellungen pro Tag. Mittelgroße Unternehmen hingegen erreichen Veröffentlichungen zwischen einmal pro Woche und einmal pro Monat.

Was genau veröffentlicht wird, variiert ebenfalls. In einigen Unternehmen werden bei der Qualitätssicherung und im Betrieb potenzielle Releases geprüft: Viele gehen direkt an die Benutzer, andere gehen zurück in die Entwicklung, und einige wiederum werden einfach überhaupt nicht bereitgestellt. Andere Unternehmen geben alles, was von den Entwicklern kommt, an die Benutzer weiter und setzen auf Echtzeitüberwachung und schnelle Fehlerbehebung, um die Auswirkungen eines seltenen Ausfalls zu minimieren. Und es sollte beachtet werden, dass die Wahrscheinlichkeit eines Fehlers erheblich verringert wird, da jedes Update kleiner wird.

Laufende Überwachung

Angesichts der enormen Anzahl von Veröffentlichungen in einem Continuous Delivery Shop gibt es keine Möglichkeit, die strengen Tests vor der Veröffentlichung durchzuführen, die normalerweise bei Wasserfall-Vorgehensmodellen erforderlich sind. In einer DevOps-Umgebung müssen Fehler in Echtzeit gefunden und behoben werden. Wie wird das erreicht? Die laufende Überwachung spielt eine wichtige Rolle.

Mit kontinuierlicher Überwachung messen Teams die Performance und Verfügbarkeit von Software, um die Stabilität zu verbessern. Die kontinuierliche Überwachung hilft, die Hauptursachen von Problemen schnell zu identifizieren, um Ausfälle proaktiv zu verhindern und Benutzerprobleme zu minimieren. Einige Monitoring-Experten befürworten sogar, dass die Definition eines Servicedienstes Monitoring umfassen muss – sie sehen dies als integralen Bestandteil der Servicebereitstellung an.

Das Monitoring beginnt wie das Testen bereits in der Entwicklung. Dieselben Tools, die die Produktionsumgebung überwachen, können in der Entwicklung eingesetzt werden, um Performance-Schwachstellen zu erkennen, bevor sie die Produktion beeinträchtigen.

Für DevOps sind zwei Arten von Monitoring erforderlich: Server-Monitoring und Monitoring der Anwendungs-Performance. Monitoring von Diskussionen führt schnell zu Tool-Diskussionen, da es ohne die richtigen Tools kein effektives Monitoring gibt. Eine Liste der DevOps-Tools (und weiterer Inhalte zu DevOps) finden Sie im New Relic DevOps Hub.

Kapitel 6: Wer führt DevOps ein?

Von neu gegründeten Startups bis hin zu 100 Jahre alten Unternehmen verbreitet sich DevOps in allen IT-Organisationen. Laut einer Umfrage haben 74 % aller Unternehmen auf die ein oder andere Weise DevOps implementiert.

Welche Unternehmen setzen auf DevOps? Während webbasierte sogenannte Einhörner wie Etsy, Facebook, Amazon und Netflix häufig zitierte Beispiele für DevOps-Unternehmen sind, nutzt heute jede Art von Geschäft DevOps. Das Mainstream-Medienunternehmen Sony Pictures, der Finanzriese Barclays Bank und der Bauprodukthersteller USG sind weitere Erfolgsgeschichten von DevOps.

Überraschenderweise sind große Unternehmen hier führend. 81 % gaben an, dass sie DevOps an irgendeiner Stelle im Unternehmen einführen. Auch kleine und mittlere Unternehmen (KMUs) profitieren von den Vorteilen von DevOps. 70 % zählen sich zu den Nutzern. Bezeichnenderweise gibt es viele Belege dafür, dass die Unternehmensgröße allein kein Indikator für den Erfolg von DevOps ist.

Sogar staatliche und regierungsnahe Organisationen wenden sich DevOps zu. Nehmen wir zum Beispiel Fannie Mae. In diesem Beispiel soll das Geschäft transformiert werden und die sich langsam wandelnde Organisation soll mit Hilfe von DevOps „zu einer Organisation werden, die sich sehr schnell entwickelt“.

Das US-Patent- und Handelsamt ist zu DevOps gewechselt und verzeichnet jetzt durchschnittlich 1000 automatisierte Builds pro Woche. Bei der General Services Administration (GSA) sind Produktionscontainer, automatisierte Workflows und Mikroservices nur einige der Möglichkeiten, wie die Regierungsorganisation ihre IT-Abläufe modernisiert, um Projekte schneller und in höherer Qualität zu liefern.

Doch auch wenn der Aufstieg der Cloud- und Containertechnologien zur weltweiten Akzeptanz von DevOps beiträgt, merkt der DevOps-Autor und Experte Gene Kim an, dass bei DevOps noch viel Luft nach oben ist. So werden in Unternehmen, wo DevOps bereits etabliert ist, durch DevOps oftmals neue Entwicklungsbemühungen vorangetrieben.

„Wir können jetzt zeigen, dass DevOps nicht nur für Einhörner wie Google, Amazon, Facebook und Netflix geeignet ist, sondern für jedes Technologieunternehmen, insbesondere für große, komplexe Unternehmen. Mich begeistert dabei, dass diese die gleichen Ergebnisse erzielen, die wir bisher nur bei den sogenannten Einhörnern gesehen haben.“

– Gene Kim, DevOps-Experte

Kapitel 7: Warum sind Ihre Kollegen von DevOps begeistert?

DevOps hat für jeden in der Softwarekette etwas zu bieten: Entwickler, Betrieb und Tester. Darüber hinaus bedient DevOps sogar die geschäftliche Seite: Manager, die die Software monetarisieren, und Führungskräfte, die sich Sorgen um das Endergebnis machen. Hier sind einige der genannten Vorteile je Gruppe.

Entwickler

Automatisiertes Bereitstellen ist ein großer Gewinn für Programmierer, denn sie können eine Entwicklungsumgebung selbst ohne Papierkram, ohne lange Genehmigungsabläufe, ohne Warten auf die Bereitstellung eines Servers durch die IT-Abteilung aufrechterhalten – ohne Zeitverlust. Wenn Entwickler innerhalb von Minuten eine Arbeitsumgebung mit den richtigen Ressourcen bereitstellen können (Rechenleistung, Speicher, Netzwerk, Anwendungen), ändert sich ihre Arbeitsweise. Sie können viel kreativer und innovativer arbeiten. Es ist so viel einfacher, mehrere Optionen auszuprobieren, verschiedene Szenarien auszuführen und deren Code gründlicher zu testen.

Wenn Entwickler zum ersten Mal in einer DevOps-Welt arbeiten, ist es für viele eine wahre Offenbarung, zu verstehen, was in dieser Black Box mit der Bezeichnung „Operations“ vor sich geht. Dieses Wissen hilft Entwicklern dabei, effektiv mit den Kollegen von Operations in einem gemeinsamen Problemlösungsmodus zu arbeiten. Probleme werden schneller gelöst und verursachen weniger Ablenkungen. Das Beste daran ist, dass hektische nächtliche Anrufe von Operations beim Ausfall einer Website der Vergangenheit angehören – und das führt direkt zu einer höheren Arbeitszufriedenheit und mehr Lebensqualität für Entwickler.

Betrieb

Es herrscht die weit verbreitete Überzeugung, dass Systemadministratoren immer von der Systemstabilität besessen sind – und das stimmt tatsächlich. Ihr Alptraumszenario ist eine Softwareversion, mit der das System innerhalb von Sekunden nach der Produktionsbereitstellung heruntergefahren wird, Entwickler, die die Verantwortung von sich schieben („Das ist jetzt Ihr Code!“) sowie Nutzer, die unterschiedlich stark genervt sind – und zu alledem gibt es keinen klaren Weg zu einer schnellen wirksamen Lösung.

Erstanwender von DevOps-Methoden haben festgestellt, dass die zunehmende Beteiligung von Entwicklern die Systemstabilität tatsächlich verbessert. Entscheidend ist, dass kleinere häufigere Releases eine geringere Variabilität des Systems bewirken und das Risiko eines katastrophalen Ausfalls verringern. Noch besser ist, dass diese eingeschränkteren Releases tagsüber erstellt werden können. Probleme können dann direkt gelöst werden, wenn alle arbeiten und verfügbar sind, anstatt mitten in der Nacht oder am Wochenende.

Die Automatisierung hilft auch dabei, menschliche Fehler zu vermeiden, die bei manuellen Vorgängen häufig auftreten. Ein weiterer Vorteil ist, dass weniger Zeit für Routineaufgaben aufgewendet wird. Auch für Systemadministratoren ist es eine Frage der Lebensqualität: neue Fertigkeiten, Karrieremöglichkeiten und viel mehr Schlaf und Freizeit. In einer DevOps-Umgebung sind Vorgänge in wesentlich höherem Maße von Tools abhängig als in einer herkömmlichen Umgebung. Oft werden eigene Tools erstellt und Skripts geschrieben, mit denen Teile des Bereitstellungsprozesses automatisiert werden.

Betrachten Sie all dies als gemeinsames Ganzes, ist es nicht verwunderlich, dass „Director of Operations“ der häufigste Titel für die Teilnehmer des jüngsten DevOps Enterprise Summit war.

Test-Ingenieure

Die Auswirkungen, die DevOps auf die Test-Abteilung des Unternehmens hatte, sind enorm. Ein Kommentar lautet:

„Wir leben in einer Welt, in der fast ununterbrochen mehrere iterative Veröffentlichungen innerhalb weniger Tage oder sogar Minuten die endgültige Produktionsumgebung verlassen und anspruchsvollen, zahlenden Kunden bereitgestellt werden. So viele Releases, so wenig Testzeit und ein hoher Qualitätsdruck – gab es jemals einen theoretisch perfekteren Moment für automatisierte Tests?“

DevOps erfordert neue Methoden zum Testen von Software. Das stellt Testingenieure vor die Herausforderung, Innovationen zu schaffen. Mit automatisierter Bereitstellung können Testingenieure eine Testumgebung bereitstellen, die praktisch identisch mit der Produktionsumgebung ist,. Das führt zu genaueren Tests und einer besseren Vorhersage der Performance neuer Releases. Wie bei anderen Gruppen erhöht sich die Produktivität der Testingenieure durch Automatisierung und Zusammenarbeit.

Produktmanager

Technisch gesehen handelt es sich bei DevOps nur um die IT-Funktion des Unternehmens. Produktmanager können zusammen mit ihren Marketing- und Geschäftspartnern jedoch auch enorme Vorteile sehen:

  • Schnelleres Feedback: Sobald ein neues Produkt oder eine neue Funktion an Kunden ausgeliefert wird, erhalten Produktmanager echtes Feedback.
  • Erhöhte Reaktionsfähigkeit: Durch die kontinuierliche Bereitstellung verkürzt DevOps die Markteinführungszeit für neue Funktionen als Reaktion auf die Kundenanforderungen erheblich.
  • Reduzierter Abfall und Risiken: Entwicklungsressourcen können Probleme beheben oder an neuen Funktionen arbeiten, ohne auf die nächste große Freigabe warten zu müssen.

Lassen Sie uns das etwas aufschlüsseln. In einer DevOps-Umgebung haben Geschäftsakteure einen größeren Einfluss auf den Entwicklungsprozess. Dank der kollaborativen Funktion von DevOps kümmern sich Entwickler tatsächlich um die Geschäftsanforderungen und pflegen die Beziehungen zu Produktmanagern. DevOps gibt den Produktmanagern auch sofortiges Feedback zu den Auswirkungen neuer Preise, Funktionen und Produktpakete, sodass sie Variationen testen und ihre Wirksamkeit beurteilen können.

Branchenmanager sind total begeistert von DevOps, weil Software schneller auf den Markt kommt und ihnen einen Wettbewerbsvorteil verschafft. DevOps verbessert die Systemstabilität. Bei Kunden treten daher weniger Ausfälle auf, was wiederum zu mehr Kundenbindung führt – die perfekte Lösung bei hohen Abwanderungsraten.

Führungskräfte

Als Patrick Debois und andere IT-Experten die DevOps-Bewegung ins Leben riefen, war ihnen sicherlich nicht wichtig, was irgendwelche Aufsichtsräte von Unternehmen davon halten würden. Aber in genau jenen Aufsichtsräten ist DevOps jetzt ein hochaktuelles Thema.

Was gefällt Führungskräften an DevOps? Zum einen hilft es einem Unternehmen, qualitativ hochwertige Produkte zu liefern und diese viel schneller auf den Markt zu bringen als Mitbewerber, die sich auf herkömmliche Methoden der Softwareentwicklung verlassen. Diese Maßnahmen wirken sich natürlich auch auf das Endergebnis aus und führen zu einem gesteigerten Markenwert. Zum anderen wird das Unternehmen auch langfristig attraktiv für Top-Talente: Hochqualifizierte Entwickler, Systemadministratoren und Testingenieure wollen auf modernste und produktivste Weise arbeiten. Wenn Entwickler, Operations und Qualitätssicherung zusammenarbeiten, geraten Top-Führungskräfte zudem selten in abteilungsübergreifende Konflikte. So bleibt ihnen mehr Zeit zum Erreichen der Geschäftsziele, an denen jetzt alle gemeinsam arbeiten.

Es ist 2,2-mal wahrscheinlicher, dass Mitarbeiter in hochleistungsfähigen und gut aufgestellten (DevOps) Teams ihr Unternehmen einem Freund als einen großartigen Arbeitsplatz empfehlen, und 1,8-mal wahrscheinlicher, dass ein Mitarbeiter sein Team als ein großartiges Arbeitsumfeld empfindet und ebenfalls weiterempfiehlt. Das ist eine wichtige Erkenntnis, denn Untersuchungen haben gezeigt, dass „Unternehmen mit hoch motivierten und engagierten Mitarbeitern ihre Einnahmen zweieinhalb Mal so stark gesteigert haben wie Unternehmen mit geringem Mitarbeiterengagement“.

– 2016 State of DevOps Report, Puppet Inc. and DORA

Kapitel 8: Wie kann ich von DevOps profitieren?

Zuverlässige Quellen berichten von einigen bemerkenswerten Vorteilen, die mit DevOps erzielt wurden. Vorsicht ist jedoch angebracht. Angenommen, Sie haben jemanden sagen hören: „Ich komme auf 7,4 Liter pro 100 km.“ Wenn es sich dabei um einen Kleinlaster handelt, der auch noch im Gelände unterwegs ist, klingt diese Zahl höchst unglaubwürdig. Auf der anderen Seite wären 7,4 Liter pro 100 km für einen neuen Prius, der ausschließlich auf der Autobahn gefahren wird, ziemlich enttäuschend. Der Kontext ist also wichtig. Seien Sie daher wachsam, wenn Sie Behauptungen über Verbesserungen in Bezug auf DevOps hören. Ihre Ergebnisse können andere sein.

Der Bericht DevOps Research and Assessment (DORA) 2018 zum Stand von DevOps ergab jedoch, dass die Top-Performer von DevOps Software 46-mal häufiger veröffentlichen als Low-Performer mit 2555 kürzeren Vorlaufzeiten. Die Qualität der Softwareprodukte ist ebenfalls höher, wie eine siebenmal niedrigere Änderungsfehlerrate zeigt. Schließlich ist der Nettoeffekt auf die Systemstabilität sehr positiv: Wenn die Plattform ausfällt, stellen die Leistungsträger den Dienst 2604-mal schneller wieder her als die Leistungsträger mit geringer Performance! 

Eins ist klar: IT-Profis, die DevOps erfolgreich eingeführt haben, sind in der Regel begeisterte Fans. In Anbetracht der Verbesserungen, die in einer Umfrage von Puppet Labs angegeben wurden, ist es nicht schwer zu verstehen, warum:

  • Stabilität: Leistungsstarke Unternehmen verbringen 22 % weniger Zeit mit ungeplanten Arbeiten sowie Nacharbeiten. Dadurch können sie 29 % mehr Zeit für neue Aufgaben wie neue Funktionen oder Code aufwenden.
  • Sicherheit: Hochleistungsfähige Mitarbeiter verbringen 50 % weniger Zeit für die Behebung von Sicherheitsproblemen als Leistungsträger mit geringerer Performance.
  • Tempo der App-Bereitstellung: Hochleistungsfähige Mitarbeiter stellen auf Anfrage mehrmals pro Tag Apps bereit, im Vergleich zu weniger leistungsfähigen Mitarbeitern, die zwischen einmal pro Monat und alle 6 Monate Apps bereitstellen.

Zusammenfassung

„DevOps ist kein Ziel, sondern ein andauernder Prozess kontinuierlicher Verbesserung.“

– Jez Humble, Gründer und CTO, DevOps Research and Assessment

Nach einem Jahrzehnt des großartigen DevOps-Experiments sind die Daten klar: DevOps wurde entwickelt, um zu bleiben – und das aus einigen sehr guten Gründen. Viele hielten es für unmöglich, aber DevOps ist es gelungen, Fachanwender, Entwickler, Testingenieure, Sicherheitstechniker und Systemadministratoren in einem einzigen Workflow zu integrieren, der sich auf die Erfüllung der Kundenanforderungen konzentriert. Warum sollten sie das freiwillig tun? Weil davon jeder etwas hat. Entwickler und Systemadministratoren hören auf zu streiten und beginnen, sich gegenseitig zu unterstützen. Das bedeutet weniger Stress und Druck für alle Beteiligten. Die Geschäftsführer sind glücklich, weil sie die Softwareprodukte an die Hand bekommen, die sie zum Verkauf von Produkten und Dienstleistungen benötigen. Führungskräfte behalten ihre geliebten Dashboard-Metriken im Blick – Umsatz, Kundenzufriedenheit, Systemzuverlässigkeit –, die sich stetig auf dem aufsteigenden Ast befinden. Und alle sind in der Lage, dem Kunden die bestmöglichen Ergebnisse und Erlebnisse zu liefern.

Solche Vorteile lassen sich jedoch nicht leicht erzielen. Um Code häufiger erfolgreich bereitzustellen und gleichzeitig die Systeme am Laufen zu halten, benötigen Sie die Fähigkeit, alle Änderungen in Ihrer Umgebung genau zu überwachen. Die New Relic-Plattform bietet Entwicklern und der Abteilung Operations einen vollständigen Überblick – vom digitalen Kundenerlebnis über Anwendungen und dynamische Infrastrukturen bis hin zu integrierten Alerts und Dashboards. Auf diese Weise kann jeder in einem Unternehmen ein gemeinsames Verständnis für die Bereitstellung und Nutzung von Software in Echtzeit erlangen.