DevOps,
die Zusammenarbeit von (nicht nur) Entwicklern und Operations in
gemischten Teams basiert auf zwei Aspekten: der Übertragung der
Prinzipien der Lean Production auf die IT (Arbeitsorganisation) und der
Überzeugung, dass in den komplexen IT-Systemen von heute Fehler
unvermeidlich sind (Führung).
Die drei Pfeiler von DevOps sind:
- Verbesserung des Workflows von Development über Operations bis zum Kunden
- Kontinuierliches, zeitnahes Feedback um immer stabilere Arbeitsergebnisse zu liefern
- Kontinuierliches Lernen und Experimentieren zur Einbindung eines dauerhaften Verbesserungsprozesses in die Arbeitsorganisation
Die Verbesserung des Workflows erfolgt in DevOps mittels
continuous integration → continuous delivery → continuous deployment.
Dabei bedeutet continuous integration,
dass die Entwickler nur an kleinen Programmteilen arbeiten, die
mindestens täglich in das Hauptprogramm integriert werden.
Automatisierte Tests in produktionsähnlichen Umgebungen sorgen dabei
dafür, dass immer fehlerfreier Code vorliegt.
Continuous delivery stellt
sicher, dass jederzeit deploybarer Code erstellt wird und umfasst neben
der continuous integration auch automatisierte Infrastruktur-Setups und
die weitgehend automatisierten Tests und Paketierungen des gesamten
Releasezyklus.
Der weitgehend automatisierte Prozess von Development bis zum deploybaren Code wird als Deployment Pipeline bezeichnet.
Als Continuous deployment bezeichnet
man eine Erweiterung des continuous delivery, bei der grundsätzlich ein
automatisiertes Deployment in Produktion erfolgt.
Kontinuierliches Feedback entsteht durch:
- Beobachten der Applikation durch Metriken fachlicher und technischer Art
- Verständnis des non-functional Bereich durch Mitarbeit der Entwickler in Ops
- Peer Review des Programmcodes
Ziel
ist, die Qualitätssicherung immer möglichst nah an der Quelle
durchzuführen, so dass der Zusammenhang zwischen Ursache und
Fehlereffekt klar ist und keine Folgefehler entstehen.
Die
Führungsphilosophie muss sich zu der einer lernenden Organisation
ändern. Fehler werden als eine Möglichkeit zum Lernen angesehen, nicht
als etwas, was zu bestrafen ist.
- Incidents werden nach Behebung ohne Schuldzuweisungen aus unterschiedlichen Perspektiven betrachtet und Gegenmaßnahmen eingeführt. Die Erkenntnisse werden in die gesamte Organisation gestreut.
- Mindestens 20% der Entwicklungszyklen werden reserviert, um organisatorische Verbesserungen und Lernen zu ermöglichen
- Standards und Prozesse werden in einem Shared Source Code dem gesamten Unternehmen zur Verfügung gestellt.
- Bewusstes Provozieren von Fehlern, um die Widerstandsfähigkeit der Systeme zu verbessern
Nach
einer im Auftrag von CA Technologies 2014 durchgeführten Umfrage
verbessert die Einführung von DevOps Zeitaufwand für Fehlerbehebung und
Maintenance von Anwendungen, Application Performance,
Mitarbeiterproduktivität und Softwareakzeptanz bei End Usern und Kunden
um jeweils ca. 20%.
PDF Download
PDF Download
Keine Kommentare:
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.