| FOTO | AUTO | EDV | AUDIO |

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

edv:devops:start [15 50 2025 19 : 50] – angelegt - Externe Bearbeitung 127.0.0.1edv:devops:start [29 17 2026 07 : 17] (aktuell) André Reichert-Creutz
Zeile 1: Zeile 1:
-{{ :edv:logo-devops.png?400 |}} +====== DevOps ======
-Was ist DevOps: Bei DevOps handelt es sich um eine Kultur der Zusammenarbeit, optimierte Praktiken und Automation. DevOps fördert Zusammenarbeit und beseitigt die Probleme der Aufgabenorientierung.+
  
-===== Das DIKW Modell ===== +//Schulungsunterlage für IT-AuszubildendeUmschüler und Quereinsteiger in den IT-Betrieb.//
-Das DIKW-Modell hilft uns dazwischen zu unterscheidenob Daten/Information oder Wissen/Weisheit (also data/infrormation oder knowledge/wisdom) fehlt. +
-{{ edv:devops:dikw.png?800 |}} +
-|Data|Ungeordnet, ohne Verknüpfung = Rohdaten| +
-|Informarion|Wer, Was, Wann, Wo = Verknüpfte Daten,  zB Datenbank| +
-|Knowledge (Wissen)|Informationen die zu einer Erkenntnis führen = Ergebnis| +
-|Wisdom (Weisheit)|von individuellen Erlebnissen, Werten und Intuition eingerahmte Information|+
  
-===== Was sind die Unterschiede zwischen CICD und CD? ===== +<typo fs:90%; lh:150%> 
-=== Continuous Integration === +DevOps ist keine Software, die man installiert, und keine Stelle, die man besetztEs ist eine Arbeitsweise, die Entwicklung und Betrieb wieder zusammenbringt — organisatorischkulturell und technisch. Diese Unterlage behandelt alle drei Ebenen, mit deutlichem Schwerpunkt auf dem, was man tatsächlich tut. 
-Entwickler, die mit Continuous Integration arbeiten, mergen ihre Änderungen so oft wie möglich zurück in den Haupt-BranchZur Validierung der vom Entwickler vorgenommenen Änderungen wird ein Build erstelltder dann automatische Tests durchläuft. Auf diese Weise lassen sich die Integrationsprobleme vermeidendie möglicherweise auftretenwenn die Entwickler mit dem Mergen der Änderungen in den Release-Branch bis zum Release-Datum warten.+</typo>
  
-Bei der Continuous Integration wird großer Wert auf die Testautomatisierung gelegt, um die Anwendung auf Fehlerfreiheit zu überprüfen, wenn neue Commits in den Haupt-Branch integriert werden.+===== Für wen ist das gedacht =====
  
-=== Continuous Delivery === +^ Zielgruppe ^ Vorkenntnisse ^ 
-Continuous Delivery ist eine Erweiterung der Continuous Integration, da alle Codeänderungen nach der Build-Phase automatisch in einer Test- und/oder Produktionsumgebung implementiert werden.+| Auszubildende Fachinformatik (Systemintegration und Anwendungsentwicklung) | Linux-Kommandozeile, Grundverständnis Netzwerk | 
 +| Umschüler und Quereinsteiger | erste Programmier- oder Administrationserfahrung | 
 +| Administratoren, die in Richtung Automatisierung wollen | Berufserfahrung im Betrieb |
  
-Dies bedeutetdass du zusätzlich zu automatisierten Tests über einen automatisierten Release-Prozess verfügst und deine Anwendung jederzeit mit einem Klick auf eine Schaltfläche bereitstellen kannst.+Programmierkenntnisse sind hilfreichaber keine Voraussetzung. Wer ein Shell-Skript lesen kann, kommt durch.
  
