Freitag, 16. November 2018

DevOps

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

Keine Kommentare:

Kommentar veröffentlichen