Das Prinzip „DevOps“

Optimierte Software-Entwicklung im laufenden Betrieb

| Autor / Redakteur: Andreas Gerst * / Stephan Augsten

Abteilungsübergreifendes Teamwork ist ein besonders wichtiges Merkmal von DevOps-Strategien.
Abteilungsübergreifendes Teamwork ist ein besonders wichtiges Merkmal von DevOps-Strategien. (Bild: rawpixel.com - Unsplash.com)

Die Mauern zwischen Entwicklung und Betrieb niederreißen und mehr Austausch zwischen Developern und Administratoren schaffen – das ist die Grundidee hinter DevOps. Doch auf dem Weg hin zur DevOps-Kultur wartet so mancher Stolperstein.

Welches Unternehmen kennt das nicht? Da hat die Entwicklungsabteilung über Monate, wenn nicht Jahre, an einer neuen Softwareanwendung gearbeitet, Code geschrieben, getestet und überarbeitet. Und als es schließlich zur Einführung der neuen Applikation kommt, braucht und nutzt sie entweder kaum jemand oder sie ist schon wieder veraltet und funktioniert nicht richtig.

Schnell schiebt dann eine Abteilung der anderen die Schuld in die Schuhe: entweder haben die Entwickler an der Realität vorbei programmiert, sich zu wenig mit den Kollegen aus den Fachabteilungen abgestimmt, zu langsam gearbeitet oder IT-Operations hat die Rahmenbedingungen für die Inbetriebnahme nicht genau definiert. DevOps-Strategien sollen solche Szenarien verhindern.

DevOps ist ein Organisationsprinzip, das eine enge Integration der verschiedenen Schritte des Softwarelebenszyklus – angefangen von Entwicklung über die Testings bis hin zum produktiven Einsatz – erfordert. Ziel ist es, alle Bereiche zu einer engeren und besseren Zusammenarbeit zu bringen sowie den gesamten Entwicklungs- und Betriebsprozess zu automatisieren.

Durch ein kontinuierliches, engeres Zusammenspiel von Entwicklern und Betriebsexperten sowie den Einsatz von Automatisierungswerkzeugen können eine schnellere Geschwindigkeit im End-to-End-Prozess und eine höhere Agilität im Unternehmen erreicht werden. Neue Releases können zeitnah ausgerollt, überarbeitete Features schneller eingeführt werden.

Die Time-to-Market wird also durch DevOps deutlich kürzer. Wird DevOps mit den richtigen Werkzeugen und Methoden praktiziert, erhöht sich auch die Qualität der ausgerollten Software. So können beispielsweise Releases weitgehend automatisiert in Produktion gehen, mehr Fehler früher gefunden und behoben und Ausfälle vermieden werden. Und letztendlich erhöht eine enge Zusammenarbeit zwischen Teams und Abteilungen auch die Produktivität und Innovationskraft im Unternehmen.

DevOps – Umdenken in den Köpfen

Dass eine solche Verzahnung nicht nur moderne Technologien voraussetzt, sondern vor allem auch ein Umdenken in den Köpfen der Mitarbeiter – bis hin zu einem kulturellen Wandel innerhalb der Unternehmen –, muss allen Beteiligten bewusst sein. Silo-Arbeiten oder gar ein mögliches Konkurrenzdenken zwischen den Abteilungen ist hier fehl am Platz.

Entwickler und Administratoren müssen Hand in Hand arbeiten. Das geht am besten durch den Aufbau eines DevOps-Teams, das sich aus Vertretern der verschiedenen Teams – Entwicklung, Testing, Infrastruktur, Betrieb – zusammensetzt und die gesamte End-to-End-Pipeline definiert und betreut.

Dieses „Center of Excellence“ ist dafür verantwortlich, dass Standards definiert werden, der Prozess automatisiert abläuft und die Mitarbeiter aller Fachbereiche intensiv miteinander kommunizieren. Sie beraten nicht nur, sondern stellen für die Release Automation eine Art standardisierte Infrastruktur bereit, auf der die Teams aus Entwicklung, Testing und Betrieb die einzelnen Projekte realisieren können.

Alternativ kann man auch auf einzelne Personen setzen – also im Ops-Team eine Schnittstelle definieren, einen Verantwortlichen, der mit den einzelnen Dev-Teams den Kontakt hält und sich mit ihnen abstimmt. In regelmäßigen Meetings mit den Entwicklern, Scrum-Teams und Produktverantwortlichen werden dann Standards definiert, wie die Releases und der End-to-End-Prozess ablaufen sollen.

Verschiedene Sichtweisen zusammenbringen

Dabei ist das A und O die Bereitschaft zur Zusammenarbeit. Die bislang oft isoliert arbeitenden Teams aus Entwicklung, Testing, Betrieb und Infrastruktur müssen Vertrauen zueinander aufbauen und sich intensiv austauschen. Dies ist oft schwierig, weil die Arbeitsweisen und Historien der einzelnen Mitarbeiter und Teams teilweise sehr unterschiedlich sind.

