Software-Entwicklung: Wie DevOps die IT beschleunigen

Entwicklung (Development) und Betrieb (Operations) sollen besser zusammenarbeiten - das Zauberwort heißt entsprechend DevOps, mit denen agile Arbeitsmethoden den Unternehmensalltag erreichen. Anwender müssen einige wichtige Grundregeln beachten. [...]

Nur wer schnell ist, überlebt im Markt. Dafür braucht es neue Arbeitsstrukturen (c) pixabay.com

Die Erwartungen der Konsumenten haben sich grundlegend geändert: In der Folge stehen Unternehmen unter Zugzwang. Reaktionszeiten auf Änderungswünsche der Kunden, erhöhte Anforderungen an Sicherheit und die Time-to-Market neuer Geschäftsmodelle sind ausschlaggebend für den dauerhaften wirtschaftlichen Erfolg.

Vorbei sind die Zeiten, in denen die IT-Abteilung einmal im Jahr eine größere Aktualisierung vornehmen konnte. Inzwischen werden Anwendungen zwar immer öfter agil entwickelt und im Zweiwochenrhythmus getestet. Bis diese aber durch die internen Qualitäts- und Betriebsprozesse in Produktion gelangen, vergehen oft noch einige Tage oder Wochen. Nicht nur die verwendeten Werkzeuge, sondern auch die dahinter verborgenen Prozesse verzögern die Inbetriebnahme.

Die Automatisierung wichtiger IT-Prozesse erhöht die Effektivität und Effizienz. Die dabei erreichte höhere Transparenz und Feedbackmöglichkeit zeigen jedoch oft neu Schwachstellen auf. Das darf alles nicht auf Kosten der Qualität gehen.

DevOps ist das wahre Agile

Auch die agile Software-Entwicklung hat sich über die Jahre weiterentwickelt. Mit Scrum wurde zwar der Weg von der Anforderung in ausführbarer Software beschleunigt. Aber ohne zusätzliche Maßnahmen oder ein echtes Feedback aus der Produktion wird immer noch kein Nutzen generiert.

DevOps ist der nächste größere Schritt, um Betrieb und Entwicklung enger zusammen zu bringen und schneller auf Änderungen reagieren zu können. DevOps ist ein umfangreicherer Schritt zu einem kulturellen Wandel in der Software-Entwicklung und ein wichtiger Baustein auf dem Weg in die Cloud.

Mit DevOps erhalten Unternehmen über Continuous Integration und Delivery hinaus mehr Transparenz und Feedback über den gesamten Software-Entwicklungsprozess, da alle Ergebnisse und Schritte konsequent automatisiert und versioniert werden.

Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

Inzwischen sind gute Werkzeuge für eine kontinuierliche Software-Bau- und -Auslieferungskette vorhanden. Damit sind die technischen Hürden zu DevOps einfacher zu überwinden als die kulturellen und organisatorischen. Für einen konsequenten Schritt hin zu Cloud-Anwendungen ist dieser jedoch unabdingbar. Nur Unternehmen, die DevOps wirklich leben, können Cloud-native Anwendungen und Services liefern.

Die Boston Consulting Group bezeichnet deswegen den Weg der IT-der-zwei-Geschwindigkeiten (bi-modale IT) auch als Sackgasse und beschreibt Bausteine und Trends, die die Einführung von DevOps begünstigen. Hier geht es weniger um schnellere Time-to-Market oder ROI. Vielmehr geht es darum, auch in komplexen Systemen kontinuierliche Änderungen schneller und sicherer vornehmen zu können und das Feedback daraus für Optimierungen zu nutzen – und das mit weniger Risiko.

DevSecOps aber sicher!

Da das Thema Sicherheit gerade durch die Cloud immer wichtiger wird, machen traditionelle und nur temporäre Sicherheitstest am Ende der Lieferung keinen Sinn mehr. Diese müssen auch schon möglichst früh und automatisiert in allen Phasen der Entwicklung nicht nur beim Code, sondern auch an der Infrastruktur ausgeführt werden. Dafür haben die Beratungsfirmen Gartner und Forrester den erweiterten Begriff DevSecOps geprägt und dessen Erweiterungen beschrieben.

