Next:
Impressum
DevOps
1
Impressum
2
Disclaimer
3
Seminarziel
4
Herausforderung in der IT: Schnelle und stabile Deployments
4.1
Das Problem: Optimierungsbedarf in Ihrer Organisation
4.2
Der zentrale, chronische Konflikt
4.3
Lösungen durch DevOps: Überwindung von IT-Herausforderungen
4.4
Conways Gesetz und die IT-Organisation
4.5
Die Macht kleiner Teams
4.6
DevOps-Praktiken zur Problemlösung
4.6.1
Kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD)
4.6.2
Infrastruktur als Code (IaC)
4.6.3
Automatisierung und Überwachung
4.7
Überwindung des zentralen, chronischen Konflikts
5
Einführung in DevOps
5.1
Definition von DevOps
5.2
Vorteile von DevOps
5.2.1
Schnellere Markteinführung
5.2.2
Höhere Release-Frequenz
5.2.3
Verbesserte Zusammenarbeit und Kommunikation
5.2.4
Höhere Qualität und Zuverlässigkeit
5.2.5
Schnellere Problemerkennung und -behebung
5.2.6
Erhöhte Skalierbarkeit und Flexibilität
5.2.7
Kosteneffizienz
5.2.8
Kontinuierliche Verbesserung
5.2.9
Bessere Kundenzufriedenheit
6
Die Kultur von DevOps
6.1
Zusammenarbeit und Kommunikation
6.1.1
Abbau von Silos
6.1.2
Gemeinsame Ziele und Metriken
6.1.3
Regelmäßige Meetings und Austausch
6.1.4
Nutzung gemeinsamer Tools
6.2
Gemeinsame Verantwortung
6.3
Kontinuierliche Verbesserung
6.4
Fehlerkultur
6.5
Kundenorientierung
6.6
Flexibilität und Anpassungsfähigkeit
6.7
Förderung von Innovation
6.8
Mindset und Werte
6.8.1
Offenheit und Transparenz
6.8.2
Experimentierfreude und Innovation
6.8.3
Vertrauen und Zusammenarbeit
6.8.4
Verantwortung und Eigenverantwortung
6.8.5
Qualität und Zuverlässigkeit
7
Die drei Wege
7.1
Der Erste Weg: Prinzipien des Flusses
7.2
Der Zweite Weg: Prinzipien des Feedbacks
7.3
Der Dritte Weg: Prinzipien des kontinuierlichen Lernens und Experimentierens
8
Der Erste Weg – Der Flow
8.1
Einleitung
8.2
Der Begriff des Flows im Kontext von DevOps
8.2.1
Historische Perspektive
8.2.2
Die Bedeutung des Flows
8.3
Prinzipien des Ersten Weges
8.3.1
Systems Thinking (Systemdenken)
8.3.2
Verkürzung und Verstärkung von Feedback-Schleifen
8.3.3
Kontinuierliche Verbesserung
8.4
Praktische Implementierung des Flows
8.4.1
Continuous Integration und Continuous Delivery (CI/CD)
8.4.2
Automatisierung von Prozessen
8.4.3
Wertstromanalyse (Value Stream Mapping)
8.4.4
Kultur des Vertrauens und der Zusammenarbeit
8.5
Metriken zur Messung des Flows
8.5.1
Lead Time
8.5.2
Deployment Frequency
8.5.3
Change Failure Rate
8.5.4
Mean Time to Restore (MTTR)
8.6
Herausforderungen bei der Umsetzung des Flows
8.6.1
Organisatorische Widerstände
8.6.2
Technische Schulden
8.6.3
Fehlende Automatisierung
8.7
Diagramm: DevOps Flow-Prozess
8.8
Fallstudien
8.8.1
Beispiel 1: Netflix
8.8.2
Beispiel 2: Amazon
8.9
Best Practices für den Flow
8.9.1
Beginne klein und iteriere
8.9.2
Investiere in Automatisierung
8.9.3
Förderung von Kommunikation und Zusammenarbeit
8.9.4
Kontinuierliches Lernen und Verbessern
9
Der Zweite Weg – Feedback
9.1
Einleitung
9.2
Verständnis des Feedbacks im Kontext von DevOps
9.2.1
Die Rolle von Feedback-Schleifen
9.3
Prinzipien des Zweiten Weges
9.3.1
Verkürzung der Feedback-Schleifen
9.3.2
Verstärkung des Feedbacks
9.3.3
Förderung einer Feedback-Kultur
9.4
Praktische Implementierung des Feedbacks
9.4.1
Continuous Integration und Continuous Testing
9.4.2
Monitoring und Logging
9.4.3
Feedback von Endbenutzern
9.4.4
Incident Management und Postmortems
9.5
Metriken zur Messung der Feedback-Effektivität
9.5.1
Time to Detect (TTD)
9.5.2
Time to Acknowledge (TTA)
9.5.3
Time to Resolve (TTR)
9.5.4
Customer Satisfaction Score (CSAT)
9.6
Herausforderungen bei der Umsetzung von Feedback-Schleifen
9.6.1
Informationsüberlastung
9.6.2
Kulturelle Barrieren
9.6.3
Technologische Komplexität
10
Der Dritte Weg – Kontinuierliches Lernen und Experimentieren
10.1
Einleitung
10.2
Prinzipien des Dritten Weges
10.2.1
Förderung einer lernenden Organisation
10.2.2
Wissensaustausch und Kollaboration
10.2.3
Experimentieren und Innovation fördern
10.3
Praktische Implementierung von kontinuierlichem Lernen und Experimentieren
10.3.1
Kontinuierliche Weiterbildung
10.3.2
Experimente und Hypothesengetriebene Entwicklung
10.3.3
Diagramm: Der Zyklus von Experimentieren und Lernen
10.3.4
Nutzung von Feedback für kontinuierliches Lernen
10.3.5
Infrastruktur als Lernplattform
10.4
Fallstudien
10.4.1
Beispiel 1: Amazon
10.4.2
Beispiel 2: Netflix
10.5
Best Practices für kontinuierliches Lernen und Experimentieren
10.5.1
Kultur des lebenslangen Lernens etablieren
10.5.2
Fehler als Lernmöglichkeit betrachten
10.5.3
Kontinuierliche Verbesserung der Prozesse
11
Automatisierung
11.1
Vorteile der Automatisierung
11.2
Bereiche der Automatisierung
11.3
Tools und Technologien
11.4
Bedeutung der Automatisierung im DevOps-Prozess
11.4.1
Effizienzsteigerung
11.4.2
Schnelle und zuverlässige Releases
11.4.3
Konsistenz und Standardisierung
11.4.4
Schnellere Fehlererkennung und -behebung
11.4.5
Skalierbarkeit
11.4.6
Förderung einer DevOps-Kultur
11.4.7
Kostenreduktion
11.5
Tools und Techniken der Automatisierung
11.5.1
Build-Automatisierung
11.5.2
Test-Automatisierung
11.5.3
Deployment-Automatisierung
11.5.4
Containerisierung und Orchestrierung
11.5.5
Versionskontrolle
11.5.6
Monitoring und Logging
11.5.7
Infrastruktur als Code (IaC)
12
Kontinuität
12.1
Continuous Integration (CI)
12.2
Continuous Delivery (CD)
12.3
Continuous Deployment
12.4
Implementierung von Kontinuität
12.5
Bedeutung der Kontinuität in DevOps
12.5.1
Verbesserung der Qualität
12.5.2
Schnellere Time-to-Market
12.5.3
Reduzierung von Risiken
12.5.4
Effiziente Ressourcennutzung
12.5.5
Verbesserte Zusammenarbeit
12.5.6
Kontinuierliches Feedback
12.5.7
Skalierbarkeit und Flexibilität
12.5.8
Bessere Benutzerzufriedenheit
12.5.9
Förderung einer DevOps-Kultur
13
CI/CD-Pipelines
13.1
Continuous Integration (CI)
13.2
Continuous Delivery (CD)
13.3
Continuous Deployment
13.4
Aufbau einer CI/CD-Pipeline
13.5
Tools für CI/CD-Pipelines
13.6
Vorteile von CI/CD-Pipelines
13.7
Best Practices für CI
13.7.1
Häufige Commits
13.7.2
Automatisierte Builds und Tests
13.7.3
Kontinuierliche Code-Überprüfung
13.7.4
Isolierte Builds
13.7.5
Kontinuierliche Integrationstools
13.7.6
Feedback-Mechanismen
13.7.7
Kontinuierliche Verbesserungen
13.8
Best Practices für CD
13.8.1
Automatisierung des Build- und Testprozesses
13.8.2
Infrastruktur als Code (IaC)
13.8.3
Kontinuierliche Bereitstellung in verschiedene Umgebungen
13.8.4
Überwachung und Logging
13.8.5
Rollbacks und Rollforwards
13.8.6
Sicherheitsüberprüfungen
13.8.7
Kontinuierliche Verbesserung
14
Skalierbarkeit
14.1
Bedeutung der Skalierbarkeit in DevOps
14.2
Arten der Skalierbarkeit
14.2.1
Vertikale Skalierbarkeit (Scaling Up)
14.2.2
Horizontale Skalierbarkeit (Scaling Out)
14.3
Techniken zur Verbesserung der Skalierbarkeit
14.4
Tools und Technologien zur Unterstützung der Skalierbarkeit
14.5
Definition und Bedeutung der Skalierbarkeit
14.5.1
Definition der Skalierbarkeit
14.5.2
Bedeutung der Skalierbarkeit
14.6
Techniken zur Skalierbarkeit in DevOps
14.6.1
Containerisierung
14.6.2
Orchestrierung
14.6.3
Microservices-Architektur
14.6.4
Load Balancing
14.6.5
Auto-Scaling
14.6.6
Infrastruktur als Code (IaC)
14.6.7
Caching
14.6.8
Monitoring und Logging
15
Agile Entwicklung
15.1
Grundprinzipien der agilen Entwicklung
15.2
Vorteile der agilen Entwicklung in DevOps
15.2.1
Schnellere und häufigere Releases
15.2.2
Bessere Zusammenarbeit und Kommunikation
15.2.3
Höhere Flexibilität und Anpassungsfähigkeit
15.2.4
Verbesserte Qualität und Kundenzufriedenheit
15.2.5
Kontinuierliche Verbesserung
15.2.6
Integrierte DevOps-Praktiken
16
Versionskontrolle
16.1
Bedeutung der Versionskontrolle für die Zusammenarbeit
16.1.1
Nachverfolgbarkeit von Änderungen
16.1.2
Verbesserung der Zusammenarbeit
16.1.3
Erleichterung des Code-Reviews
16.1.4
Unterstützung von Continuous Integration und Continuous Delivery
16.1.5
Konfliktmanagement
16.2
Source of Truth
16.2.1
Bedeutung der Source of Truth
16.2.2
Branch-basierte Strategien
16.2.3
Tag-basierte Strategien
16.2.4
Integration von CI/CD-Systemen
16.3
Tools zur Versionskontrolle (z.B. Git)
16.3.1
Subversion (SVN)
16.3.2
Mercurial
16.3.3
Perforce
17
Issue-Tracking
17.1
Bedeutung des Issue-Trackings für die Zusammenarbeit
17.1.1
Effiziente Aufgabenverteilung
17.1.2
Transparenz und Nachverfolgbarkeit
17.1.3
Klare Trennung von Fachlichkeit und Aufgaben
17.1.4
Fokussierte und gut geschnittene Issues
17.2
Tools für das Issue-Tracking (z.B. Jira)
17.2.1
Jira
17.2.2
Trello
17.2.3
GitHub Issues
17.2.4
GitLab Issues
17.2.5
Asana
17.2.6
Redmine
18
Konfigurationsmanagement
18.1
Definition und Bedeutung des Konfigurationsmanagements im DevOps-Prozess
18.1.1
Definition des Konfigurationsmanagements
18.1.2
Bedeutung des Konfigurationsmanagements im DevOps-Prozess
18.2
Tools für das Konfigurationsmanagement (z.B. Ansible, Puppet, Chef)
18.2.1
Ansible
18.2.2
Puppet
18.2.3
Chef
19
Containerisierung
19.1
Definition und Bedeutung der Containerisierung im DevOps-Kontext
19.1.1
Definition der Containerisierung
19.1.2
Bedeutung der Containerisierung im DevOps-Kontext
19.2
Tools für die Containerisierung (z.B. Docker)
19.2.1
Docker
19.2.2
Podman
19.2.3
Kubernetes
19.2.4
OpenShift
20
Orchestrierung
20.1
Definition und Bedeutung der Orchestrierung im DevOps-Prozess
20.1.1
Definition der Orchestrierung
20.1.2
Bedeutung der Orchestrierung im DevOps-Prozess
20.2
Tools für die Orchestrierung
20.2.1
Kubernetes
20.2.2
Docker Swarm
20.2.3
OpenShift
20.2.4
Apache Mesos
21
Monitoring und Logging
21.1
Bedeutung von Monitoring und Logging
21.1.1
Monitoring
21.1.2
Logging
21.2
Tools für Monitoring und Logging
21.2.1
Monitoring-Tools
21.2.2
Logging-Tools
21.3
Best Practices für Monitoring und Logging
22
Security in DevOps
22.1
Bedeutung der Sicherheit in DevOps
22.2
Prinzipien von DevSecOps
22.3
Tools für die Sicherheit in DevOps
22.4
Best Practices für Sicherheit in DevOps