Wichtig dabei ist, dass das Management die Veränderung anstößt und auch nachhaltig kontrolliert. Wird der Kulturwandel einfach nur „angeordnet“, versandet er schnell im Alltagsstress, denn die Mitarbeiter sind bereits zur Genüge ausgelastet. Viele DevOps-Initiativen scheitern daran, dass sie lediglich als Add-On gesehen, aber nicht wirklich gelebt und kontinuierlich vom Management getrieben werden.

Wenn Unternehmen in einem größeren Rahmen agil sein möchten, müssen sie im Übrigen auch Budgets agil umschichten und ihre Entwicklung gegebenenfalls flexibel neu ausrichten. Dieses so genannte „Agile at Scale“- Prinzip lässt sich mit mehreren Methoden und Frameworks umsetzen und auf verschiedenen Ebenen ausrollen. Zum Beispiel kann man mit der Produktentwicklungsebene beginnen und nach und nach andere Unternehmensbereiche einbeziehen.

Die Idee hinter DevOps ist, dass man seine Prozesse stetig optimiert – insofern haben diese Projekte niemals wirklich ein Ende. Dabei macht es Sinn, je nach Priorität zunächst kleinere Projekte anzugehen und schließlich auch größere Projekte anzupassen.

Tools und Technologien für DevOps

Von der technischen Seite her betrachtet ist das wichtigste Element bei DevOps eine Automatisierung des End-to-End-Prozesses – von der ersten Zeile Code über das Testing bis hin zum laufenden Betrieb. Denn eine hohe Geschwindigkeit bei gleichzeitig hoher Qualität lässt sich nur durch eine weitgehend vollständige Automatisierung erreichen, die vor allem auch das Testing mit einschließt. Das bedeutet, dass Prozesse schneller ablaufen und man jederzeit nachvollziehen kann, was, wie, wo und wann passiert.

Hier gibt es entsprechende Tools, die mithilfe definierter Prozesse die einzelnen Schritte begleiten: Der Code wird geschrieben, durchläuft dann die verschiedenen Testschritte, wird paketiert, bis er schließlich live geht. Gleichzeitig integrieren Release Automation-Tools auch eine Rückkopplung an Testing und Entwicklung.

Probleme in der Produktion oder Ergebnisse von Performance-Tests werden automatisch an die Entwickler bzw. Tester gemeldet, die die Informationen dann aufbereitet zur Verfügung haben, um die jeweiligen Probleme zu beheben. Darüber hinaus gibt es auch entsprechende Werkzeuge zum Beispiel für die Verifizierung der Codequalität, Service-Virtualisierung, für das Test Data Management, die Test Case Optimierung oder für ein automatisiertes Performance-Testing.

DevOps macht überall dort Sinn, wo oft und schnell geändert werden muss – so etwa bei Smartphone-Apps, bei denen sehr oft Änderungen und Updates erfolgen. So wie im App Store Anregungen und Feedback der Endkunden über die Bewertungen in kürzester Zeit als Feature oder Bug-Fix umgesetzt werden, können in einer idealen DevOps-Welt benötigte Software-Anpassungen zeitnah und im laufenden Betrieb umgesetzt werden.

Gerade bei mobilen Anwendungen, aber auch bei klassischen Webseiten macht man heute eine Vielzahl kontinuierlicher Weiterentwicklungsschritte. Das fängt bei Taxiunternehmen und Verkehrsbetrieben an, geht über Fluggesellschaften, Banken und Shoppingportale – es gibt keine Branche, die nicht schnell auf Änderungen im Markt reagieren und diese in Code gießen muss.

Software-Code wird zum erfolgskritischen Faktor: Es darf auf keinen Fall zu Situationen kommen, in denen der Kunde unzufrieden ist, weil etwa eine App nicht oder mangelhaft funktioniert. Hier greift der Vorteil von DevOps, trotz schneller Release-Zyklen eine hohe Qualität zu gewährleisten. Durch eine optimierte Abdeckung durch Test-Cases und automatisierte Testdurchführung kann idealerweise jeder mögliche Fall durchgespielt werden – damit wird das Testergebnis so vollständig und repräsentativ wie möglich.

Agilität als entscheidender Faktor

Wenn es um die erfolgreiche Umsetzung von DevOps geht, dann ist Agilität der entscheidende Faktor – sowohl im Hinblick auf die Methoden als auch auf den Prozess. Ein automatisierter End-to-End-Prozess, in dem neu entstehende Software getestet und automatisiert in Produktion gesetzt werden kann, bringt nichts, wenn die Software nach dem linearen Wasserfall-Modell in festgelegten Phasen programmiert wird und das erste Ergebnis nach zwei Jahren herauskommt.

Andreas Gerst
Andreas Gerst (Bild: CA Technologies)

Damit die Vorteile von DevOps und Continuous Delivery zum Tragen kommen, müssen Unternehmen dort schnell sein, wo Software produziert und weiterentwickelt wird. Das funktioniert nur mit agilen Entwicklungsmethoden.

* Andreas Gerst ist CTO & Vice President für Presales Central Europe bei CA Technologies. In dieser Rolle verantwortet er über alle Produkte und Geschäftsbereiche hinweg die Presales Consulting Teams in der Region Zentraleuropa und nimmt regelmäßig an Kundenmeetings, Konferenzen und anderen Events teil.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44784997 / Continuous Delivery & Integration)