Gerade das Thema Sicherheit hat nicht umsonst in letzter Zeit eine hohe Aufmerksamkeit erreicht. Bestehende Sicherheits- und Integrationstestverfahren geraten deshalb schnell an ihre Grenzen. Deswegen müssen die bestehenden Prozesse um ein angepasstes Sicherheits- und Risikomanagement für DevOps ergänzt werden. Dieses wird als logische Weiterentwicklung DevSecOps genannt. Nur wenn kritische Sicherheitslücken oder Verletzung von Sicherheitsrichtlinien schnell erkannt und sicher behoben werden können, ist heute ein kontinuierlicher Betrieb in der Cloud möglich. Vorsorgen ist besser als heilen. Gleiches gilt für die Infrastruktur. Hier ist es einfacher diese automatisiert neu aufzusetzen, als diese zu reparieren – auch bekannt als Pets vs. Cattle.

DevSecOps: Secure Development as a Continuous Improvement Process (c) Gartner

Weniger Komplexität, mehr Qualität

Um flexibler, schneller und kostengünstiger auf neue Anforderungen reagieren zu können, werden agile Prozesse und Werkzeuge benötigt. Bisher wendeten die Verantwortlichen agile Methoden wie Scrum vor allem in der Software-Entwicklung an. Mit der DevOps-Bewegung kommen diese Methoden nun auch im Betrieb zur Umsetzung. DevOps unterstützt das Technical Release Management, Software Configuration Management und Environment Management und dadurch auch die Übergabe einer Applikation von der Vorproduktion in eine Produktionsumgebung.

Aktuelle Tools und Methoden ermöglichen es, die Komplexität einer Applikation sowie ihrer Abhängigkeiten einfacher zu handhaben und anfallende Tätigkeiten zu standardisieren. Auftretende Veränderungen werden von Beginn an berücksichtigt, wodurch sich das damit verbundene Risiko deutlich reduzieren lässt.

DevOps – kurz gefasst

Um flexibel und schnell auf neue Geschäftsanforderungen reagieren zu können, müssen Entwicklung und Betrieb besser zusammenarbeiten und ihre Prozesse mehr aufeinander abstimmen. Der DevOps-Ansatz hilft dabei, agile Methoden auf den IT-Betrieb zu übertragen und Standardmodelle für Software-Entwicklung und IT-Betrieb miteinander zu verbinden. Dadurch werden kürzere Release-Zyklen möglich und das Risiko von ungetesteten Elementen wird minimiert, da dieselben Verfahren im gesamten Software-Prozess identisch und ohne Brüche eingesetzt werden.

DevOps ist kein Werkzeug sondern eine Methode, die einem Lebenzyklus der Software-Entwicklung folgt. Den Kern von DevOps bilden die Menschen und die Art und Weise, wie sie zusammenarbeiten (c) Materna GmbH

Bisher setzten Unternehmen DevOps eher in einzelnen Projekten ein. Es ist jedoch an der Zeit, daraus ein strategisches Thema zu machen und damit einen Mehrwert für das gesamte Geschäft zu generieren. Langfristig profitieren davon alle Beteiligten: Vor allem der Endanwender erhält deutlich schneller die für ihn wichtigen veränderten Funktionen.

Begriffserklärung

Was verbirgt sich überhaupt hinter dem Begriff DevOps? Prinzipiell versteht sich DevOps als ein strategischer Ansatz, um Prozesse rund um die Software-Entwicklung zu beschleunigen. Wer eine weitergehende Definition sucht, wird unterschiedliche Erklärungen finden.

Grundsätzlich besteht Einigkeit darüber, dass sich mit DevOps eine effizientere und reibungslosere Zusammenarbeit von Development und Operations realisieren lässt. Nach John Willis, einem Veteranen der DevOps Bewegung, bilden fünf Grundprinzipien das Gerüst der Management-Strategie: Culture, Automation, Lean, Measurement, Sharing. Im Detail lassen sich diese Punkte wie folgt erläutern:

