Am 20. Oktober diesen Jahres war ich auf einem IDC-Event, der sich einen ganzen Vormittag lang mit dem Thema DevOps beschäftigte. Dabei habe ich eine ganze Menge gelernt:
Laut einer IDC-Studie sind zwar 75 Prozent der befragten Unternehmen bereit für eine funktionierende DevOps-Organisation, davon sehen sich allerdings gerade einmal 13 Prozent bereits am DevOps-Ziel. Womit klar ist: Es gibt noch viel zu tun!
Es existieren vor allem vier Bereiche, in denen für eine funktionierende DevOps-Organisation die richtigen Maßnahmen ergriffen werden müssen: Firmenkultur & Firmenleitung, Technik & Automatisierung, Metriken & Messungen sowie Zusammenarbeit & Teamwork.
Immer noch fehlt es vielen Firmen an der Erkenntnis, dass zu funktionierenden DevOps-Prozessen „Fehler machen“ und „scheitern“ genauso dazu gehört wie das Implementieren der notwendigen Abläufe. Aber auch die Unternehmenskommunikation muss an DevOps-Prozesse angepasst werden.
Die Praxis zeigt: Dort, wo DevOps-Strukturen aufgebaut wurden und funktionieren, konnten Release-Zeiten von Software-Updates von Monaten auf Wochen reduziert werden, und das bei gleichzeitiger Verbesserung der gesamten Applikationssicherheit.
Was ist eigentlich dieses DevOps?
DevOps ist ein Kunstbegriff, der sich aus den Bezeichnungen „Development“ (Entwicklung) und „Operations“ (IT-Betrieb) zusammensetzt. Damit soll in einem Unternehmen eine Organisation implementiert werden, mit deren Hilfe die verschiedenen Prozesse von IT-Teams und Softwareentwicklung weitestgehend automatisiert werden können.
Auf dieser Basis lässt sich zuverlässige Software permanent weiterentwickeln, testen, modifizieren und mit hoher Geschwindigkeit aktualisieren. Dabei steht vor allem das Verschmelzen von einzelnen Teams im Vordergrund, die kritische Probleme schneller lösen und ungeplante Arbeiten besser bewältigen können.
Wer braucht dieses DevOps?
Anwender wollen vor allem eins: immer schnellere Software-Update-Zyklen. Und genau darauf müssen sich Software-Firmen einstellen, damit sie die Nachfrage an permanent neuen und verbesserten Funktionen befriedigen können. Doch dieses Tempo hat seinen Preis, der oft zu Ungunsten von Qualität und Sicherheit geht. Und genau dieses Dilemma gilt es aufzulösen: Wie stelle ich sicher, bei ständig zunehmenden Update-Zyklen die Qualität und Sicherheit nicht aus den Augen zu verlieren?
Hierbei helfen die verschiedenen DevOps-Methoden, die sich sehr stark an den Methoden der agilen Software-Entwicklung orientieren. Nur dass im DevOps-Falle die Software-Entwicklung und der IT-Betrieb dieselben Methoden anwenden. Damit wird sichergestellt, dass es keinen Bruch gibt zwischen Software-Erstellung und Software-Bereitstellung.
So funktioniert die DevOps-Werkzeugkette
Eine DevOps-Werkzeugkette ist ein System von zahlreichen Tools, mit deren Hilfe die Software-Entwicklung und das Ausliefern der fertigen Anwendungen automatisiert werden kann. Folgende Schritte umfasst eine typische DevOps-Toolchain: Coding (Entwicklung, Review, Management), Build (durchgehende Integration), Testen (kontinuierliches Testen und Feedback), Packaging, Freigabe (Automatisierung und Verwaltung), Konfigurieren sowie das Monitoring (Leistung, Zufriedenheit).
Exkurs: Das sind die wesentlichen Unterschiede von agilen und DevOps-Softwareprojekten
Agile und DevOps-basierte Software-Projekte sind sich recht ähnlich, allerdings gibt es diverse Unterschiede. Zu den wesentlichen gehören drei: Fertigstellung, Teamgröße und Zeitplanung. Bei der Fertigstellung gehen agile Projekte davon aus, dass mit Erreichen des Tags X das Projekt abgeschlossen ist. DevOps-Projekte hingegen verhalten sich wie ein Perpetuum Mobile: Die Entwicklung und das Bereitstellen von Software ist ein fortlaufender Prozess.
In Sachen Teamgröße setzen agile Projekte eher auf kleinere Teams von wenigen Personen, die einzelne Teile eines Projektes schnell finalisieren können, woraus am Schluss das große Ganze entsteht. Bei DevOps-Projekten hingegen arbeiten größere Teams zusammen, die auf dasselbe Ziele hinarbeiten. Hinsichtlich der Zeitplanung werden agile Projekte in Sprints zerlegt, die nur kurze Abschnitte von meist wenigen Tagen kennen. DevOps-Projekte hingegen weisen keine festen Zeitpläne auf, da stets das bestmögliche Produkt im Vordergrund steht.
So kommt CAST-Analysesoftware in DevOps-Projekten zum Einsatz
Gerade im Hinblick auf die kontinuierliche Entwicklung und Veröffentlichung von Software lässt sich die Qualität der Applikation sehr gut mit CAST-Software überprüfen. So erstellen die CAST-Analysetools ein exaktes Fehlerbild der Software, auf dessen Basis die Anwendungsentwickler die identifizierten Schwachstellen und Bugs eliminieren können. Dazu zählt namentlich die CAST Application Intelligence Platform (AIP), mit deren Hilfe eine Anwendung vollständig auf ihre Code-Qualität untersucht werden kann, und das über sämtliche Ebenen der Software hinweg.
Das führt bei großen Unternehmen wie Fannie Mae dazu, das im Rahmen von mehr als 150 Scrum-Projekten (die über 4.000 Builds und über 12.000 Deployments pro Monat generieren) fast 50 Prozent weniger kritische Verstöße vorkommen, eine über 25 Prozent höhere Effizienz erzielt und die Kosten um mehr als 30 Prozent gesenkt werden konnten. Das hat unter anderem mit der sehr anschaulichen Darstellung der Analyseergebnisse mithilfe der zahlreichen Dashboards zu tun, aber auch mit der automatisierten Überprüfung der Software-Qualität während des Produktionsprozesses der Applikation.
Videoexkurs: So setzt die US-Hypothekenbank Fannie Mae die CAST Application Intelligence Platform zu Qualitätssicherungszwecken bei der Software-Entwicklung
httpss://www.youtube.com/watch?time_continue=8&v=bTpUHJ9F2vs
Disclaimer: Dieser Blogbeitrag ist im Auftrag der Firma CAST entstanden, die mir bei der Ausgestaltung und Formulierung nahezu freie Hand lässt.
Pingback:CRASH-Report: So sicher bzw. unsicher sind .NET- und Java-Applikationen – IT-techBlog.de