Automatisierung von Software mit Schwerpunkt auf Releases 1. Einführung in die Automatisierung von Software-Releases: Definition und Bedeutung der Software-Automatisierung, Überblick über den Release-Prozess, Vorteile der Automatisierung für die Softwareentwicklung 2. Continuous Integration und Continuous Deployment (CI/CD): Grundlagen von CI/CD und deren Bedeutung, Tools für die Implementierung von CI/CD (z.B. Jenkins, GitLab CI), Best Practices zur Einrichtung einer CI/CD-Pipeline 3. Testautomatisierung im Release-Prozess: Arten von Tests in CI/CD: Unit Tests, Integration Tests, End-to-End Tests, Tools zur Testautomatisierung (z.B. Selenium, JUnit), Strategien zur effektiven Testabdeckung 4. Containerisierung und Virtualisierung für Releases: Einführung in Container-Technologien (z.B. Docker, Kubernetes), Vorteile der Containerisierung für Software-Releases, Best Practices zur Verwaltung von Containern 5. Monitoring und Logging in automatisierten Releases: Wichtigkeit von Monitoring und Logging im Release-Prozess, Tools für das Monitoring (z.B. Prometheus, Grafana), Best Practices zur Fehlererkennung und -behebung 6. Rollback-Strategien und Notfallmanagement: Strategien für effektives Rollback bei fehlerhaften Releases, Notfallpläne und -prozesse im Release-Management, Fallstudien zu erfolgreichen Rollbacks 7. Sicherheitsaspekte der Automatisierung: Sicherheitsanforderungen in automatisierten Releases, Integration von Sicherheitsprüfungen in CI/CD-Pipelines, Best Practices zur Sicherheit in der Automatisierung 8. Praktische Übungen zur Release-Automatisierung: Erstellung und Durchführung einer CI/CD-Pipeline, Automatisierung von Tests und Deployments in Gruppen, Präsentation und Feedback zu den Projekten