DevOps: Was es ist und warum es wichtig ist
Veröffentlicht: 2022-03-11Obwohl es keine todsicheren „Allheilmittel“-Methoden zur Verbesserung der IT-Effizienz gibt, hat DevOps Ergebnisse hervorgebracht, die schwer zu ignorieren sind. Wie der Name schon sagt, kombiniert DevOps die Prinzipien der Softwareentwicklung und des Softwarebetriebs mit dem Ziel, Organisationen dabei zu helfen, Produkte schneller und effizienter zu entwickeln. TIAA-CREF hat beispielsweise erlebt, wie sein 40-Milliarden-Dollar-Geschäft durch die Anwendung von DevOps-Prinzipien erhebliche Verbesserungen erzielt hat. Ein Interview von TechBeacon mit Scott Blandford, Chief Digital Officer von TIAA, erklärt, wie TIAA von klobiger, veralteter Software und Systemen zu einem „agil basierten DevOps-Ansatz“ überging, der zu einer vierfachen Steigerung der Entwicklungsproduktivität führte. Updates werden viel schneller veröffentlicht und „die IT hat das Vertrauen zurückgewonnen, das im Laufe der Jahre erodiert war, als sie begann, die Erwartungen der Benutzer zu erfüllen.“
Die Ergebnisse des State of DevOps-Berichts 2017 deuten auf bemerkenswerte Unterschiede zwischen Hochleistungsorganisationen hin, die DevOps-Prinzipien anwenden, und Organisationen, die dies nicht tun. Dem Bericht zufolge haben Hochleistungsorganisationen eine weitaus höhere Häufigkeit der Softwarebereitstellung (46-mal häufiger), eine weitaus kürzere Vorlaufzeit für Änderungen (440-mal schneller) und eine erheblich niedrigere Fehlerrate bei Softwareänderungen (fünfmal niedriger) als ihre geringere Leistung Gegenstücke.
Trotz dieser erheblichen Vorteile ist DevOps ein klassisches Beispiel für ein wichtiges, relativ neues technisches Konzept, das allzu oft missbraucht oder missverstanden wurde. Für viele bleibt die Idee verschwommen, und selbst eine grundlegende Definition von DevOps kann sich als schwer fassbar erweisen.
Dieser Mangel an Klarheit könnte möglicherweise negative Auswirkungen auf Organisationen und Teams haben, die versuchen, DevOps-Prinzipien umzusetzen, strategische Verwirrung stiften und die Geschwindigkeit und Effizienz beeinträchtigen, die DevOps fördern soll. Wie ein DevOps-Ingenieur bei IBM in einem von InfoWorld veröffentlichten Artikel sagte: „Wir mussten einige grundlegende Fragen beantworten und die Probleme ermitteln, die wir zu lösen versuchten … Wenn Sie nicht wissen, wie die Arbeit tatsächlich ausgeführt wird, wissen Sie es nicht welche Probleme es wert sind, gelöst zu werden.“
Da Softwareentwicklung und -betrieb immer enger miteinander verflochten sind und Unternehmen zunehmend auf Cloud-Infrastrukturen angewiesen sind, müssen Führungskräfte und Projektmanager DevOps beherrschen, um wettbewerbsfähig zu bleiben und sicherzustellen, dass ihre Teams ihr volles Potenzial ausschöpfen.
DevOps sollte nicht als ein weiteres vages Schlagwort betrachtet werden, sondern vielmehr als ein wichtiges Konzept mit dem Potenzial, Produkte und Unternehmen dramatisch zu verbessern. Dieser Artikel, der sich an ein relativ technisch nicht versiertes Publikum richtet, zielt in erster Linie darauf ab, genau zu klären, was DevOps ist. Anhand konkreter Beispiele untersucht dieser Artikel dann, wie DevOps-Prinzipien aussehen, wenn sie gut umgesetzt werden, und warum DevOps für Sie und Ihr Unternehmen wichtig ist.
DevOps als eine Art Ingenieur, Kultur und Praxis
Was ist DevOps? In einem früheren Artikel, der von Toptal veröffentlicht wurde, schreibt Demir Selmanovic, dass „DevOps eine Kultur, Denkweise und Teil der IT als Ganzes ist“. Er schreibt weiter, dass DevOps eine Praxis ist, die es Unternehmen ermöglicht, Geschwindigkeit und Effizienz über IT-Funktionen hinweg zu optimieren.
Amazon Web Services, der größte Akteur in der Cloud-Infrastruktur und dementsprechend bedeutendes DevOps-Know-how entwickelt, verwendet eine ähnliche Definition und sagt: „DevOps ist die Kombination aus kulturellen Philosophien, Praktiken und Tools, die die Fähigkeit eines Unternehmens verbessert, Anwendungen und Dienste bereitzustellen mit hoher Geschwindigkeit: Produkte schneller entwickeln und verbessern als Unternehmen, die herkömmliche Softwareentwicklungs- und Infrastrukturverwaltungsprozesse verwenden.“
„DevOps-Leute sind im Grunde diejenigen, die Interesse sowohl an der Systemadministration als auch an der Softwareentwicklung gefunden und beschlossen haben, ihre Fähigkeiten zu kombinieren, um einen einheitlichen, besseren Ansatz für beide zu schaffen.“
Dies sind beide nützliche Definitionen für ein Publikum, das bereits in verwandten Bereichen versiert ist, aber sie können für Führungskräfte mit weniger umfassendem technischen Hintergrund zu abstrakt sein. Vielleicht rührt ein Teil der Verwirrung um die Definition von DevOps von der Tatsache her, dass es oft gleichzeitig als eine Art Ingenieur, eine Reihe von Praktiken und eine Kultur bezeichnet wird. Obwohl DevOps jedes dieser Elemente umfasst, ist es sinnvoll, sie zunächst separat zu betrachten.
Um damit zu beginnen, wie ein DevOps-Ingenieur aussieht, formuliert es Martin Chikilian, ein früherer Softwareentwickler für IBM und Hewlett Packard mit über einem Jahrzehnt Erfahrung in der Anwendung von DevOps-Prinzipien, in einfachen, konkreten Worten: „DevOps-Leute sind im Grunde diejenigen, die Interesse gefunden haben sowohl in der Systemadministration als auch in der Softwareentwicklung und beschlossen, ihre Fähigkeiten zu kombinieren, um einen einheitlichen, besseren Ansatz für beide zu schaffen.“
Sie sind in der Lage, die Server, Netzwerke und andere Arten von Infrastruktursystemen eines Unternehmens zu warten und diese Systeme durch Softwareentwicklung aktiv zu iterieren und zu verbessern. Wie Chikilian anders sagte: „Eine DevOps-Person ist jemand, der die Grundlagen der Softwareentwicklung nutzen kann, um sich selbst und Unternehmen dabei zu helfen, bessere Tools für den Umgang mit der Infrastruktur zu entwickeln.“
Die „Kombination kultureller Philosophien“, wie Amazon es ausdrückt, bezieht sich auf die Kombination von Ansätzen, die von Softwareentwicklern und solchen mit Infrastruktur- oder Softwarebetriebsexpertise verwendet werden. Durch die Überwindung der traditionellen Barriere zwischen diesen Praktiken versucht eine DevOps-Kultur, Organisationen in die Lage zu versetzen, von den besonderen Stärken zu profitieren, die Entwickler und Infrastrukturexperten mitbringen. Die erfolgreiche Umsetzung der DevOps-Prinzipien „erfordert eine Änderung der Kultur und Denkweise“ für Unternehmen, die diese unterschiedlichen Arten von Ingenieuren in Silos zusammenfassen. Wie Emily Dowdle auf dem Nordic API Platform Summit 2016 beschreibt, trägt die Beseitigung von Barrieren auch dazu bei, die natürliche Reibung zu verringern, die manchmal zwischen Entwicklern und Infrastrukturexperten bestehen kann, und eine angenehmere, kooperativere Arbeitsumgebung zu fördern.
Einfach ausgedrückt geht es bei DevOps darum, komplexe manuelle Prozesse mit fehleranfälliger menschlicher Interaktion in einen instrumentierten Ansatz zu übersetzen, der getestet, gemessen und einfach skaliert werden kann.
Ausgestattet mit einem Verständnis dafür, wie ein DevOps-Anwender und eine DevOps-Kultur aussehen, wird deutlicher, was DevOps als Praxis bedeutet. Einfach ausgedrückt geht es bei DevOps darum, komplexe manuelle Prozesse mit fehleranfälliger menschlicher Interaktion in einen instrumentierten Ansatz zu übersetzen, der getestet, gemessen und einfach skaliert werden kann. Wenn ein Entwickler beispielsweise eine Umgebung erstellen möchte, in der Geschäftsbenutzer Feedback geben können, kann er oder sie einen automatisierten Prozess initiieren, in dem der Entwickler einen vom DevOps-Team erstellten Befehl ausgeben kann (anstatt ein Stück Code zu übergeben an das Infrastrukturteam), das die jeweilige Aufgabe konsistent und erprobt durchführt, schnell zu den erwarteten Ergebnissen kommt und die Zusammenarbeit ermöglicht.
Eine umfassende Definition von DevOps erfordert ein Verständnis dessen, was es als eine Art Ingenieur, Kultur und Praxis bedeutet. Nachdem wir untersucht haben, was DevOps aus diesen Perspektiven bedeutet, ist es nun wichtig, sich damit zu befassen, wie DevOps bei erfolgreicher Implementierung aussieht.
Ihr DevOps-Toolkit
Neben dem oben erwähnten kulturellen Wandel – weg von einem Unternehmen, das Softwareentwickler und Infrastrukturexperten isoliert, hin zu einem Unternehmen, das deren Zusammenarbeit fördert – müssen Unternehmen eine Reihe spezifischer Praktiken und Tools verstehen, die für DevOps entscheidend sind. Im Folgenden sind drei der wichtigsten (wenn auch sicherlich nicht die einzigen) solcher Praktiken aufgeführt:
Automatisierung: Erhöhte Effizienz steht im Mittelpunkt von DevOps, und dies wird maßgeblich durch die Automatisierung einer Reihe relativ langsamer, mühsamer Prozesse in der Softwareentwicklung und Infrastrukturwartung erreicht. Ein konkretes Beispiel, das Amazon anführt, ist die Praxis, relativ kleine, aber häufige Software-Updates automatisch zu versenden. Diese Vorgehensweise entlastet die Systemadministratoren, die diese Aktualisierungen andernfalls möglicherweise manuell durchführen müssten. Wie Amazon feststellt, hat diese Vorgehensweise auch den Vorteil, dass das Risiko der Softwarebereitstellung verringert wird, da Administratoren möglicherweise auftretende Fehler leichter erkennen und beheben können. Die Automatisierung ist ein Eckpfeiler von DevOps und von entscheidender Bedeutung für die anderen unten besprochenen DevOps-Praktiken.

