mindsquare.de durchsuchen

DevOps

DevOps ist ein Kunstwort, das sich aus den Begriffen development (Dev) und operations (Ops) zusammensetzt. Somit vereint DevOps zwei organisatorisch voneinander getrennte IT-Bereiche: Die Softwareentwicklung (development) und den IT-Betrieb (operations).

Denn diese beiden Fachabteilungen können ungemein voneinander profitieren und ihre Expertise in die jeweiligen Teams einfließen lassen. So kann die Entwicklung qualitativ hochwertiger Produkte beschleunigt ausliefern und ein zuverlässiger Betrieb gewährleistet werden.

Ziel von DevOps

Das Ziel von DevOps ist es, die organisatorischen Trennungen zu respektieren und zu wahren, aber gleichzeitig durch Anpassungen der Prozesse die Entwicklung der Software effizienter und zuverlässiger zu gestalten. Zudem wird in diesem Ansatz der Fachbereich direkt integriert, wodurch im Zusammenhang mit agilen Methoden schnellere Abnahmen und Auslieferungen ermöglicht werden können. DevOps ist demnach ein Prozessverbesserungs-Ansatz, der den gesamten Prozess die Softwareentwicklung betreffend optimieren soll und somit dem gesamten Geschäft schnelle und effiziente Services anbietet.

E-Book: Was ist DevOps?

In diesem E-Book erfahren Sie mehr über DevOps und ob es für Ihr Unternehmen sinnvoll ist.

Wieso DevOps?

Die DevOps-Bewegung ist aus der Marktanforderung heraus entstanden, die Produktqualität zu erhöhen und Projekte liefergetreu fertigzustellen. Die Kundenerwartungen werden immer anspruchsvoller und Unternehmen stehen zusehends unter Zugzwang. Während die Entwicklung jedoch auf Agilität setzt und eine ständige Optimierung der bestehenden Systeme anstrebt, beruht der Betrieb auf Stabilität. Der Betrieb verfolgt das Ziel, möglichst stabile Software, Infrastrukturen und Systemlandschaften zu betreuen. Die Teams blieben somit isoliert und befassen sich nur mit ihren eigenen Zuständigkeitsbereichen und – natürlich – den eigenen Zielen und Werten.

Die innovative Methode wird von integrierten IT-Teams umgesetzt, die die Verantwortung sowohl für die Entwicklung als auch für den Betrieb von Applikationen übernehmen. Das Team unterstützt somit den gesamten Software Lifecycle. Ganz nach dem Credo:

You build it, you ship it, you run it.

DevOps Komponenten

DevOps ist als eine Unternehmenskultur zu verstehen, die einen ganzheitlichen Ansatz verfolgt. Um eine effizientere Zusammenarbeit und eine bessere Qualität des Endproduktes erreichen zu können, sind die vier Komponenten Teams, Tools, Methoden sowie Transparenz und Stabilität Aspekte von DevOps:
DevOps Aufgaben

Teams

Der Anspruch von DevOps ist es, dass sich alle Projekt-Beteiligten gegenseitig unterstützen und mit ihren Fähigkeiten und ihrem Wissen das komplette Team bereichern. Das Wissen soll demnach nicht in den einzelnen Bereichen „gehortet“ werden – Kopfmonopole werden gemieden.

Neben den Hauptakteuren Softwareentwicklung und IT-Betrieb können auch Mitarbeiter aus Fachbereichen, aus der Test-Abteilung und dem Support das DevOps-Team mit ihrem Fachwissen unterstützen. Durch diese integrierten Teams ergibt sich der Vorteil, dass die notwendige Expertise direkt im Team vorhanden ist und nicht erst umständlich erfragt werden muss – aus der räumlichen Nähe resultieren schnellere Kommunikationswege. Zudem können benötigte Freigaben direkt aus dem Team herausgegeben werden. Das Ergebnis:

  • Schnellere Time-to-Market,
  • eine hohe Liefertreue,
  • die Erwartungen des Unternehmens können passgenau erfüllt werden,
  • das Endprodukt erhält einen verbesserten Support.

Tools – Prozesse automatisieren

