DevOps: So gestalten Sie nicht nur Ihre IT-Vorhaben effizienter

Technologie

Technologie

Datum 18.04.2019
Lesezeit 7 Min.

DevOps: So gestalten Sie nicht nur Ihre IT-Vorhaben effizienter

Mit DevOps werden Unternehmen fit für die Zukunft. Das zugehörige Prinzip macht Entwicklungsprozesse flexibler und optimiert viele der bis heute bestehenden, starren Zyklen bei der Entwicklung von IT-Produkten. Dies betrifft sowohl Smartphone-Apps als auch Website-Projekte oder beispielsweise Anlagensteuerungen mit und ohne Robotereinsatz.

Große Unternehmen wie Facebook, Google oder Amazon machen es vor: Dank der Integration von DevOps in die betrieblichen Prozesse veröffentlichen sie laufend neue Funktionen, ohne dass es langer Entwicklungszyklen bedarf. Wir klären auf, wie Sie ebenfalls von diesem Ansatz profitieren können und wo die Unterschiede zu agilen Prozessen liegen.

 

Was ist eigentlich DevOps und welchen Nutzen bringt es?

Hinter DevOps verbirgt sich ein Kunstbegriff aus „Development” und „Operations”. Gemeint ist eine effiziente Verzahnung von Entwicklung und tatsächlicher Nutzung von Produkten oder Funktionen. Ähnlich wie bei agilen Strategien kommt ein Modell zum Einsatz, das fortlaufende Rückmeldungen darüber ermöglicht, wie getroffene Entscheidungen sich auswirken und wie gut fertige Produkte oder deren Bestandteile funktionieren.

Der DevOps-Ansatz beschränkt sich jedoch nicht auf die reine Entwicklungsarbeit, sondern bezieht auch das operative Geschäft mit ein. Während sich agile Ansätze häufig auf einzelne Abteilungen oder Vorhaben beschränken, bedeutet der Einsatz von DevOps-Verfahren meist auch einen Wandel in der Unternehmenskultur. DevOps kann daher als konsequente Weiterentwicklung und Übertragung agiler Ansätze auf das gesamte operative Geschäft eines Unternehmens (also sowohl von Entwicklung als auch Operations) verstanden werden.

Eine immer größer werdende Produktkomplexität, steigende Anforderungen an die Flexibilität sowie das Vorhandensein von Big Data (also riesigen Datenmengen, die mit herkömmlichen Methoden kaum auswertbar sind) bedingen ohnehin einen Wandel in der Herangehensweise an Neu- und Weiterentwicklungen auf IT-Seite.

Unternehmen, die für Neuentwicklungen zunächst eigene Infrastrukturen wie Testserver, Entwicklungsumgebungen oder Staging-Systeme aufsetzen müssen, geraten aufgrund gebundener Ressourcen und hohem Zeitbedarf schnell in Nachteil. Unter anderem aus diesem Grund laufen viele IT-Anwendungen heutzutage nicht mehr On-Premise (also vor Ort im Unternehmen), sondern in der Cloud.

Das gilt auch für DevOps: Da viele DevOps-Hilfsmittel, Plug-ins und Tools (sogenannte „Software as a Service”-Dienstleistungen, „SaaS”) auf Open-Source-Lizenzen basieren, stehen deren aktuelle Versionen in der Cloud schon für jedermann bereit und müssen nicht erst aufwändig vor Ort installiert oder gar erst entwickelt werden.

Vorteile sind somit neben sinkenden IT-Infrastrukturkosten auch der schnelle und jederzeitige Zugriff auf verfügbare Updates und die automatische Anwendung der jeweils aktuellsten verfügbaren Sicherheitsmechanismen.

DevOps-Strukturen mit zusätzlich angepasstem Sicherheitsmanagement an den Schnittstellen zwischen Betrieb und Entwicklung eines Unternehmens werden auch als „DevSecOps” bezeichnet, wobei das „Sec” für „Security”, also Sicherheit, steht.

 

Ausklappbare Informationsgrafik
Infografik: Eigenkreation / Gartner, Inc. 2017

 

DevOps-Arbeitsmethoden im Vergleich mit Scrum und Co.

Deutlich verbreiteter als eine komplette Fokussierung von Unternehmen auf das DevOps-Prinzip ist aktuell noch die Konzentration auf agile Entwicklungsmodelle wie Scrum, Kanban und Co.