Culture

Als kulturelle Basis der Zusammenarbeit lassen sich gegenseitiges Vertrauen, stetiger Informationsfluss und eine anhaltende Bereitschaft zum Lernen beschreiben.

Automation

Für eine erfolgreiche Umsetzung ist die Automatisierung bestimmter Arbeitsvorgänge unabdingbar. Sie beginnt bei der Abbildung einfacher wiederkehrender Tätigkeiten und geht bis zur Vollautomatisierung von Aufbau und Betrieb ganzer Umgebungen.

Lean

Setzt auf folgenden Prinzipien auf: Vermeide Verschwendung, generiere Wert, schaffe Transparenz und betrachte die Prozessoptimierung ganzheitlich. Deswegen passt als agiles Vorgehen Kanban besser als Scrum zum DevOps-Ansatz.

Measurement

Um Qualität durchgängig zu sichern, sind einheitliche Bewertungskriterien wichtig. Es sollten nicht nur die gesamte Applikation und ihre Komponenten, sondern auch die dahinter liegenden Prozesse überwacht werden. Eine übergreifende kontinuierliche Verbesserung und für beide Seiten nachvollziehbare Metriken sind dabei unabdingbar.

Sharing

Die Bereitschaft, Wissen zu teilen, voneinander zu lernen und Erkenntnisse proaktiv mitzuteilen, sorgt für die notwendige Basis einer klaren Kommunikation und ist ebenfalls ein wichtiger Aspekt der DevOps-Strategie.

Diese fünf Bestandteile des DevOps Lifecycle (Motto: Keep C.A.L.M.S. and Carry On) bilden die Grundlage für eine effizientere Zusammenarbeit und eine bessere Qualität der erzeugten Produkte. DevOps ist zwar selbst kein Werkzeug, jedoch bilden Software-Tools zur Automatisierung und dem Messen wichtige Bausteine bei der erfolgreichen Implementierung. Den Kern von DevOps bilden aber vor allem die Menschen und die Art und Weise, wie sie mit anderen zusammenarbeiten. Zum Weiterlesen empfehlen sich zu den organisatorischen Aspekten die Bücher das „Projekt Phoenix“ und das „DevOps-Handbuch„.

Automatisierung bringt mehr Möglichkeiten

Eine umfassende Automatisierung bei Aufbau, Konfiguration und Betrieb von Systemen ist fast zwingende Voraussetzung für den Erfolg von DevOps. Auch Virtualisierung spielt dabei eine entscheidende Rolle. Viele Software-Hersteller, aber auch Cloud-Anbieter, erweitern kontinuierlich ihren Funktionsumfang. So sind Möglichkeiten zur Automatisierung und Orchestrierung in fast allen Werkzeug-Suiten vertreten.

Die Überschneidungen einzelner früher dedizierter Werkzeuge werden immer größer. Das sorgt für Verunsicherung vieler Unternehmen – wird auf die richtigen Hersteller gesetzt? Hinzu kommt eine relativ große Bandbreite an Open Source-Werkzeugen, die mittlerweile ausgereift sind und teilweise bereits im großen Stil eingesetzt werden. Unternehmen wie Facebook, Google und eBay machen dies vor.

Konzentration aufs Wesentliche

Grundgedanke der weiterführenden Virtualisierung ist die maximale Abstraktion der Bestandteile einer Applikation und Fokussierung auf die einfache Portabilität. Anstatt Server und Betriebssystem werden exakt zugeschnittene Komponenten bereitgestellt. Um die Container zu bestücken, gibt es eine große Auswahl vorgefertigter Bausteine, die auf eine einheitliche Weise in einem Repository verfügbar sind. Ähnlich, wird der Code und Artefakte für die Infrastruktur genauso wie der Sourcecode versioniert verwaltet, um so ein Single Repository of Truth für das gesamte System zu haben.

Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