Tools sollen uns Menschen bei Standardaufgaben entlasten. So müssen in einem ersten Schritt wiederkehrende Aufgaben in einem Prozess identifiziert werden, die dann in einem weiteren Schritt den Maschinen überlassen werden sollen. Die Verwendung von Tools, die eben jene Aufgaben automatisiert erledigen sollen, wird in jeder einzelnen Phase des Software-Lifecycles angestrebt. Dabei sollen diese Tools nicht losgelöst voneinander stehen, sondern möglichst viel interagieren und eine Toolchain (Werkzeugkette) bilden. Letztendlich sollen möglichst viele Schritte automatisiert erledigt werden. So könnten Maschinen

  • Build-Prozesse nach dem Einsatz neuer Codes (Code deployment) direkt ausführen,
  • Artefakte automatisch in den jeweiligen Umgebungen bereitstellen,
  • automatisch Tests ausführen und das Ergebnis den Verantwortlichen melden,
  • den Status der Infrastruktur und Anwendungen automatisiert überwachen,
  • Entscheidungen zur Anpassung der Infrastruktur/Applikationen auf Basis festgelegter Schwellwerte treffen.

DevOps selbst ist kein Werkzeug, jedoch bilden unterschiedliche Software-Tools wichtige Bausteine zur Automatisierung und Implementierung der Produkte. Die Infrastruktur der Kunden bietet häufig schon Grundvoraussetzungen, um den Ansatz problemlos durchführen zu können. Der Einsatz der DevOps Tools variiert dabei von Kunde zu Kunde umso stärker: Datenschutzanforderungen sorgen dafür, dass ein Teil der Infrastruktur direkt beim Kunden gehostet werden muss, wieder andere Applikationen/Komponenten können in die Cloud ausgelagert werden, was den hybriden Ansatz beschreibt: Die Vermischung von Cloud und On-Premise. Die verstärkte Integration von Anforderungs- und Projektmanagement-, Entwicklungs-, Build-, Deployment- sowie Test-Tools ermöglicht eine deutliche Verkürzung der Time-to-Market. Die gesamte Entwicklung bis hin zum produktiven Einsatz des Produktes profitiert von dieser Toolchain.

Neben den Bereichen Entwicklung und Betrieb können Maschinen auch im Projektmanagement unterstützen. Das Kanban-Board beispielsweise, eine Projektmanagement-Methode zur transparenten Darstellung des Projektverlaufs, kann digitalisiert und in einer Software-Lösung implementiert werden.

Open-Source-Lösungen wie Jenkins oder Docker für die Build-Phase oder das Container-Management können sich nahtlos in das DevOps-Projekt einfügen und bilden eine zusammenhängende Toolchain.

Jedes Unternehmen sollte sich die Frage stellen, wie sein ganz persönlicher Software-Mix aussehen sollte und welche Software das Unternehmen bei der Erreichung seiner DevOps-Ziele bestmöglich unterstützt. Soll die Software On-Premise, in der Cloud oder in einem hybriden Ansatz genutzt werden? Zudem sollten die Themen Datenschutz, Lizenzmodelle oder Abhängigkeiten von einem Lieferanten (Vendor-Lock-In) beachtet werden.

Methoden

DevOps setzt methodisch sowohl auf technologischer als auch auf prozessualer Ebene an und stellt dabei klassische ITIL-Prozesse auf die Probe. ITIL (IT Infrastructure Library) beschreibt eine strukturierte Prozesssammlung von Best Practices für Service Management in der IT. ITIL gehört mittlerweile zum Tagesgeschäft vieler IT-Organisationen, die die bewährten Standardverfahren anwenden, um wirtschaftlich und qualitätsbewusst arbeiten zu können. Nun sieht das innovative DevOps-Konzept ein „ausbrechen“ aus standardisierten Verfahren vor, was Unternehmen mit stabilen Prozessframeworks vor Herausforderungen stellt.

Auf technologischer Ebene bietet DevOps Entwicklungs-, Codeverwaltungs-, Test- und Deployment-Methoden an:

  1. Continuous Integration
  2. Continuous Delivery
  3. Continuous Deployment
  4. Integration in vorhandene Prozesse

Continuous Integration

Continuous Integration ist eine Methode, in der fortlaufend Komponenten zu einer Anwendung zusammengefügt werden. Durch die kontinuierliche Integration soll die Softwarequalität gesteigert werden. Damit die Komponenten des Produktes für alle Teammitglieder transparent einzusehen sind, dienen Artefakte der Repräsentation von Produkt-Bestandteilen. DevOps zielt mittels Continuous Integration auf ein automatisiertes Bauen von Software-Artefakten aus Quell-Code ab.

Continuous Delivery