Diese Modelle setzen ebenfalls auf schnelle Rückkopplung aufgrund erkannter Probleme und beinhalten neben festgelegten Entwicklungszeiträumen häufige Releases – in Industriebetrieben und bei komplexen Unternehmensstrukturen kommt es jedoch auf weit mehr an.

DevOps-Ansätze können im Gegensatz dazu auch im technischen Release-Management, dem Software-Konfigurationsmanagement und in Anwendungsumgebungen zum Einsatz kommen – ohne dass hierfür jedes Mal eigene Schnittstellen programmiert werden müssen: Möglich machen dies die oben erwähnten Cloud-Ansätze, bei denen sich Entwickler lediglich aus Baukästen bedienen müssen, oder vorgefertigte Schnittstellen, die diverse Software-Hersteller (beispielsweise für Anlagensteuerungen) mittlerweile zu ihren Lösungen als Add-on oder inklusive anbieten.

Während also Scrum und Co. auf bestehenden Entwicklungsstrukturen aufbauen und möglicherweise Lösungen hervorbringen, die dann nur innerhalb des Unternehmens genutzt werden können, setzt DevOps eine Abstraktionsebene höher an: Anstelle von Servern, Betriebssystemen und fest installierten Entwicklungsumgebungen kommen hier Cloud-Lösungen und Container zum Einsatz. Das sogenannte CaaS („Container as a Service”)-Prinzip sorgt dafür, dass Sie aus einer ganzen Fülle von vorgefertigten Programmier-Methoden und Funktionen schöpfen können, die stets auf dem neuesten Stand sind.

Voraussetzung für eine erfolgreiche Umsetzung von DevOps ist allerdings, dass die Bereiche Entwicklung und Betrieb konsequent und bei neuen Projekten von Anfang an zusammenarbeiten. Dazu müssen natürlich alle beteiligten Mitarbeiter entsprechend geschult sein.

 

So gelingt DevOps in der Praxis

Da es sich wie erwähnt bei DevOps um eine Schnittstellenfunktion zwischen Entwicklung und eigentlichem Betrieb (oder Auslieferung) eines Produkts handelt, setzt die Hauptarbeit von DevOps-Verantwortlichen genau dort an, wo beide Bereiche ineinander übergehen.

Da viele Produkte derart komplex sind, dass selten eine einzelne Person alle Aufgaben und Zusammenhänge überblicken kann, muss ein DevOps-Verantwortlicher zunächst die entsprechenden Verantwortlichkeiten und dazugehörigen Personen für ein Projekt, ein Feature oder eine Neuentwicklung ermitteln und deren Sichtweisen kennen. Üblicherweise sind dies:

  • Product Owner: Er oder sie definiert Anforderungen an ein Produkt, die anschließend von der Entwicklungsabteilung umgesetzt werden.
  • Entwicklungsverantwortliche: Hier findet die eigentliche Entwicklung der geforderten Funktionalität statt.
  • Qualitätsmanagement: Hier werden entwickelte Komponenten oder ganze Produkte auf ihre Lauffähigkeit und den Kundennutzen hin überprüft und gegebenenfalls werden Feedbackschleifen durchlaufen.
  • Operations Department: Betreut die Produktivumgebung und stellt die geforderten Service-Level sicher.
  • Infosec: Der oder die Information-Security-Verantwortliche(n) stellt oder stellen sicher, dass Systeme und Daten geeignet abgesichert werden.
  • Release-Manager: Verwaltet und koordiniert den Deployment- und Release-Prozess
  • Wertketten-Manager: Überprüft, ob die Erwartungen des Kunden erfüllt oder gar übertroffen wurden.

In der Praxis kollidiert häufig das Tagesgeschäft mit einer konsequenten Veränderung hin zu DevOps-Prinzipien und es wird nach einem festen, eingespielten Ablaufplan gearbeitet. Aus diesem Grunde muss der DevOps-Manager häufig zwischen den beteiligten Bereichen vermitteln, für gegenseitige Unterstützung werben und gemeinsam gepflegte Tools und Plattformen vorschlagen und gegebenenfalls implementieren oder anpassen. Im Idealfall entsteht hierdurch eine abteilungsübergreifende Zusammenarbeit mit zahlreichen Feedbackmöglichkeiten:

  • Der Bereich Operations sollte dafür sorgen, dass das Entwicklerteam geeignete, produktionsähnliche Testumgebungen zur Verfügung gestellt bekommt – die also der Realität möglichst nahe kommen.
  • Außerdem sollte die Entwicklungsabteilung ihre Deployment-Pipelines gemeinsam mit Operations entwickeln und abarbeiten.
  • Automatisiertes Testen kann ebenfalls dabei helfen, schnell(er) zu verwertbaren Ergebnissen oder Feedback zu kommen.
  • Staging-Modell: Sämtliche Plattformen und Services sollten für den Live-Betrieb gefahrlos zur Verfügung stehen, ohne dass zunächst Tickets oder Requests erstellt werden müssen. Hierzu bietet sich beispielsweise bei IT-Strukturen eine redundante Auslegung an, bei der jeweils eine Komponente für den Live-Betrieb und die andere als Testumgebung für neue Features dient. Treten Fehler auf, kann ein Rollback ohne Beeinflussung des Live-Systems erfolgen.
  • Hybridfunktionen: In modernen DevOps-Organisationen sitzen meist Vertreter beider Abteilungen in der jeweils anderen und können bei Abweichungen von der jeweils anderen Sichtweise sofort eingreifen und nicht erst, wenn viel Arbeit in ein System oder eine Systemanforderung gesteckt wurde.