-Theoretisch kannst du mit Continuous Delivery entscheiden, ob du täglich, wöchentlich, vierzehntägig oder in sonstigen deinen Geschäftsanforderungen entsprechenden Intervallen veröffentlichst. Wenn du jedoch wirklich die Vorteile der Continuous Delivery nutzen möchtest, solltest du die Anwendung so früh wie möglich für die Produktion bereitstellen, damit kleine Batches veröffentlicht werden können, an denen eventuelle Probleme leicht zu beheben sind.+===== Wie diese Unterlage aufgebaut ist =====
  
-=== Continuous Deployment === +Jedes Kapitel folgt demselben Muster:
-Continuous Deployment geht noch einen Schritt weiter als Continuous Delivery. Bei dieser Methode wird jede Änderung, die sämtliche Stationen der Produktionspipeline durchlaufen hat, für die Kunden freigegeben. Dieser Prozess erfolgt vollautomatisch. Nur wenn ein Test fehlschlägt, wird eine neue Änderung nicht in der Produktion bereitgestellt.+
  
-Continuous Deployment ist eine hervorragende Möglichkeit, die Feedbackschleife mit deinen Kunden zu beschleunigen und den Druck auf das Team zu mildern, da es keinen Release-Tag mehr gibt. Entwickler können sich auf die Entwicklung von Software konzentrieren und sehen, wie ihr Werk Minuten nach der Fertigstellung live geht.+  * **Lernziel** — was du danach können sollst 
 +  * **Theorie** — knapp gehaltennur so viel wie nötig 
 +  * **Praxis** — ein Lab zum Mitmachen 
 +  * **Anti-Pattern** — was in der Praxis regelmäßig schiefgeht 
 +  * **Reflexionsfrage** — bezogen auf deinen eigenen Betrieb
  
-==== Wie stehen die Verfahren miteinander in Beziehung? ==== +Die Kapitel bauen aufeinander aufWer quer einsteigt, sollte zumindest Teil A gelesen haben.
-Einfach formuliert ist Continuous Integration ein Bestandteil von Continuous Delivery und Continuous DeploymentContinuous Deployment entspricht Continuous Delivery – abgesehen von den automatisch erfolgenden Releases.+
  
 +===== Das durchgehende Fallbeispiel =====
  
-==== Vorteile von Microservices ==== +Durch alle Kapitel begleitet uns dieselbe Anwendung: **KFZ-Rechner**ein kleiner Webdienst, der eine Versicherungsprämie berechnet. Zu Beginn liegt er als Ordner auf einem Notebook. Am Ende der Unterlage wird er versioniertautomatisch getestet, containerisiertüberwacht und mehrmals täglich ohne Ausfall ausgeliefert.
-Microservices haben nicht nur einen Einfluss auf die technologische Basis des Projektessondern auch auf die Organisation der Arbeit. Ein großes Projekt wird durch kleinere Projekted. h. Microservicesersetzt. Die Teams können eigenverantwortlich arbeiten und haben mehr Freiheit, wenn es um die Wahl der Technologie geht. Aus der Geschäftssicht wird weniger zentrale Koordinierung benötigt. Der Microservices-Ansatz steht eng im Zusammenhang mit Scrum, bei dem selbstorganisierte Teams im Vordergrund stehen.+
  
-==== Was ist Shift-Left Testing ==== +<typo fs:90%; lh:150%> 
-=== Wasserfall-Modell === +Jedes Kapitel fügt genau ein Stück hinzuDas ist AbsichtDevOps entsteht nicht durch eine große Umstellung, sondern durch viele kleine. 
-Software-Entwicklung läuft traditionell nach dem sogenannten Wasserfall-Modell abNacheinander werden die folgenden Phasen „von oben nach unten“ bzw. auf einem Zeitstrahl von links nach rechts abgearbeitet:+</typo>
  
-  - Definition der Anforderungen +===== Lernpfad =====
-  - Entwicklung des Designs +
-  - Coding +
-  - Tests +
-  - Veröffentlichung+
  