Kontinuierliche Integration: Grundsätzlich geht es bei DevOps um die enge Zusammenarbeit zwischen Ingenieuren und darüber hinaus ganzen Teams. Kontinuierliche Integration bezieht sich auf die Praxis von Ingenieuren, Code an einem zentralen Ort zu teilen und zusammenzuführen. Wie Amazon erklärt: „In der Vergangenheit arbeiteten Entwickler in einem Team möglicherweise längere Zeit isoliert und versuchten erst, ihre Änderungen zusammenzuführen … wenn ihre Arbeit abgeschlossen war.“ Durch kontinuierliche Integration können Ingenieure effizienter zusammenarbeiten und die Engpässe vermeiden, die mit der Entwicklung und Integration ihres Codes in Stückwerken verbunden sind.
Kontinuierliche Bereitstellung: Kontinuierliche Bereitstellung bezieht sich auf die Praxis, Änderungen an Softwareprodukten automatisch bereitzustellen und zu implementieren, sobald sie vorgenommen werden. Mit anderen Worten, Continuous Delivery wird durch Continuous Integration ermöglicht, da Änderungen am Code nur dann effektiv an das gesamte System weitergegeben werden können, wenn der Code bereits an einer zentralen Stelle untergebracht ist. Automatisierung ist auch für Continuous Delivery von entscheidender Bedeutung. In der Tat kann das oben erwähnte Beispiel des Sendens kleiner, häufiger Systemaktualisierungen auch als Beispiel für Continuous Delivery angesehen werden. Continuous Delivery versetzt Unternehmen in die Lage, Änderungen und Verbesserungen schnell umzusetzen, und Ingenieure können ihre Zeit effizienter auf andere, komplexe Themen konzentrieren.
Die richtigen Leute einstellen
Natürlich müssen Unternehmen die richtigen Ingenieure einstellen, damit die oben genannten Praktiken erfolgreich implementiert werden können. DevOps-Ingenieure müssen über Fähigkeiten verfügen, die Softwareentwicklungs- und Systeminfrastruktur-Expertise kombinieren, und diese Kombination ist möglicherweise schwer zu finden.
„Es ist wichtig, dass sie in der Lage sind, die Lücke zwischen dem Rohcode und den Herausforderungen zu schließen, denen sich das Unternehmen täglich stellen muss – wie z. B. die Verringerung der Reibung zwischen Ideen, Lieferung und Verbrauchern.“
Andrea Villa, eine ehemalige DevOps-Ingenieurin bei Atlassian und Systemarchitektin bei CloudReach mit 15 Jahren Erfahrung in Systemadministration, Informationssicherheit und Netzwerken, ist der Ansicht, dass DevOps-Ingenieure ein breites Spektrum an Erfahrung und Wissen benötigen, um erfolgreich zu sein.
„Um effektiv zu sein, muss der heutige DevOps-Ingenieur einen Entwicklerhintergrund haben und über umfassende Kenntnisse in der Systemadministration und Netzwerkkenntnissen verfügen“, sagte Villa. „Es ist wichtig, dass sie in der Lage sind, die Lücke zwischen dem Rohcode und den Herausforderungen zu schließen, denen sich das Unternehmen täglich stellen muss – wie z. B. die Verringerung der Reibung zwischen Ideen, Lieferung und Verbrauchern.“
Sich als starker DevOps-Ingenieur zu qualifizieren ist eindeutig leichter gesagt als getan, und es kann ähnlich schwierig sein, solche Ingenieure zu finden. Dennoch kann das Verständnis der Tools, die den DevOps-Praktiken zugrunde liegen, Ihr Unternehmen in die Lage versetzen, die Einstellungspraktiken genauer darauf abzustimmen, die richtigen Talente zu finden und diese Praktiken erfolgreich umzusetzen.
Warum DevOps wirklich wichtig ist
Die Verwendung von DevOps-Praktiken bringt eine Reihe von Vorteilen mit sich, von denen einige – darunter mehr Effizienz, Sicherheit und organisatorische Zusammenarbeit – bereits artikuliert wurden. Der State of DevOps Report 2017 quantifiziert diese Effizienzsteigerung und berichtet, dass leistungsstarke Organisationen, die DevOps-Praktiken einsetzen, 21 Prozent weniger Zeit für ungeplante Arbeiten und Nacharbeiten und 44 Prozent mehr Zeit für neue Aufgaben aufwenden.
Allgemeiner gesagt kann die erfolgreiche Implementierung von DevOps-Praktiken jedoch einen tiefgreifenden Einfluss auf Ihr Unternehmen haben, indem sie die Effizienz und Ausführung in Bereichen verbessert, die sowohl wesentlich als auch ausgesprochen unspektakulär sind.
Fredrik Haard, ein Ingenieur mit über 12 Jahren DevOps-Erfahrung, der als Senior Cloud Architect bei McKinsey und bei Wondersign gearbeitet hat, artikuliert diesen Punkt ausführlicher.
„Gute DevOps-Ingenieure müssen sich für alle Bereiche einsetzen und Verantwortung übernehmen, die von der Organisation möglicherweise nicht priorisiert werden, wie Datensicherheit, Notfallwiederherstellung, Risikominderung und Audits“, sagte Haard. „Die Entscheidungen, die Sie in DevOps treffen, können langfristige Auswirkungen auf ein Unternehmen haben.“
Microsoft hat diese positiven Effekte auch durch die Implementierung von DevOps-Praktiken in seiner Cloud + Enterprise-Engineering-Gruppe festgestellt. Um die besten Ergebnisse zu erzielen, erklärt Microsoft, „benötigten wir Engineering und Betrieb, um während des gesamten Entwicklungslebenszyklus vom Design bis zur Bereitstellung in der Produktion eng zusammenzuarbeiten.“ Durch den Wechsel zu einer DevOps-Kultur und die Verwendung von DevOps-Praktiken konnte Microsoft seine Kunden viel schneller als zuvor skalieren und qualitativ hochwertige Dienste bereitstellen.
Die Lösung dieser Probleme und die Verbesserung der Effizienz sind an sich großartig, aber letztendlich sind sie ein Mittel zu einem grundlegenderen Zweck: der Herstellung erstaunlicher Produkte und der Erzielung größerer Gewinne und Kundenzufriedenheit.
DevOps-Ingenieure können effektiv als internes Kommandoteam eines Unternehmens fungieren und dabei helfen, eine Vielzahl von Problemen zu lösen, die, obwohl sie vielleicht unspektakulär oder außer Sichtweite sind, für das ordnungsgemäße Funktionieren eines Unternehmens absolut entscheidend sind.
Die Lösung dieser Probleme und die Verbesserung der Effizienz sind an sich großartig, aber letztendlich sind sie ein Mittel zu einem grundlegenderen Zweck: der Herstellung erstaunlicher Produkte und der Erzielung größerer Gewinne und Kundenzufriedenheit. Der vielleicht wichtigste Grund, warum DevOps wirklich wichtig ist, ist, dass es Unternehmen ermöglichen kann, jede dieser Metriken zu maximieren.
Mit DevOps in die Zukunft
Im Jahr 2015 sagte Scott Weiss, Partner von Andreessen Horowitz, dass DevOps „mehr als nur eine Methodik ist. Es ist ein Muss für den modernen Programmierer – und wird immer mehr zu einer eigenen Abteilung.“
Dies hat sich bewahrheitet, da eine Reihe von Technologieunternehmen, darunter Amazon, Microsoft und Google, DevOps-Teams aufgebaut und erhebliche Ressourcen für den Aufbau von Fachwissen in diesem Bereich eingesetzt haben. Weiss und andere große Tech-Player sehen DevOps nicht nur als vorübergehende Modeerscheinung, sondern als Schlüsselkomponente in der Zukunft der Software.
DevOps wird weiterhin besonders wichtig sein, da Branchen immer abhängiger von Cloud-Infrastrukturen werden. In einem Bericht aus dem Jahr 2017 prognostizierte Gartner Research, dass der Cloud-Services-Markt bis 2020 um über 15 % pro Jahr wachsen wird. Um dieses Wachstum in Dollar auszudrücken, zeigt ein kürzlich von Forbes veröffentlichter Artikel, dass der Cloud-Computing-Markt von etwa 260 Milliarden US-Dollar wachsen wird im Jahr 2017 auf rund 411 Milliarden US-Dollar im Jahr 2020. DevOps kann einen großen Unterschied machen, wie schnell Ihr Unternehmen Systeme erfolgreich in die Cloud migriert. Bei Toptal haben wir DevOps von Anfang an eingesetzt – und es war ein wesentlicher Bestandteil unseres Erfolgs als wachstumsstarkes Cloud-Unternehmen.
So wie der Markt für Cloud-Services rasant wächst, wächst auch die Bedeutung von DevOps. Ob in den Bereichen Energie, Gesundheitswesen oder Hochschulbildung, Ihr Unternehmen muss DevOps-Expertise entwickeln. Zu verstehen, was DevOps ist, wie es implementiert wird und warum es so wichtig ist, stellt einen wesentlichen ersten Schritt dar, wenn Sie darüber nachdenken, diese Schlüsselpraxis in Zukunft einzusetzen.