In der Summe verhindert eine konsequente Zusammenarbeit zwischen Entwicklung und Operations also unnötige Verzögerungen in der Produktentwicklung, sorgt für mehr Sicherheit im laufenden Betrieb und bringt schnellere, verwertbarere und nützlichere Ergebnisse für den Kunden.

Eine mögliche Unterstützung für DevOps bieten auch sogenannte Digital-Twin-Verfahren: Hier werden sämtliche Entwicklungsschritte bis hin zum fertigen Produkt nicht anhand abstrakter Testmodelle, sondern mit digitalen Nachbildungen des Live-Systems durchgespielt. Die konsequente Zusammenarbeit zwischen Development und Operations gehört hier naturgemäß zum Pflichtprogramm.

 

Video: YouTube / Thomas Grosser

 

Neue Berufsbilder: DevOps-Ingenieure

Sogenannte DevOps-Ingenieure sorgen für eine effiziente Zusammenarbeit sämtlicher Unternehmensbereiche. Sie implementieren und optimieren entsprechende Tools für die konkreten Anforderungen. Ihre Aufgabe besteht unter anderem darin, die angestrebte Verzahnung von Entwicklungs- und operativem Geschäft zu ermöglichen. Ein DevOps-Ingenieur sollte sich also in mehreren Bereichen auskennen:

  • Programmierung von Skripten und Entwicklertools, beispielsweise in Java
  • Administration von bestehenden Systemen, beispielsweise unter Linux
  • Testverfahren, unter anderem agiles Testen
  • Verwaltung von Zertifikaten
  • Kenntnis der Funktionsweise von IT-Sicherheitskonzepten

Neben den genannten harten Skills sind aber auch eine Reihe von Soft Skills von Bedeutung. So sind DevOps-Ingenieure mehr denn je gefordert, sich ihr Berufsleben lang über neue Arbeitsmethoden und Ansätze zu informieren und einen guten Überblick über verfügbare Tools und Standards zu behalten.

Im Gegensatz zu IT-Systemadministratoren beschränkt sich der Aufgabenbereich somit nicht auf die reine Verwaltung und Inbetriebnahme von Systemen: DevOps-Ingenieure sorgen auch dafür, dass die richtigen Tools an den richtigen Stellen zum Einsatz kommen und umfangreich an die jeweiligen Bedürfnisse angepasst werden.

 

Zusammenfassung

  • Mit DevOps-Verfahren können Sie unter Zuhilfenahme bewährter agiler Prinzipien die Zusammenarbeit von Entwicklung und operativem Bereich optimieren und so die Fertigstellung neuer Funktionen und Produkte beschleunigen.
  • Wenden Sie das Prinzip der ständigen Rückkopplung zusätzlich auf den laufenden Betrieb im Unternehmen an, erhalten Sie auch hier fortlaufendes Feedback.
  • Durch die höhere Abstraktionsebene verabschieden sich DevOps-Unternehmen immer mehr von Serverinfrastrukturen und nutzen unter anderem CaaS-Ansätze mit frei nutzbaren Containern.
  • DevOps-Ingenieure kümmern sich um die notwendige Schnittstellenarbeit zwischen Betrieb und Entwicklung und implementieren entsprechende Tools.

 

Was halten Sie vom DevOps-Ansatz? Kann er auch bei Ihnen für mehr Effizienz sorgen oder haben Sie andere Strategien erfolgreich implementiert? Wir freuen uns auf Ihren Kommentar.

 

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Facebook Twitter WhatsApp LinkedIn Xing E-Mail