DevOps

DevOps ist eine Sammlung unterschiedlicher technischer Methoden und eine Kultur zur Zusammenarbeit zwischen Softwareentwicklung und IT-Betrieb. DevOps soll durch gemeinsame Prozesse und Software-Werkzeuge eine effektivere und effizientere Zusammenarbeit der Bereiche Softwareentwicklung (Dev), Systemadministratoren (Ops), aber auch Qualitätssicherung und der Nutzerschaft ermöglichen.[1] Mit DevOps sollen die Softwarequalität, die Geschwindigkeit der Entwicklung und der Auslieferung, sowie das Miteinander der beteiligten Teams verbessert werden.

Softwareentwicklung wird stark durch eine Kombination speziell aufeinander abgestimmter Werkzeuge, Infrastruktur und organisatorischer Prozesse beeinflusst. Je besser die beteiligten Teams, Werkzeuge und die Infrastruktur aufeinander abgestimmt sind, desto schneller sollen Organisationen ihre Software in einer besseren Qualität ausliefern können. Die Entwicklung möchte dem Kunden möglichst schnell Updates oder neue Funktionalitäten zur Verfügung stellen. Der IT-Betrieb muss die Betriebstabilität sicherstellen und potentielle technische Defekte durch Änderungen verhindern. DevOps soll diese beiden Ziele vereinen helfen.

Der belgische Systemadministrator Patrick Debois erkannte, dass eine verbesserte Art und Weise der Zusammenarbeit zwischen Dev und Ops zu einer schnelleren und fehlerärmeren Softwareauslieferung führen kann. Während der Velocity Conference im Juni 2009 in San José entstand dabei der Begriff DevOps.[2] Im Oktober 2009 organisierte Patrick Debois dann die erste DevOpsDays-Konferenz in Gent.[3][4]

Begriff

DevOps ist ein Kofferwort aus den Begriffen Development (englisch für Entwicklung) und IT Operations (engl. für IT-Betrieb)[5].

Von DevOps existieren unterschiedliche Interpretationen und Definitionen. Der Begriff ist nicht geschützt, es gibt mehrere unterschiedliche Zertifizierungspfade.

Der Begriff DevOps – als Zusammenarbeits-Modell von traditionell verschiedenen interdependenten Arbeitsbereichen – wurde auch auf explizit andere Gebiete außerhalb von Entwicklung und Betrieb übertragen. So gibt es die Begriffe BizDevOps (Business plus DevOps).[6], aber auch DevSecOps (das Security einschließt) oder DataOps (das Datenanalyse benennt).[5] Gemeint ist jeweils, dass diese Gebiete unter Verwendung gemeinsamer Methoden und Werkzeuge eng zusammenarbeiten.

Kultur

Das Kernstück der DevOps-Organisationskultur ist die Aufhebung der Trennung zwischen Entwicklung und Operations zugunsten einer Kooperation durch:[7][8]

  • gegenseitige Sichtbarkeit von Prozessen und Plänen und einer gemeinsamen Abstimmung von Änderungen, Prioritäten und Zuständigkeiten.
  • gemeinsame Verantwortlichkeit des gesamten Teams für Kundenorientierung während des gesamten Software-Lebenszyklus.
  • kürzere Releasezyklen um Planungen und das Risikomanagement zu vereinfachen
  • häufige und offene Kommunikation

Methoden

DevOps-Methoden umfassen mehrere, bereits unabhängig existierende Techniken.

Werkzeuge

Diese DevOps-Werkzeuge unterstützen oder ermöglichen einzelne oder mehrere dieser Methoden:

Auch die Containervirtualisierung Docker oder die Container-Orchestrierung Kubernetes werden teilweise zu den DevOps-Werkzeugen gezählt.

DevSecOps

Während sich DevOps um die Bereitstellung der Infrastruktur für Dienste und die Auslieferung dieser Dienste kümmert, ist DevSecOps für die Sicherheit dieser Infrastruktur und die IT-Compliance zuständig.

Aufgabengebiete von DevSecOps:

GitOps

Bei GitOps wird der Sollzustand der Infrastruktur, aber auch der Anwendungen, in einem Git-Repository als „Single Source of Truth“ deklarativ verwaltet. Dieses Infrastruktur-Repository wird durch einen Softwareagenten nach dem Pull-Prinzip überwacht und Änderungen gegebenenfalls automatisch ausgerollt.[12][13] Änderungen an der Infrastruktur kann im Infrastruktur-Repository mit Pull Requests vorgeschlagen, getestet, gereviewed und auch delivered werden. GitOps kann auch mit anderen Systemen zur Versionskontrolle genutzt werden.

Siehe auch