-=== Die Linksverschiebung === +==== Teil A — Warum überhaupt ====
-Beim Shift Left Testing wird der Wasserfall aufgelöst. Die Reihenfolge ohne Tests sieht jetzt so aus: Anforderungen - Design - Coding - Veröffentlichung. Das Testen wird auf dem Zeitstrahl möglichst weit nach links geschoben und mehrfach durchgeführt.+
  
-==== DMAIC-Zyklus ==== +  * [[edv:devops:01_warum_devops|01 Warum DevOps]] — Ausgangslage, Mauer der Verwirrung, Wertstrom 
-{{ edv:devops:dmaic-zyklus-uebersicht1.png?400|}} +  * [[edv:devops:02_kultur_und_prinzipien|02 Kultur und Prinzipien]] — CALMS, die Drei Wege, DIKW
-DefinitionDas Akronym DMAIC steht für den Kernprozess des Qualitätsmanagement-Ansatzes Six Sigma und beschreibt dessen Phasen |Define (Definieren)|Measure (Messen)|Analyse (Analysieren)|Improve (Verbessern)|Control (Steuern)| +
  
-===Define – Definieren===  +==== Teil B — Wie man arbeitet ====
-Was ist das Problem?\\ +
-In dieser Phase wird der Ist-Zustand dokumentiert und definiert, wer die Kundschaft (im weitesten Sinn) des Prozesses ist und welche Kundenbedarfe er erfüllen soll. Auf dieser Basis werden dann die Leistungsmerkmale des Prozesses definiert, die kritisch für die Erfüllung der Kundenerwartungen sind. Zudem werden Projektparameter wie Umfang, Grenzen und Zeiträume festgelegt.+
  
-===Measure – Messen===  +  * [[edv:devops:03_versionskontrolle|03 Versionskontrolle und Branching]] — GitTrunk-basedCode Review 
-Wie lässt sich die Auswirkung messen?\\ +  * [[edv:devops:04_testen|04 Testen und Qualität]] — TestpyramideShift-Left und Shift-Right
-Daten, Zahlen und Fakten liefern die Basis für ein erfolgreiches Verbesserungsprojekt. Messen bedeutet in dieser Phasedie derzeitige Ausprägung der Leistungsmerkmale festzustellen. Dazu wird der Prozess zunächst in Teilprozesse aufgegliedert und visualisiert (Process-Mapping). Auf dieser Basis können mögliche Einfluss- und Ausgangsgrößen ermittelt sowie Methoden und Instrumente zur Erhebung von Daten aus den einzelnen Prozessschritten festgelegt werden. Ziel istdie Funktionalität des Prozesses zu erfassen. Als Werkzeuge stehen dafür unter anderem statistische und grafische Methoden sowie Prozess- und Messsystemfähigkeitsuntersuchungen zur Verfügung. Nach Abschluss diese Phase liegen beispielsweise ein DatenerfassungsplanDatenerfassungsblätter, Häufigkeitsdiagramme (Histogramme), Messsystemanalysen, eine Prioritätsmatrix sowie eine FMEA (Failure Mode and Effects Analysis, dt.: Fehlermöglichkeits- und -einflussanalyse, kurz Auswirkungsanalyse) vor.+
  
-===Analyse – Analysieren===  +==== Teil C — Wie man ausliefert ====
-Welche Ursachen hat das Problem?\\ +
-Ziel der Analysephase ist, die Ursache-Wirkungs-Beziehungen zwischen In- und Outputs nicht nur qualitativ, sondern möglichst auch quantitativ darzustellen, um die Ursachen der Abweichung von definierten Leistungszielen zu identifizieren. Als Werkzeuge hierzu dienen neben dem Brainstorming beispielsweise Ishikawa-Diagramme, FMEA sowie statistische Methoden. Das Ergebnis dieser Phase führt unter Umständen dazu, dass Änderungen der Problembeschreibung oder des gesamten Projektrahmens vorgenommen werden müssen.+
  