Spielte am Anfang die Firma Docker Inc. bei der Etablierung von leichtgewichtigen Virtualisierungscontainern unter dem Motto „build, ship and run applications anytime and anywhere“ eine große Rolle, kümmert sich unter dem Dach der sehr erfolgreichen Linux Foundation (LF) die herstellerunabhängige Cloud Native Computing Foundation (CNCF) um deren Weiterentwicklung, Standardisierung und Zertifizierung. Deren Mitgliederliste liest sich wie das Who’s Who der Internet-Branche. Getreu dem Motto, dass man in der Gemeinschaft mehr als jeder Einzelne allein bewegen kann. So verwundert es nicht, dass die Spende der Cluster-Management-Software Kubernetes von Google den Grundstein für die CNCF.

Inzwischen haben alle Cloud-Anbieter ihr Angebot auch um gemanagte Container-Cluster-Lösungen, Container as a Service (CaaS) oder auch um DevOps-Dienste in der Cloud ergänzt. Um auch den Trend zur Poly-Cloud zu unterstützen gibt es inzwischen auch Frameworks und Werkzeuge, um Cloud-Infrastrukturen und Dienste weitgehend herstellerunabhängig aufsetzen und anpassen zu können.

Wiederverwendbare Container

Die Anwendungsentwickler wollen sich immer weniger Gedanken über Aufbau und Betrieb der Systeme machen. Dieses Grundbedürfnis macht die Nutzung von Cloud-Diensten als Basis für Entwicklungen immer interessanter. Vor allem bei Cloud-Diensten liegt der Fokus auf der Bereitstellung eines Service, bei dem der Nutzer sich möglichst nicht mehr um den klassischen Betrieb oder um Aktualisierungen kümmern muss.

Der Trend zu Microservices und ihre kleinen Geschwister Function as a Service (FaaS) basieren letztendlich auf Container.

DevOps ist nicht einfach, sondern ist ein Kulturwandel

Das lesenswerte „DevOps-Handbuch“ der Väter der DevOps-Bewegung, Jez Humble und Gene Kim, beschreibt Best Practices und sinnvolle Metriken, um die Leistungsfähigkeit von DevOps zu messen. Humble und Kim haben neben vielen weiteren Büchern zu dem Thema auch eine wissenschaftliche Studie unter dem Namen „Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations“ veröffentlicht. Sie basiert auf der Basis der jährlich stattfindenden Befragung des „State of DevOps Report„.

Die Ergebnisse haben es in sich: Sie zeigen, dass Teams, die konsequent DevOps umsetzen, nicht nur schneller und öfters liefern, sondern auch schneller auf Fehlersituationen reagieren können. Die Performancelücke zwischen den low- und high-DevOps-Performer-Teams wird über die Jahre noch größer, sodass die guten noch besser werden und die schlechteren eher stagnieren.

Die gute Nachricht ist, dass der Einstieg in DevOps gar nicht so aufwändig ist. Schwerer wird es, das damit verfügbare Potenzial kontinuierlich zu heben und keine Ressourcen zu verschwenden. DevOps hilft dabei, Software nicht nur auf Halde zu produzieren, ohne einen direkten Wert oder Feedback daraus zu generieren. Es hilft vor allem auch Software-Teams, besser und sicherer bei Änderungen zu werden, sodass sie auf Änderungen oder neue Anforderungen schneller und mit weniger Risiko reagieren können. Insofern ist DevOps nicht nur ein Nachfolger von Agile, sondern dessen konsequente Umsetzung und Fortführung.

DevOps einführen

Wenn Betrieb und Entwicklung bei DevOps schon frühzeitig zusammenarbeiten, können diese voneinander lernen. Dementsprechend muss Raum geschaffen werden, der Fehler zulässt. Sonst wird sich kein Unternehmen trauen, diese Innovation zu erproben. Dabei spielt auch die verfügbare Zeit eine wichtige Rolle. Hier müssen ausreichende Ressourcen für die Einführung und den Lernprozess verfügbar sein.

Das DevOps-Dilemma zwischen Qualität und Flexibilität (c) Materna GmbH

