Blog

Was ist DevOps?

JUL 14, 2020

DevOps ist längst kein neues, angesagtes Konzept mehr, sondern hat sich bei der Förderung von Agilität und Leistungsfähigkeit im Unternehmen bewährt.

Johan Abildskov

Johan has been a Continuous Delivery Consultant with Eficode Praqma since 2015. After achieving his BSc in Computing Science he spent his time teaching, coding, hacking and studying. He is an avid gamer and participates in tournaments whenever he has the time. He also plays the bass.

DevOps stellt die gesamten traditionellen Entwicklungsprozesse infrage

Rund um DevOps gibt es viele Missverständnisse, die Organisationen daran hindern, ihr volles Potenzial auszuschöpfen. DevOps lässt sich unter anderem dadurch erklären, dass Entwicklung und Betrieb ursprünglich in funktionalen Silos mit gegensätzlichen Zielen organisiert waren. Daraus entsteht der sogenannte chronische Konflikt zwischen Dev und Ops, der durch Übergaben, übermäßige Bürokratie und fehlende Autonomie zu schlechten Geschäftsergebnissen führt. DevOps stellt die gesamten traditionellen Entwicklungsprozesse infrage. Die DevOps-Bewegung hat diese Silos aufgebrochen, will aber noch mehr erreichen. Sie geht inzwischen über Dev und Ops sowie über eine Graswurzelbewegung hinaus und ist in der Unternehmenswelt angekommen. Bei DevOps geht es heute um Produktmanagement, Site Reliability, technische Exzellenz und eine gesunde Unternehmenskultur. Am wichtigsten ist bei DevOps, das Feedback von Endnutzern in Produktionsumgebungen mit den Entwicklungsteams zu verbinden. So können sie auf Marktbedingungen reagieren und schneller lernen als ihre Wettbewerber.

DevOps-Praktiken, -Tools und -Fähigkeiten

DevOps ist ein Oberbegriff, der alles von anspruchsvoller Entwicklungsarbeit bis hin zum Produktmanagement umfasst. Daher ist es ein Missverständnis, wenn eine Stelle für einen DevOps Engineer ausgeschrieben wird und von ihm erwartet wird, dass er lediglich Cloud-Aufgaben übernimmt oder Jenkins-Pipelines und Testumgebungen nebenbei optimiert. Diese Schwerpunkte sind zwar wichtig, ihre Wirkung bleibt jedoch begrenzt. Bei DevOps geht es vielmehr darum, eine Kultur des kontinuierlichen Lernens und Experimentierens zu etablieren, damit Unternehmen ihren Kunden schnell, sicher und effizient den größtmöglichen Mehrwert bieten können.

Ein psychologisch sicheres Arbeitsumfeld

Damit Teams auf hohem Niveau arbeiten können, brauchen sie psychologische Sicherheit. Ein Ansatz dafür sind schuldzuweisungsfreie Post-Mortems. Vorfälle werden so zu einer Lernchance für die gesamte Organisation statt zu einer Gelegenheit für Schuldzuweisungen. Die Westrum-Typologie der Organisationskultur hilft euch, eure Kultur zu bewerten, und zeigt Ansatzpunkte für Verbesserungen auf. Das ist die grundlegende Voraussetzung für eine bessere Zusammenarbeit.

Tools, Technologie und Automatisierung

Doch DevOps umfasst auch Tools und Technologie. Achtet auf Möglichkeiten zur Automatisierung und priorisiert sie mindestens genauso hoch wie die Entwicklung von Features. Gene Kim bringt es auf den Punkt: „Die tägliche Arbeit zu verbessern, ist wichtiger, als die tägliche Arbeit zu erledigen.“

Entwickler sollten über technische Leitplanken verfügen, die ihnen Experimente ermöglichen, ohne befürchten zu müssen, die Produktion zu beeinträchtigen. Das schafft eine Kultur des kontinuierlichen Experimentierens.

Diese Leitplanken bestehen aus automatisierten Tests und Deployment-Pipelines. Sie optimieren den gesamten Wertstrom für einen reibungslosen Ablauf von der Entwicklung bis zu den Endnutzern. Dafür braucht ihr ausgereifte Tools und kontinuierliche Aufmerksamkeit für die Verbesserung eurer Fähigkeiten zur Softwarebereitstellung.