-===Improve – Verbessern===  +  * [[edv:devops:05_continuous_integration|05 Continuous Integration]] 
-Wie lässt sich das Problem eliminieren?\\ +  * [[edv:devops:06_delivery_deployment|06 Continuous Delivery und Deployment]] 
-In der Verbesserungsphase sollen Lösungsmöglichkeiten für die in der Analysephase identifizierten und ausgewählten Probleme gefunden werden. Dies kann durch Kreativitätstechniken (wie Brainstorming oder BrainwritingMindmappingMorphologischer Kasten) unterstützt werden. Die möglichen Lösungen werden anhand von Normen (gesetzliche AuflagenVerordnungen, Umweltrichtlinien usw.) sowie Mach- und Wünschbarkeitskriterien überprüft und bewertet. Über die Eignung der Lösungen wird entschiedendie vorteilhafteste wird umgesetzt.+  * [[edv:devops:07_pipeline_praxis|07 Pipeline in der Praxis]] — AufbauArtefakteRegistries 
 +  * [[edv:devops:08_deployment_strategien|08 Deployment-Strategien]] — Blue/GreenCanaryFeature Flags
  
-===Control – Steuern=== +==== Teil D — Wie man betreibt ====
-Die letzte Phase dient der Verankerung der erreichten Verbesserungen und neuen Verfahren im Alltagsbetrieb durch Standardisierung und Dokumentation. Der Prozess bzw. die Wirkung der Maßnahmen wird mit den entwickelten Messsystemen kontinuierlich überwacht, um bei Abweichungen vom definierten Ziel geeignete Korrekturmaßnahmen einleiten zu können. Die Überprüfung der Zielrerreichung erfolgt durch das Controlling.+
  
 +  * [[edv:devops:09_infrastructure_as_code|09 Infrastructure as Code]]
 +  * [[edv:devops:10_container|10 Container und Orchestrierung]]
 +  * [[edv:devops:11_gitops|11 GitOps]]
 +  * [[edv:devops:12_observability|12 Observability]] — Metriken, Logs, Traces
 +  * [[edv:devops:13_incident_management|13 Incident-Management]] — Postmortems, On-Call, Fehlerkultur
  
-====Fazit==== +==== Teil E — Wie man absichert ====
-Der Vorteil des DMAIC-Prozesses als Kern von Six Sigma liegt darin, dass er ein weites Spektrum an Möglichkeiten und Werkzeugen im Bereich der Projektmanagementtechnik eröffnet. Von großem Wert ist das Schaffen eines konzeptionellen Rahmens im Unternehmen, um Leistungen kontinuierlich messen, verbessern und kontrollieren zu können. Damit fördert DMAIC die Effektivität und die Effizienz der Unternehmensprozesse, denn +
-  * auf Markt- und Strategieveränderungen kann schnell und konsequent reagiert werden. +
-  * die konsequente Datenbasierung und die Prozessorientierung werden gefördert. +
-  * Fehler werden reduziert und Doppelarbeit wird vermieden. +
-  * die Kundenzufriedenheit wird durch Einbindung der Kundenbedürfnisse erhöht. +
-  * die Profitabilität sowie der Umsatz eines Unternehmens werden gesteigert. +
-  * durch Einbindung der Zulieferer wird ein verbessertes Lieferantenmanagement möglich.+
  
-===== C.A.L.M.S und die drei Wege ===== +  * [[edv:devops:14_devsecops|14 DevSecOps]] — SAST, DAST, Secrets, Lieferkette
-CALMS ist ein konzeptioneller Rahmen für die Integration von Entwicklungs- und IT-Betriebsteams (DevOps) innerhalb eines Unternehmens. Das Akronym steht für  +
-|Culture (Kultur)|Automation (Automatisierung)|Lean (Schlank)|Measurement (Messung)|Sharing (Austausch)| +
-|  {{ edv:devops:calms.jpeg?600 |}}  |||||+
  