Continuous Delivery ist der nächste Schritt, der auf Continuous Integration aufbaut. Ziel der Continuous Delivery ist es, die zuvor automatisierten Artefakte (ebenfalls) automatisiert zu deployen. Das heißt, dass das Artefakt automatisch getestet und daraufhin in der Produktivumgebung installiert wird.

Continuous Deployment

Continuous Deployment bedeutet, dass Builds auf die Produktionsumgebung automatisiert eingespielt werden. Continuous Deployment ist die letzte Ausbaustufe und nur für ausgewählte Softwareentwicklungen sinnvoll einsetzbar.

Integration in vorhandene Prozesse

Traditionelle Unternehmen haben ihre etablierten Prozesse. Nun ist DevOps aus der Erkenntnis heraus entstanden, dass die standardisierten Prozesse heutzutage nicht mehr ausreichen, um wettbewerbsfähig bleiben zu können. So sind die etablierten Prozesse durch höhere Kundenanforderungen getrieben, sich anpassen zu müssen: DevOps ist der Treiber.

Ein guter Ausgangspunkt zur Implementierung von DevOps ist es, auf Prozessebene zu beginnen: Hier bietet sich zum Beispiel das Change Management an. Das Change Management nach ITIL ist ein Prozess, in dem alle Veränderungen an der IT-Infrastruktur kontrolliert und risikoarm durchgeführt werden. So werden alle Anpassungen überwacht und den vorgegebenen Zielen entsprechend gesteuert. Ist dieser Prozess transparent umgestaltet, können DevOps-Teams häufiger Funktionalitäten in Produktivumgebungen nachvollziehbar livesetzen. Durch die Transparenz ist gewährleistet, dass die gesamte Infrastruktur nachvollziehbarer und somit stabiler zur Verfügung steht – im Falle eines Ausfalls kann somit schneller und direkter reagiert werden.

Transparenz und Stabilität

Effiziente Messungen sorgen für eine skalierbare IT-Infrastruktur und transparente Projektfortschritte. DevOps setzt zum einen auf das klassische Projektmanagement-Reporting – agil oder stabil – und zum anderen auf Messungsansätze in der Infrastruktur. Das Projektmanagement-Reporting variiert dabei je nach gewählter PM-Methode, DevOps kann sich flexibel anpassen.

Messungen der Projektqualität

Wird ein Projekt unter Verwendung einer agilen Methode wie Scrum durchgeführt, dann ist die Messung der Projektqualität ein aussagekräftiges Kriterium. Die Geschwindigkeit macht den Kerntreiber der Projektentwicklung aus. Im Scrum-Vokabular wird die Velocity als Maßeinheit für die Schnelligkeit der Teams definiert. Sprints beschreiben temporäre, sich wiederholende Phasen im Projektprozess, in der das Team ein funktionsfähiges Zwischenprodukt entwickelt und dem Kunden vorstellt. Also: Wie viel Funktionalität kann ein Team in einem Sprint liefern? Die Lieferfähigkeit des Teams kann entsprechend der Anforderungen gemessen werden – daraus lassen sich Entscheidungen ableiten. Häufig führen externe Einflüsse und Abhängigkeiten zu langlaufenden Sprints. Durch die Messung dieser Dauer können die Verantwortlichen entscheiden, ob externe Entscheider zeitweise in das Projekt geholt werden sollen. So verkürzen sich die Kommunikationswege und die Ansprechpartner sind mit ihrem Fachwissen direkt vor Ort.

Zudem sind stetige Feedbackschleifen mit den Anwendern essentiell. In den Messungen sollte beachtet werden, wie hoch die Akzeptanz der Lösung bei den Anwendern ist und sich selbstverständlich im weiteren Verlauf des Projekts wiederspiegeln. Das ist ein klarer Vorteil der agilen Methode und der Entwicklung in Sprints: Die Entwicklung wird in Teil-Etappen durchgeführt, wodurch Veränderungen basierend auf dem Feedback der Anwender flexibel angepasst werden können. Bei DevOps ist das Anwenderfeedback aus dem Livebetrieb essentiell, um wiederkehrende Probleme direkt im Team schnell beheben zu können. In klassischen Wasserfall-Projekten richtet sich die Produktqualität nach der Liefertreue in Bezug auf vordefinierte Meilensteine und das Budget.

Transparenz und Stabilität in der Systemlandschaft

Neben der Messung der Projektqualität sind insbesondere auch technische Messungen elementar. Die Messung der Infrastruktur untergliedert sich in die Messung der Entwicklung durch automatisierte Tests und in die Messung des Betriebs.