Literatur

  • Gene Kim, Jez Humble, Patrick Debois, John Willis: Das DevOps Handbuch. Teams, Tools und Infrastrukturen erfolgreich umgestalten. O'Reilly, Heidelberg 2017, ISBN 978-3-96009-047-2 (englisch: The DevOps Handbook. How to Create World-Class Agility, Reliability, & Security in Technology Organizations.).
  • Nicole Forsgren, Jez Humble, Gene Kim: Das Mindset von DevOps Accelerate. 24 Schlüsselkompetenzen, um leistungsstarke Technologieunternehmen zu entwickeln und zu skalieren. Vahlen, München 2019, ISBN 978-3-8006-5963-0 (englisch: The Science of DevOps Accelerate. Building and Scaling High Performing Technology Organizations.).
  • Jürgen Halstenberg, Bernd Pfitzinger, Thomas Jestädt: DevOps. Ein Überblick. Springer Vieweg, Wiesbaden 2020, ISBN 978-3-658-31404-0.
  • Jez Humble, David Farley: Continuous Delivery. Reliable Software Releases Through Build, Test, and Deployment Automation. Addison-Wesley, Upper Saddle River 2010, ISBN 978-0-321-60191-9 (englisch).
  • Michael Hüttermann: DevOps for Developers. Integrate Development and Operations, The Agile Way. Apress, New York 2012, ISBN 978-1-4302-4569-8 (englisch).

Weblinks

  • DevOps. Informatik Aktuell – Artikelserie zu DevOps, 8. Februar 2021, abgerufen am 8. Februar 2021.
  • Felix Massem: Operations heute und morgen. heise developer, 28. April 2015, abgerufen am 7. März 2019.
  • Fabian Schaub: DevOps unter der Lupe. Browigo, 22. April 2018, abgerufen am 22. April 2018.
  • Brian Dawson: Missverständnisse rund um DevOps – und wie man es richtig macht. Was ist eigentlich DevOps? In: Entwickler.de. Software & Support Media, 6. Januar 2017, abgerufen am 19. April 2017 (Teil 1/2).
  • Brian Dawson: Warum DevOps so wichtig ist. DevOps ist keine Eintagsfliege. In: Entwickler.de. Software & Support Media, 9. Januar 2017, abgerufen am 19. April 2017 (Teil 2/2).
  • Asami Novak: Going to Market Faster. Most Companies Are Deploying Code Weekly, Daily, or Hourly. In: New Relic Blog: Modern Software. 4. Februar 2016, abgerufen am 19. April 2017 (englisch).
  • Ravi Tharisayi: DevOps 101. Moving Fast With Confidence. In: New Relic Blog: Modern Software. 13. April 2017, abgerufen am 19. April 2017 (englisch).
  • Thomas Fischer: DevOps als modernes IT-Outsourcing. (PDF) Agile Softwareentwicklung bis zum Ende gedacht. In: noris.de. 14. August 2017, abgerufen am 14. August 2017.

Einzelnachweise

  1. a b Wilhelm Hasselbring: DevOps. (PDF; 2.614 kB) Softwarearchitektur an der Schnittstelle zwischen Entwicklung und Betrieb. In: GI-Fachtagung Architekturen 2015, Hamburg. 10. Juli 2015, abgerufen am 24. Februar 2016.
  2. https://conferences.oreilly.com/velocity/velocity2009/public/schedule/detail/7641
  3. DevOpsDays 2009 Ghent. In: devopsdays.org. 2009, abgerufen am 17. Februar 2016 (englisch).
  4. Patrick Debois: DevOps. A software revolution in the making? In: Cutter IT Journal 24, No. 8. 2011, abgerufen am 11. August 2015 (englisch).
  5. a b c J. Halstenberg, B. Pfitzinger, Th. Jestädt: DevOps – Ein Überblick; Springer-Vieweg (Heidelberg) 2020
  6. Brian Fitzgerald, Klaas-Jan Stol: Continuous Software Engineering – A Roadmap and Agenda. In: Journal of Systems and Software, 4. Juli 2015 doi:10.1016/j.jss.2015.06.063
  7. aws.amazon.com - Die DevOps-Kultur
  8. azure.microsoft.com - DevOps-Kultur
  9. a b aws.amazon.com - DevOps-Methoden
  10. a b c azure.microsoft.com - DevOps-Methoden
  11. a b Patrick Peschlow: Die DevOps-Bewegung. Was ist das eigentlich und was bedeutet es für uns? In: Javamagazin 1.2012. codecentric AG, Januar 2012, abgerufen am 29. Juni 2020.
  12. weave.works - Guide To GitOps
  13. heise.de - Einführung: Was ist GitOps und welche Werkzeuge lohnen sich?