Insgesamt erhalten Organisationen dadurch die technischen und kulturellen Voraussetzungen, um autonome Teams aus motivierten Mitarbeitern aufzubauen – ein Grundprinzip der Agile Softwareentwicklung.

Infrastructure as Code in der Cloud

Cloud und Containerisierung helfen euch, sowohl Prozesse als auch Produkte zu testen. Ihr könnt vollständige Kopien eurer Produktionssysteme bereitstellen, um zu prüfen, ob sich Deployments durchführen lassen und ob eure Anwendung weiterhin wie erwartet funktioniert. Container unterstützen außerdem die Unveränderlichkeit. Ihr müsst nicht mehr darunter leiden, auf dem falschen System getestet zu haben oder Server wie kleine, individuell angepasste und empfindliche Gärten zu pflegen. Erstellt stattdessen Container und verwerft sie, wenn ihr sie nicht mehr braucht. Dieser Infrastructure-as-Code-Ansatz ermöglicht Reproduzierbarkeit, Wiederverwendbarkeit und Nachverfolgbarkeit. Produktionsumgebungen lassen sich nun einfacher skalieren. Außerdem könnt ihr Entwicklern On-Demand-Umgebungen bereitstellen und Feedbackschleifen erheblich verkürzen.

DevOps-Plattformen und Design-Systeme

Abhängig von eurem Umfang und eurem Schwerpunkt kann dieses Tooling entweder lokal von einem Platform-Team betrieben oder an Dritte ausgelagert werden, etwa an unser Eficode ROOT DevOps-Plattform-Team. Eficode ROOT bietet einen vollständigen DevOps-Tool-Stack, vollständig gemanagt – entweder On-Premises oder in der Cloud. So könnt ihr euch auf Produkte und Features konzentrieren, die euch im Wettbewerb unterscheiden, statt Tools zu warten.

Eine hochwertige DevOps-Plattform lässt sich mit einem Entwicklungs- und Design-System an die Anforderungen der Organisation erweitern. Design-Systeme helfen Teams dabei, 

  • Doppelte Arbeit zu reduzieren 

  • Services schnell und standardkonform in die Produktion zu deployen

  • ein einheitliches Erscheinungsbild und Kundenerlebnis zu schaffen

  • Verantwortung für ihre eigenen Produkte zu übernehmen und gleichzeitig von Skaleneffekten zu profitieren

Design-Systeme, ergänzt durch automatisierte Tests und hochwertiges Tooling, helfen Organisationen beim Skalieren.

DevOps in großem Umfang mit einem Team-First-Ansatz

Die häufigste Blockade im Wertstrom von der Entwicklung bis zu den Endnutzern sind Abhängigkeiten zwischen Teams. Wenn ein Team seine Software nicht eigenständig für interne oder externe Kunden releasen kann, verliert es Motivation und die Fähigkeit, auf Nutzerfeedback zu reagieren. 

Das bedeutet: Jede DevOps-Transformation – eine gemeinsame Anstrengung zur Einführung von DevOps-Tools und -Praktiken – muss darauf ausgerichtet sein, die Autonomie der Teams zu ermöglichen. 

Das bedeutet nicht, dass Teams nicht aufeinander abgestimmt sind. Es erfordert vielmehr gezielte Investitionen, um organisatorische Ziele und Werte klar zu vermitteln, damit alle Teams in dieselbe Richtung arbeiten können.

Teams können die gemeinsame Mission durch die Produkte unterstützen, für die sie verantwortlich sind und die sie veröffentlichen können. So haben sie die Kontrolle über die Auswirkungen ihrer Deployments, reduzieren Risiken für andere Teile des Systems und maximieren den Mehrwert für Endnutzer.

Zusammenfassung

Wenn ihr Folgendes habt:

  • Eine DevOps-Kultur, die psychologische Sicherheit und kontinuierliches Experimentieren fördert

  • Eine DevOps-Toolchain, mit der ihr hochwertige Software schnell und sicher an Endnutzer liefern könnt

  • Autonome und befähigte Teams, die Verantwortung für ihre Software übernehmen und sie eigenständig bereitstellen können

Dann profitiert ihr wie andere Spitzenunternehmen von den Vorteilen von DevOps.

  • DevOps

Subscribe to our newsletter