-**Culture** umfasst die unternehmensweit geltenden Werte, Überzeugungen und Haltungen, die das Handeln und Umfeld von Unternehmen charakterisieren und Entwicklung, Betrieb und QA (Qualitätssicherung) unterstützen.+==== Teil F — Wie man misst ====
  
-**Automation** bezieht sich auf die Überzeugungdass alleswas effektiv automatisiert werden kann, auch automatisiert werden sollte. Das Ziel dabei ist, Mitarbeiter von sich wiederholenden Aufgaben zu befreien, Fehler zu reduzieren und Prozesse zu verbessern.+  [[edv:devops:15_dora_und_slo|15 DORA-MetrikenSLISLO und Error Budget]] 
 +  * [[edv:devops:16_wertstrom|16 Wertstromanalyse und DMAIC]]
  
-**Lean** bedeutet, Überschuss zu reduzieren und trotzdem die gewünschten Ergebnisse zu erzielen. Das bedeutet beispielsweise, die Anzahl und Länge von Meetings zurückzufahren, die Größe von Teams zu verschlanken und die Anzahl verwendeter Werkzeuge auf ein Minimum zu begrenzen.+==== Teil G — Wie man es im regulierten Umfeld macht ====
  
-**Measurement** bezieht sich darauffür alles Daten zu sammeln und für Mechanismen zu sorgendass alle betrieblichen Systeme und Ereignisse möglichst gut einsehbar und transparent sind. Diese sollten zudem über eine einheitliche Schnittstelle wie ein Dashboard zugänglich sein.+  [[edv:devops:17_reguliert|17 DevOps unter DORAVAIT und ITIL]] — FunktionstrennungNachweisführung
  
-**Sharing** bezieht sich auf die Notwendigkeit einer laufenden Kommunikation und Abstimmung zwischen Entwicklung und Betrieb. Dabei sollten nicht nur Ergebnisse und Daten ausgetauscht werden, sondern auch Analysen und Ideen.+==== Nachschlagen ====
  
-==== Das Drei Wege Modell ==== +  * [[edv:devops:18_antipattern|18 Anti-Pattern]] — die häufigsten Fehler auf einen Blick 
-=== Der Erste WegDurchfluss === +  * [[edv:devops:19_glossar|19 Glossar und Literatur]]
-Der Erste Weg beschäftigt sich damit, auf einfachstem Niveau zu verstehen, wie Arbeit fließt, wie Arbeit von Dev zu Ops +
-läuft und danach aus den funktionalen Bereichen des Unternehmens zu den Kunden – von links nach rechts, von einem +
-Team zum anderen. Das heißt zu identifizieren, wie einzelne Teile zusammenpassen – zu verstehen welche Sachen von Team zu Team +
-fließen, warum sie fließen und was mit ihnen danach passiert.\\ +
-Beim Durchfluss werden vorher besprochene Beschränkungen identifiziert – d.h. zu verstehen, wo sich die Engpässe +
-befinden und wo die Produktion am langsamsten ist, damit man danach die größte Wirkung priorisieren kann. +
-Nur wenn man versteht, wie Arbeit fließt, kann man die Hindernisse, die die Mauer der Verwirrung verursacht, klar +
-identifizieren und die Mauer eliminieren.+
  
-===Der Zweite Weg: Feedback=== +===== Zeitbedarf =====
-Der Zweite Weg beschreibt die Prinzipien, die gegenseitiges und ständiges Feedback von rechts nach links bei allen Phasen des Wertstroms ermöglichen. In der IT findet Arbeit in komplexen Systemen statt. Das Risiko von katastrophalen Störungen oder Folgen ist sehr hoch. Eng verknüpfte Komponenten sind häufig stark vernetzt, und diese Variabilität und Komplexität heißt, dass nicht immer die gleichen Ergebnisse entstehen, wenn eine Sache zweimal gemacht wird. Deswegen werden Sicherheit, Zuverlässigkeit und Stabilität sehr wichtig \\ +
-  * Systems Thinking wird ausschlaggebend. +
-  * Feedbackschleifen helfen sicherere, resilientere Arbeitssysteme zu entwickeln, weil sie mehr Möglichkeiten bieten, um Fehler zu entdecken und zu korrigieren.+
  
