DevOps - Mehr als Entwicklungs- und Betriebsköpfe zusammengesteckt

03 November 2020

Eine pragmatische Zusammenfassung

Gründe für DevOps

Agile Methoden und darauf aufbauend die DevOps-Philosophie setzen an der Wurzel neu an, um IT-Bereiche wieder beweglicher, die Leistungsprozesse innerhalb der IT bei schnellerer Taktung zugleich sicherer zu machen. DevOps befähigt die IT, wie den Gelegenheitsjogger die Vorbereitung zum Marathon. Unmöglich Geglaubtes wird wahr. Nicht ohne Schweiß und Veränderungswillen, aber es geht.

Was heißt “DevOps”?

DevOps steht für ein enges Zusammenwirken von Softwareentwicklung und Betrieb. MitarbeiterInnen aus Entwicklung und Betrieb übernehmen gemeinsam die Verantwortung für Produkte oder Services und stützen sich dabei auf eine gemeinsame Kultur des voneinander Lernens und Experimentierens, auf Methoden aus Lean und Agilen Ansätzen sowie auf konsequente Automatisierung, die den gesamten Prozessablauf beschleunigt und die Ergebnissequalität sichert.

In der Ende-to-Ende Variante BizDevOps arbeiten IT und Geschäftsbereiche gemeinsam an der Konzeption, (Weiter-)Entwicklung und dem Betrieb von zeitgemäßen, dem Wettbewerb überlegenen Produkten und Services. Wenn von DevSecOps die Rede ist, wird zusätzlich betont, dass Sicherheitsanforderungen von Anfang an im Entstehungs- und Betriebsprozess verankert werden.

DevOps Prinzipien

DevOps baut auf agile/lean Ansätze

  • Die höchste Priorität hat Kundenzufriedenheit durch frühe und kontinuierliche Auslieferung wertvoller Software.
  • Anforderungen werden auf kleine, gut überschaubare Aufgabenpakete aufgeteilt.
  • Die Anzahl an gleichzeitig zu bearbeitenden Aufgabenpaketen (Work in Progress) wird begrenzt.
  • Durch Pair Programming und Peer Reviews wird ständig Wissen geteilt und Prozess-Qualität verbessert.
  • Frühes Testen, Testautomatisierung, Test-driven Development
  • Lernen, regelmäßiges Reflektieren und Verbessern der Zusammenarbeit und Prozesse

Infrastruktur als Code

  • Kontinuierlich werden neue Programmteil mit bereits bestehenden, auch produktiven Komponenten integriert (CI-Continuous Integration)
  • Kontinuierliche Auslieferung von Erweiterungen und Softwarekorrekturen an die Nutzer (CD-Continuous Deployment)
  • Self-Service Portale für Infrastrukturleistungen
  • Stetes Monitoring von Schlüsselkennzahlen (KPIs) transparent für alle

Vorteile von DevOps

EntwicklerInnen profitieren davon, dass sie ihren Code schnell im echten Einsatz erleben und so früh Feedback erhalten. Die NutzerInnen bekommen kontinuierlich neue Features und schnell Korrekturen auf gemeldete Fehler ausgeliefert. Anwendungen wachsen im Lebenszyklus mit den sich verändernden Anforderungen und Möglichkeiten.

Die BetriebskollegInnen bringen schon früh im Entwicklungsprozess ihre Anforderungen zusammen mit ihrem Know-how ein und sorgen dafür, dass im Betrieb Probleme schnell und sicher erkannt werden können (Stichwort “Observability”). So wird der Betrieb sicherer, im Fehlerfall kann durch eigene Programmkenntnis bzw. die Nähe von EntwicklerInnen schnell reagiert und der Normalbetrieb wieder hergestellt werden. Multitasking, Druck und Fire-fighting gehen zurück, dafür nimmt der Anteil an konzeptioneller, konstruktiver Arbeit zu.

Phasen einer DevOps Einführung

Unternehmen, die DevOps erfolgreich implementieren, tun nicht alles auf einmal - sie begeben sich auf eine Reise der Transformation. Diese Reise ist natürlich für jedes Unternehmen anders, aber es gibt typische Phasen:

  1. Kennenlernen von DevOps und untersuchen der eigenen Praxis von Integration und Deployment
  2. Start mit ersten Experimenten und gemeinsamem Lernen: Angst vor Veränderung verlieren durch wiederholtes gemeinsames Experimentieren, enger Know-how-Austausch und Lernen werden zu einem Teil der selbstverständlichen Arbeitskultur
  3. Einsatz von Werkzeugen und Definieren von Prozessen: z.B. Automatisieren der Konfiguration von identischen Entwicklungs-, Test- und Produktiv-Umgebungen, Self-Service-Plattformen
  4. Kontinuierliche Wiederholung und Verbesserung, Standardisieren der Werkzeuge und Prozesse über Teams hinweg

Basiert auf Erfahrungen, Gesprächen und Veröffentlichungen, u.a.: puppet: CIO’s Guide to DevOps. The shortest path to better software.

Weiter ins Detail der Einführung geht es bei: https://www.wwt.com/article/devops-a-survival-guide-for-infrastructure-teams