Automatisierte Tests können Fehler in der Oberfläche messen – die Verfügbarkeit lässt sich in Last-Performance-Tests ermitteln. Messungen im Betrieb laufen über ein Monitoring der Verfügbarkeit von Applikationen, der Infrastruktur und dem Monitoring von Business Services. Hier wird getestet, ob die Funktionalitäten der Software ohne Einschränkungen zur Verfügung stehen. Anhand dieser Messungen kann das Team eine Roadmap für das nächste Projekt erstellen und die Erkenntnisse aus den Messungen direkt anwenden. Open-Source-Tools wie Nagios sind geeignete Lösungen zum Monitoring komplexer IT-Infrastrukturen, die sich nahtlos in das DevOps-Projekt eingliedern lassen.

DevOps und agile Methoden

Wenn in der IT-Welt der Begriff DevOps zu hören ist, wird er häufig zusammen mit den Schlüsselwörtern Agilität oder SCRUM genannt. Üblicherweise beschränken sich agile Modelle wie SCRUM auf die reine Softwareentwicklung. DevOps denkt die agile Methode weiter und bezieht diese auch auf den Betrieb der Software.

DevOps ist die konsequente Weiterentwicklung des agilen Gedankens in Unternehmen.

Somit wird hier der gesamte Unternehmens-Stack aufgegriffen: Governance, Prozesse, Anwendungen und die Infrastruktur:

DevOps - Plan-Build-Run

Die Darstellung zeigt, dass die Bereiche „Plan“ und „Build“ agil umgesetzt werden. Die agile Methode fokussiert sich dabei auf das Spannungsfeld „Anforderungen vs. Machbarkeit“. Die Anforderungen an das Produkt werden zuvor definiert und in kleinen Sprints in Funktionalität umgesetzt, wodurch die Machbarkeit der Anforderung getestet wird. Während der Build-Phase setzt DevOps ein. Die Darstellung macht deutlich, dass DevOps auf den agilen Part nicht angewiesen ist, aber durchaus von ihm profitieren kann. Der Mehrwert für das Unternehmen entsteht dadurch, dass die Integration des Fachbereichs in das IT-Projekt die Liefertreue sowie die Liefergeschwindigkeit erhöhen kann.

DevOps fokussiert das Spannungsfeld „Agilität vs. Stabilität“ und strebt eine Balance beider Parameter in der Build- sowie in der Run-Phase an. Die Arbeitsebenen Governance, Prozesse, Anwendungen und Infrastruktur werden durchgehend mittels beider Methoden bedient.

Softwareanpassungen in kleinen Inkrementen

Agile Methoden subsummieren verschiedene Vorgehensmodelle in der Softwareentwicklung. Primär fokussieren die Modelle zwei Themen: Die Zusammenarbeit zwischen Fachbereich und IT sowie die IT-interne Projektarbeit der Softwareentwicklung. Sprich: Das Aufnehmen von Anforderungen und das Tracken der Umsetzung ebendieser.

IT-Teams liefern in kleinen Inkrementen Softwareanpassungen – und dies in enger Abstimmung mit den Anwendern. Der Auftraggeber hat hierdurch bessere Steuerungsmöglichkeiten in die IT hinein und der Auftragnehmer liefert vermehrt entsprechend der Anforderungen. Ergebnisse werden nicht erst nach Monaten, sondern in der Regel innerhalb von einigen Tagen bis Wochen sichtbar.

Produktorientierung

Um die mit DevOps verfolgten Ziele erreichen zu können, müssen allerdings viel mehr Aspekte mit eingebunden werden, da DevOps den gesamten Produktlebenszyklus betrachtet. Im Fokus steht eine starke Produktorientierung. Alle an der Entwicklung, Weiterentwicklung und an der Nutzung eines Produkts beteiligten Personen werden im Rahmen von DevOps betrachtet. So werden nicht nur Entwicklungsteams unter die Lupe genommen.

Stattdessen betrachten wir bei der Umsetzung einer DevOps-Einführung oder eines DevOps- Projekts viele Bereiche. Neben den Entwicklern werden auch Mitarbeiter von IT-Operations, aus dem Fachbereich, aus den Testabteilungen und bei Bedarf noch weitere Kollegen hinzugezogen.

Das Zusammenarbeitsmodell all dieser Bereiche wird analysiert. In jedem Bereich kann eine Optimierung umgesetzt werden, die dazu beiträgt, den mit DevOps verfolgten Zielen näher zu kommen.