-===Der Dritte Weg: Kontinuierliches Experimentieren=== +^ Umfang ^ Dauer ^ 
-Der Dritte Weg behandelt die Erzeugung einer Kultur des kontinuierlichen Experimentierens und das Lernen, die kontinuierliche Erzeugung von Wissen für Einzelne, Teams und die Organisation, zu ermöglichen. Es umfasst das Niederreißen der Silo-Mentalität, die oft eine Kultur der Angst und des geringen Vertrauens ist. Dazu gehört auch das, der IT dabei zu helfen Fehler als Lernerfahrung zu sehen und den Wert darin zu sehen, neue Sachen zu probieren und Neuerungen einzuführen.+| Nur lesen | etwa 6 Stunden | 
 +| Mit allen Labs | 3 bis 4 Tage | 
 +| Als begleitete Schulung | 5 Tage |
  
-===== Deployment Pipeline (CI/CD) ===== +===== Werkzeuge für die Labs =====
-Die Deployment Pipeline ist ein Prozessmodell, das einen Anfangspunkt dafür bietet, Transparenz und Steuerung zu sichern, während Arbeit durch die verschiedenen Tests und Deployments Richtung Release fließt.+
  
-Die Schritte in einer CI/CD-Pipeline stellen verschiedene Untergruppen von Aufgaben dardie in sogenannte Pipeline-Phasen eingeteilt werdenZu diesen Phasen gehören üblicherweise:+Alleswas gebraucht wird, läuft auf einem Linux-System mit 8 GB RAM — ein Notebook, eine VM oder ein Raspberry Pi 5 genügen.
  
-  * Build – Die Phase, in der die Anwendung kompiliert wird. +<typo fs:90%; lh:150%> 
-  * Test – Die Phase, in der der Code getestet wird. Hier lassen sich durch Automatisierung sowohl der Zeit- als auch der Arbeitsaufwand verringern. +  * Git 
-  * Release – Die Phase, in der die Anwendung ins Repository gestellt wird. +  * Podman oder Docker 
-  * Bereitstellung – In dieser Phase wird der Code in der Produktionsumgebung bereitgestellt. +  * ein Editor 
-  * Validierung und Compliance – Welche Schritte zur Validierung eines Builds notwendig sind, bestimmen die Anforderungen des jeweiligen Unternehmens. Scanning Tools für die Image-Sicherheitwie Clairsichern die Qualität von Imagesindem diese mit bekannten Schwachstellen (CVEs) verglichen werden.+  * ein Git-Server (GiteaGitLab oder GitHub — auch selbst gehostet) 
 +  * optional: AnsiblePrometheusGrafana 
 +</typo>
  
-{{ edv:devops:deploymentpipeline.png?600 |}} +Verwandte Unterlagen in diesem Wiki:
- +
  
 +  * [[edv:devopsitil:start|DevOps und ITIL]]
 +  * [[edv:development:start|Development]]
 +  * [[edv:linuxserver:start|Linux Server]]
  
 +===== Legende =====
  
 +Farbig hinterlegte Kästen bedeuten:
 +
 +<WRAP center round tip 90%>
 +Ein Praxistipp oder eine Empfehlung aus der Erfahrung.
 +</WRAP>
 +
 +<WRAP center round important 90%>
 +Etwas, das man wissen muss — typischerweise eine Stelle, an der es sonst klemmt.
 +</WRAP>
 +
 +<WRAP center round alert 90%>
 +Eine Warnung. Hier kann echter Schaden entstehen.
 +</WRAP>
 +
 +----
 +
 +//Weiter mit [[edv:devops:01_warum_devops|Kapitel 01 — Warum DevOps]]//