Auch Tools sind ein wichtiges Mittel zum Ziel. Unternehmen sollten ihre Mitarbeiter in den Entscheidungsprozess für die einzusetzenden Werkzeuge einbeziehen. Im Idealfall bestimmen sie diese sogar. Die passenden Werkzeuge zur Erledigung täglicher Aufgaben sorgen für Zufriedenheit. Je mehr das Unternehmen die DevOps-Kultur mitträgt, umso mehr wird sich auch die gesamte IT-Performance verbessern. Denn DevOps behinhaltet immer einen stetigen Lern-, Veränderungs- und Verbesserungsprozess. Manchmal braucht es Wanderer zwischen den Welten, die beide Seiten verstehen und zwischen ihren widersprüchlichen Interessen vermitteln können.

Da es sich bei DevOps um einen Ansatz handelt, der den gesamten Entwicklungs- und Betriebsprozess betrifft, sollten Verantwortliche die bestehenden Vorgehensweisen und Zuständigkeiten überdenken. Eine Cloud-Strategie ohne DevSecOps ist heute kaum denkbar oder anders ausgedrückt „Wer Cloud möchte muss DevOps können“. Dabei handelt es sich bei DevSecOps um den nächsten logischen Weiterentwicklungsschritt für DevOps.

Um nachhaltig Vorteile zu erzielen, ist es wichtig, dass alle gemeinsam an der kontinuierlichen Verbesserung beteiligt sind und sich ihr Arbeiten danach ausrichtet. Somit können agile Praktiken die IT-Organisation nachhaltig verändern.

Tool-Auswahl DevOps

Azure DevOps

Bamboo

CircleCI

CYCLR

Docker

Flagsmith

GitHub

Gradle

IBM Ratonal Test Workbench

Jenkins

Jira

Maven

MyGet

Nagios

Puppet

SonarQube

Splunk

TeamCity

Travis CI

Wrike

*Frank Pientka arbeitet als Principal Software Architect bei der MATERNA GmbH. Als Software Architect sorgt er für mehr Qualität in der Software und kümmert sich, als Gründungsmitglied des iSAQB, um eine verbesserte Ausbildung und Zertifizierung von Architekten. Seit mehr als zwei Jahrzehnten unterstützt er Firmen bei der Umsetzung  und Modernisierung ihrer Software-Architekturen. Dabei führt er externe Reviews und Architekturbewertungen als Gutachter durch. Dazu hat er auch schon mehrere Bücher, Fachartikel veröffentlicht und Vorträge gehalten.


Mehr Artikel

Gregor Schmid, Projektcenterleiter bei Kumavision, über die Digitalisierung im Mittelstand und die Chancen durch Künstliche Intelligenz. (c) timeline/Rudi Handl
Interview

„Die Zukunft ist modular, flexibel und KI-gestützt“

Im Gespräch mit der ITWELT.at verdeutlicht Gregor Schmid, Projektcenterleiter bei Kumavision, wie sehr sich die Anforderungen an ERP-Systeme und die digitale Transformation in den letzten Jahren verändert haben und verweist dabei auf den Trend zu modularen Lösungen, die Bedeutung der Cloud und die Rolle von Künstlicher Intelligenz (KI) in der Unternehmenspraxis. […]

News

Richtlinien für sichere KI-Entwicklung

Die „Guidelines for Secure Development and Deployment of AI Systems“ von Kaspersky behandeln zentrale Aspekte der Entwicklung, Bereitstellung und des Betriebs von KI-Systemen, einschließlich Design, bewährter Sicherheitspraktiken und Integration, ohne sich auf die Entwicklung grundlegender Modelle zu fokussieren. […]

News

Datensilos blockieren Abwehrkräfte von generativer KI

Damit KI eine Rolle in der Cyberabwehr spielen kann, ist sie auf leicht zugängliche Echtzeitdaten angewiesen. Das heißt, die zunehmende Leistungsfähigkeit von GenAI kann nur dann wirksam werden, wenn die KI Zugriff auf einwandfreie, validierte, standardisierte und vor allem hochverfügbare Daten in allen Anwendungen und Systemen sowie für alle Nutzer hat. Dies setzt allerdings voraus, dass Unternehmen in der Lage sind, ihre Datensilos aufzulösen. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*