2. SepC-15 DevOps
Inhaltsverzeichnis
1. Was sind typische Anwendungsgebiete von DevOps, wo kommen die
Eigenschaften richtig zum Tragen?..................................................................................... 3
2. Gibt es verwandte Modelle und/oder wie ist es entstanden? .................................. 4
3. Eigenschaften und Merkmale von DevOps................................................................ 5
4. Requirementsanalyse.................................................................................................... 6
5. DevOps Rollen................................................................................................................ 7
6. Planung Teil 1................................................................................................................. 8
7. Planung Teil 2................................................................................................................. 8
Quellen .................................................................................................................................... 9
Webquellen ............................................................................................................................. 9
3. SepC-15 DevOps
1. Was sind typische Anwendungsgebiete von DevOps, wo kommen
die Eigenschaften richtig zum Tragen?
Als Konzept betont DevOps die Kommunikation und Zusammenarbeit von den
Abteilungen Development und Operations. So besteht das Ziel darin, dass die
Anwendungsentwicklung und der IT-Betrieb enger zusammenarbeiten, um allfällige
Fehler möglichst zu vermeiden. Diese Methodik wird häufig im Bereich
Anwendersoftware, Webanwendungen und Applikationen verwendet und das aus dem
Grund, weil die Verwendung von DevOps die Geschwindigkeit bei der Software-
Entwicklung enorm erhöhen kann. So ist der Prozessverbesserungsansatz darauf
ausgelegt, eine IT-Dienstleistung oder eine Anwendung nicht erst während des
Betriebes, sondern auch schon während der Entwicklung umfassend zu kontrollieren,
um so die gesamte Qualität zu verbessern. Hierzu könne auch geeignete Tools
beigezogen werden, welche abteilungsübergreifend verwendbar sind. DevOps-
Strategien sind ausserdem auch eine Voraussetzung für den Softwarelieferprozess
Continuous Delivery (CD).
DevOps und die agile Entwicklung können ein Unternehmen bei der
Softwareentwicklung unterstützen, indem sie
• die Entwicklung flexibler mit den sich ändernden Anforderungen der Kunden
umgehen lässt,
• es den Entwicklern ermöglicht, in kürzeren Abständen funktionsfähige
Software-Versionen bereitzustellen,
• den eigentlichen Betrieb enger mit den Entwicklern verzahnt und gemeinsame
Ansätze zur Bereitstellung von Software ermöglicht und
• alte Rivalitäten und Verständnisschwierigkeiten zwischen Abteilungen und
Kollegen reduziert.
4. SepC-15 DevOps
2. Gibt es verwandte Modelle und/oder wie ist es entstanden?
Obwohl die agile Entwicklung und DevOps beide für Softwareentwicklungen
vorgesehen sind, gibt es in verschiedenen Hinsichten unterschiedliche Ansätze in
Bezug auf Gruppen, Abteilungen und Struktur. Es ist aber wichtig zu erwähnen, dass
sich diese beiden nicht gegenseitig ausschliessen. Die agile Entwicklung kann als
Entwicklungsmethodik bezeichnet werden, während DevOps als eine Art Kultur
angesehen werden kann, welche die Zusammenarbeit fördert im Bereich Entwicklung
und Wartung. Obwohl es Unterschiede gibt zwischen agile Entwicklung und DevOps,
können sie zusammen eingesetzt werden und das kann zu qualitativ besseren
Ergebnissen führen.
Zur Entstehung von DevOps kann gesagt werden, dass an einer Konferenz im Jahre
2009 in Gent (Belgien) ein gewisser Patrick Debois den Namen der Konferenz zu
DevOpsDays benannte. In den darauffolgenden Jahren wurde dann der Begriff
DevOps immer wieder mit den agilen Methoden in Verbindung gebracht, weil sich
diese Konferenzen mit diesen Themen befassten. Die Konferenz und auch die
Vorträge konzentrierten sich thematisch auf die Zusammenarbeit von IT-Spezialisten,
Programmieren und dem operativen Produktionsmanagement, sowie den
Anforderungen agiler Methoden und eine Veränderung dieser Zusammenarbeit. Das
klassische Wasserfall-Model war in der Softwareentwicklung nicht geeignet, um agilen
Prozessen Rechnung zu tragen. Die Zusammenarbeit zwischen IT, Entwicklung und
Produktmanagement konnte nicht funktionieren, weil z.B. die Entwicklung auf agile
Methoden ausgerichtet war, aber die anderen beiden Abteilungen immer noch den
Fokus auf das Wasserfall-Modell legten. Aus diesem Grund sollte DevOps diese
Probleme hinsichtlich der Zusammenarbeit und der Kommunikation lösen, indem ein
Konzept im gesamten Lebenszyklus einer Anwendung integriert wird und den Einsatz
von verschiedenen Tools einführt.
5. SepC-15 DevOps
3. Eigenschaften und Merkmale von DevOps
Eines der wichtigsten Merkmale in DevOps ist die Zusammenarbeit bzw.
Zusammenschluss der Entwicklung und der IT-Operation. Im Vergleich zum Scrum
wird nicht nur die Lücke zwischen Kunde und Entwicklungsteam geschlossen, sondern
auch die Lücke zwischen Entwicklung und Operations & Infrastruktur. Man hat somit
eine Zusammenarbeit zwischen Kunde, Entwickler und der IT-Operation. Dies fördert
nicht nur die Kommunikation und Zusammenarbeit, sondern auch die Integration und
Automatisierung zwischen den beiden Teams. Die "Agilität wird zu Ende gedacht".
Ein weiteres Merkmal in DevOps sind ihre 8 Phasen. Diese Phasen befinden sich in
einem Infinity-Loop. Diese verspricht eine kontinuierliche Integration und Bereitstellung
der Entwicklung sowie eine kontinuierliche Lieferung an Kunden. DevOps umfasst alle
Phasen von der Planung bis zur Bereitstellung des Releases.
Die linke Seite des Loops sind die Phasen von den Entwickler und die auf der Rechten,
die der IT-Operations.
Abbildung 1: 8 Phasen von DevOps: Quelle: [1])
DevOps wird oft nicht nur als eine Methodik betrachtet, sondern als ein Mindset, eine
Kultur und mancherorts sogar als Religion. Dies kann auch als ein Merkmal betrachtet
werden, denn so kann die Motivation der einzelnen Mitglieder gefördert werden und
die Zusammenarbeit stärken.
Ebenfalls ein wichtiges Merkmal ist die Automatisierung, diese kommt in den Phasen
Testing, Integration und Bereitstellen vorallem in den Einsatz.
6. SepC-15 DevOps
4. Requirementsanalyse
Die Requirementsanalyse / Produktvision findet jeweils in der Planungsphase statt.
DevOps gibt keine Richtlinien vor, wie bei der Planung vorgegangen werden soll.
Jedoch werden diverse Tools zur Wartung der Requirements vorgeschlagen. Nach
jedem Intervall wird Feedback beim Kunden eingeholt. Anhand des Feedbacks werden
die Anforderungen neu analysiert und priorisiert, wie bei Scrum. Da keine Vorschriften
Seitens DevOps gemacht werden, kann sich das Modell Scrum hier nützlich machen.
DevOps ist in diesem Sinne ja kein Prozess, sondern eine Methodik, die sich mit
anderen agilen Prozessen kombinieren lässt.
Ein Ansatz welcher DevOps mehrfach erwähnt. Zuständige Personen für die Übersicht
und Pflege der jeweiligen Anforderungen sehen wir einerseits der DevOps Evangelist,
welcher die geschäftlichen Vorteile identifiziert sowie quanifiziert, um so die Vorteile
von DevOps zu fördern. Andererseits sehen wir den Relase Manager als zuständige
Person. Denn diese Person ist für die jeweiligen Releases zuständig. Der Release
Manager prüft, dass die Anforderungen der Kunden in das Produkt umgesetzt werden
und holt beim Kunden das Feedback.
Zu den Artefakten wird ausser die Wartungstools, wie Jira, etc. nicht wirklich berichtet.
Es ist sicher von Vorteil am Anfang des Projekts einen Requirementsanalyse
durchzuführen und alle Anforderungen mit dem Kunden durchzugehen und diese zu
priorisieren. So kann ein Konzept erstellt werden, welches auf Änderungen reagieren
kann. Jedoch wird in der Praxis oft ein Vertrag ausgehandelt, denn es wird ein Budget
gesprochen, welches am Ende eingehalten werden muss. Wichtig ist, dass das
DevOps Team im Klaren ist, was der Auftrag ist, um so den Fokus nicht in Einzelheiten
zu verlieren.
7. SepC-15 DevOps
5. DevOps Rollen
DevOps Evangelist: Die Rolle des DevOps Evangelisten ist es, die Kultur von DevOps
innerhalb des Unternehmens zu fördern und eine quasi führende Rolle einnehmen.
Dazu gehört das identifizieren und quantifizieren der Vorteile von DevOps für das
Unternehmen, die Developement und Administrativen (aus IT sicht) Teams
überzeugen, die Schlüsselrollen für DevOps identifizieren, die Mitarbeiter trainieren
und die Furcht vor Versagen zu nehmen. In SCRUM währi diese Rolle ähnlich zum
SCRUM Master.
Release Manager: Das Management und die Koordination des Produktes während der
Entwicklung bis zum Betrieb adressieren, technische Details und Hürden erkennen
und beseitigen. Koordination, integration und Entwicklungs-, Testing-, und
Deploymentfluss beaufsichtigen, um besser cd (continuous delivery) zu unterstützen.
Der Fokus liegt nicht nur an der Kreation einer End-To-End Applikations Delivery Tool
Chain, sondern auch deren Instandhaltung. Bei SCRUM wäre diese Rolle eigentich
eine Mischung aller vorhandener Rollen.
Die folgenden Rollen würden bei SCRUM einfach zur Rolle des Dev Teams gehören.
Automation Architect: Analysieren, designen und implementieren von Strategien für
continuous deployment und garantieren von hoher Verfügbarkeit auf Betriebs- und
Vorbetriebssystemen.
Software Developer/Tester: Zuständig dafür, Anforderungen zu Code machen und
auch noch das ganze zu Testen, deployen und überwachen.
Experience Assurance Expert: beauftragt, dafür zu sorgen, dass alle neuen Features
und Funktionen mit Blick auf die Endbenutzererfahrung veröffentlicht werden.
Security Engineers: Sie arbeiten Seite an Seite mit den Entwicklern zusammen um
von Anfang an Sicherheit einzubauen statt am Schluss nochmals alles verändern, da
es unsichere Teile gibt.
Utility Technology Players: IT-administratives Personal, dass sich während des
gesammten Entwicklungsprozesses engagiert und sich zum Beispiel auch beim Sprint
Planing beteiligt, um sicherzustellen, dass die Servicequalität, das
Ressourcenmanagement und zum Teil auch die Sicherheit verbessert und auch
priorisiert wird. Zu den Utility Technologie Playern gehören auch Experten zu
Entwicklungsplatformen, verschiedene Tools, Netzwerke, Server, DBs und sogar
Entwicklung und Support dazu.
Schlussendlich ist der grösste Unterschied den man zu SCRUM sieht, dass viele Teile,
weche zum Dev Team gehören hier zu eigenen Rollen wurden, welche mehr als
Ansprechsperson und Intervention dienen sollte, falls diese etwas erkennen, was nicht
optimal ist.
8. SepC-15 DevOps
6. Planung Teil 1
Obwohl DevOps keine Richtlinien zur Planung vorgibt, kann festgehalten werden, dass
in der Planungsphasen von DevOps die Teams die Funktionen und Features der
Anwendungen und Systeme, an denen sie arbeiten konzipieren, definieren und
beschreiben. Eine gut funktionierende DevOps-Kultur zeichnet sich insbesondere
dadurch aus, dass die Zusammenarbeit innerhalb der Teams gut funktioniert.
Unterschiedliche Team müssen ihre DevOps-Prozesse, -Zuständigkeiten und -
Prioritäten einander offenlegen. Die Teams müssen die Arbeit gemeinsam planen und
ihre Ziele aufeinander abstimmen. DevOps-Teams planen flexibel und gewährleisten
deren Sichtbarkeit, indem sie zum Beispiel ein Backlog erstellen, Fehler
nachverfolgen, die agile Softwareentwicklung mit Scrum verwalten und den Fortschritt
in Form von Dashboards visualisieren.
7. Planung Teil 2
In diesem Abschnitt sollten wir eigentlich erklären, wie die Arbeit verteilt wird, wie der
Aufwand geschätzt wird und wer sagt, was wann gemacht wird. Diese Fragen sind
aber im Zusammenhung mit DevOps eigentlich nicht wirklich zu beantworten, denn
DevOps ist nicht wie SCRUM ein Entwicklungsprozess, sondern mehr eine Kultur und
eher übergeordnet. Der eigentliche Sinn von DevOps ist, dass die Entwicklung und die
Systemadministration enger miteinander arbeiten und zur Planung lassen sie vieles
offen. Auf der Website von Microsoft zum Thema DevOps steht zum Beispiel unter
Plan folgendes: «DevOps-Teams planen flexibel und gewährleisten die Sichtbarkeit,
indem sie beispielsweise Backlogs erstellen, Fehler nachverfolgen, die agile
Softwareentwicklung mit Scrum verwalten, Kanban-Boards verwenden und den
Fortschritt in Form von Dashboards visualisieren.». Das bedeutet, dass DevOps die
verschiedensten agilen Ansätze unterstützen soll und nicht vorgeben, wie etwas
gemacht wird. So kann zum Beispiel eine Firma, die bisher mit SCRUM gearbeitet hat,
dieses Wissen und Prozesse immer noch behalten und trotzdem die Vorteile von
DevOps nutzen.
9. SepC-15 DevOps
Quellen
[1]: «Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For Beginners |
Simplilearn», Youtube, 2018. [Online]. Available:
https://www.youtube.com/watch?v=Me3ea4nUt0U&t=232s (Abrufdatum 21.10.2020)
[2]: digital.ai, «What is DevOps? The Ultimate Guide to DevOps» 21.05.2020. [Online] Available:
https://digital.ai/resources/devops-101/what-is-devops (Abrufdatum 21.10.2020)
[3]: arocom, «DevOps». [Online] Available: https://www.arocom.de/fachbegriffe/devops (Abrufdatum
21.10.2020)
[4]: Margaret Rouse, «What is DevOps? The ultimate guide», TechTarget vom 21.08.2017. [Online]
Available: https://searchitoperations.techtarget.com/definition/DevOps (Abrufdatum 21.10.2020)
[5]: Brian Gracely, «The 7 habits of highly effective DevOps», The Enterprisers Project. [Online]:
Available: https://enterprisersproject.com/article/2017/8/7-habits-highly-effective-devops
(Abrufdatum 21.10.2020)
[6]: Milecia McG, «Why DevOps Is Useful», DEV vom 06.06.2019. [Online] Available:
https://dev.to/flippedcoding/why-devops-is-useful-4d5k (Abrufdatum 21.10.2020)
[7]: Microsoft, «Was ist DevOps». [Online] Available: https://azure.microsoft.com/de-de/overview/what-
is-devops/ (Abrufdatum 21.10.2020)
[8]: cprime, «What is DevOps?». [Online] Available: https://www.cprime.com/technology/devops/
(Abrufdatum 21.10.2020)
[9]: Stephanie Overby, «7 DevOps roles you need to succeed», TechBeacon. [Online] Available:
https://techbeacon.com/devops/7-devops-roles-you-need-succeed (Abrufdatum 21.10.2020)
Webquellen
https://digital.ai/resources/devops-101/what-is-devops
https://devops.com/the-origins-of-devops-whats-in-a-name/
https://techbeacon.com/devops/7-devops-roles-you-need-succeed
https://azure.microsoft.com/de-de/overview/what-is-devops/#overview
https://azure.microsoft.com/de-de/overview/what-is-devops/ https://www.redhat.com/de/topics/devops
https://techbeacon.com/devops/7-devops-roles-you-need-succeed