Ist DevOps demnach unabhängig von agilen Vorgehensweisen?

Auch das würden wir verneinen. Die Grundkonzepte agiler Methoden decken sich mit denen von DevOps (Geschwindigkeit erhöhen, Zusammenarbeit verbessern). Dementsprechend kann eine agile Vorgehensweise bei der Softwareentwicklung dabei helfen, Ziele von DevOps schneller zu erreichen.

Deswegen kann zum Beispiel das Einführen agiler Softwareentwicklungsmethoden eine Maßnahme zur Erreichung der DevOps-Ziele sein.

Vorteile von DevOps

Zusammenarbeit und Vertrauen, intelligenteres und transparenteres Arbeiten, schnellere Releases, kürzere Problemlösungszeiten und ein besseres Management unvorhersehbarer Aufgaben sind die elementaren Vorteile von DevOps.

Teams, die die DevOps-Methode anwenden, können durch Automatisierung und standardisierte Tools ihre Produktivität steigern und problemloser zu häufigeren Releases gelangen. Durch eine vollständige Transparenz verkürzt sich der Feedbackkreislauf und Probleme sowie Aufgaben können schneller gelöst und erledigt werden. Mit etablierten Prozessen und einer klaren Priorisierung, die sich durch die agile Methode flexibel an den Projektverlauf anpassen lässt, können die Teams ungeplante Aufgaben besser managen und ihre geplanten Aufgaben nicht aus den Augen verlieren.

Nachteile von DevOps

Ein Nachteil ist sicherlich, dass standardisierte Herangehensweisen (ITIL) in vielen IT-Unternehmen fest verankert sind und DevOps zunächst ein Umdenken der Mitarbeiter erfordert. Alte Strukturen werden gebrochen und „müssen“ den DevOps-Methoden Platz machen. Die Beiden Bereiche IT-Betrieb und Softwareentwicklung stehen mit der Einführung von DevOps vor der Herausforderung, sich auf die „fremden“ Prozesse einzulassen und diese anzunehmen. Mitarbeiter müssen die Bereitschaft zeigen, den Umgang mit einigen neuen DevOps-Tools zu erlernen.

Nichtsdestotrotz bleibt die Tatsache, dass DevOps aus dem Wunsch heraus entstanden ist, Softwareentwicklungen schneller liefern und somit auf dem deutschen Markt profitabel bleiben zu können. Das Zusammenfügen der Softwareentwicklung und des IT-Betriebs ist ein strategischer Ansatz, um Prozesse rund um die Softwareentwicklung zu beschleunigen.

DevOps einführen?

Sie interessieren sich für DevOps und möchten die innovative Methode nutzen, um Ihre Softwareentwicklung effizienter zu gestalten und die Zusammenarbeit Ihrer Teams zu revolutionieren? Sie haben Fragen zu der Einführung von Devops und der Anwendung in Ihrem Unternehmen? Wir beraten Sie gerne, welche Schritte für Sie die größte Wirkung haben und beantworten Ihre Fragen rund um das Thema. Vereinbaren Sie ein unverbindliches Beratungsgespräch mit unseren Experten.

Wie geht es weiter?

Schritt 1

Sie nehmen telefonisch, per Mail oder Formular Kontakt auf und schildern uns Ihr Anliegen.

Schritt 2

Zur Klärung von Rückfragen und von Details zum weiteren Vorgehen melden wir uns telefonisch bei Ihnen.

Schritt 3

Wir unterbreiten Ihnen ein Angebot und unterstützen Sie gerne auch bei der Präsentation für Ihr Management.

Passende Angebote zum Thema

Haben Sie ein gutes Gefühl was die Code-Qualität Ihrer Kundenentwicklungen im SAP angeht? Wenn bei Lesbarkeit, Dokumentation, Modularisierung oder systematischer Transport- & Releasestrategie noch Luft nach oben ist, dann sollten wir uns unterhalten.
Salesforce_Admin_on_Demand
Unser Service „Managed Development" unterstützt Sie dabei, mehr Kapazitäten für die großen Themen in Ihrem Unternehmen zu schaffen.
Design Thinking ist eine Methode für die kreative Entwicklung von Lösungen mit einem starken Fokus auf den Entanwender. Im Kern beschränkt sich das Modell auf drei elemente: Erforschen, Designen und Umsetzen. Erfahren Sie mehr!