Die Weiterbildung vermittelt Ansätze zur Automatisierung und Optimierung des Softwareentwicklungszyklus.
Weiterbildungsinhalte:
Grundlagen von DevOps
- Einführung in die DevOps-Philosophie: Zusammenarbeit von Entwicklung und Betrieb
- Ziele und Vorteile von DevOps in der modernen Softwareentwicklung
- Verkürzung der Entwicklungszyklen und schnelle Bereitstellung von Software
- DevOps-Kultur: Kommunikation, Zusammenarbeit und Feedback-Schleifen
Continuous Integration (CI)
- Grundlagen der Continuous Integration: Konzepte und Ziele
- Automatisierte Code-Integration in ein zentrales Repository
- Einrichtung und Verwendung von CI-Servern (z.B. Jenkins, GitLab CI, CircleCI)
- Automatisierte Tests und Build-Prozesse zur Sicherstellung der Code-Qualität
- Verwaltung von Versionen und Branching-Strategien mit Git
Continuous Deployment (CD)
- Unterschiede zwischen Continuous Delivery und Continuous Deployment
- Automatisierte Bereitstellung von Anwendungen auf verschiedenen Plattformen
- Tools und Pipelines für CD-Prozesse: Docker, Kubernetes, Ansible
- Erstellen von CD-Pipelines zur automatisierten Bereitstellung auf Entwicklungs-, Test- und Produktionssystemen
- Rollback-Strategien und Sicherheit in CD-Prozessen
Infrastruktur als Code (IaC)
- Einführung in Infrastruktur als Code (IaC) und Automatisierung von Infrastruktur
- Verwendung von Tools wie Terraform und Ansible zur Verwaltung von Cloud-Infrastrukturen
- Erstellung und Verwaltung von wiederholbaren und skalierbaren Umgebungen
- Best Practices für Versionierung und Verwaltung von Infrastruktur-Assets
Containerisierung und Orchestrierung
- Einführung in Container-Technologien: Docker-Container und Images
- Erstellung und Verwaltung von Containern zur Isolation von Anwendungen
- Container-Orchestrierung mit Kubernetes: Skalierung und Verwaltung von Containern
- Automatisierte Bereitstellung und Verwaltung von Container-Clustern in Produktionsumgebungen
CI/CD-Pipelines in der Praxis
- Erstellung einer vollständigen CI/CD-Pipeline: Von Code-Commit bis zur Bereitstellung
- Integration von Testautomatisierung, Build-Tools und Deployment-Schritten
- Überwachung von CI/CD-Prozessen und Fehlerbehebung bei Ausfällen
- Verwendung von Tools wie Jenkins, GitLab, Docker und Kubernetes zur Implementierung von End-to-End-Pipelines
Testautomatisierung und Qualitätssicherung
- Erstellung von Unit-Tests, Integrationstests und End-to-End-Tests zur Qualitätssicherung
- Automatisierte Tests in CI/CD-Pipelines zur Sicherstellung der Stabilität
- Verwendung von Testtools wie Selenium, JUnit, PyTest zur Testautomatisierung
- Best Practices für Testgetriebene Entwicklung (TDD) und verhaltensgetriebene Entwicklung (BDD)
Überwachung und Logging in DevOps-Umgebungen
- Einführung in Monitoring-Tools: Prometheus, Grafana, ELK-Stack (Elasticsearch, Logstash, Kibana)
- Überwachung der Anwendungsperformance und Systemressourcen in Echtzeit
- Automatisierte Alarmierung und Reaktionsmaßnahmen bei Systemausfällen
- Verwendung von Logging-Systemen zur Analyse von Anwendungs- und Infrastruktur-Logs
Sicherheitsaspekte in DevOps
- Einführung in DevSecOps: Integration von Sicherheit in CI/CD-Pipelines
- Verwendung von Tools zur automatisierten Sicherheitsüberprüfung (z.B. SonarQube, OWASP ZAP)
- Verwaltung von Zugriffskontrollen und Berechtigungen in automatisierten Umgebungen
- Sicherstellung der Sicherheit bei der Bereitstellung und im laufenden Betrieb
Projektarbeit und praktische Anwendungen
- Entwicklung einer kompletten CI/CD-Pipeline als Praxisprojekt
- Integration von Code-Tests, Containern und Deployment in einer durchgängigen Automatisierungslösung
- Automatisierte Bereitstellung einer Anwendung in einer Cloud-Umgebung (AWS, Azure, GCP)
- Dokumentation und Präsentation der entwickelten Lösung
Voraussetzungen
- Erfahrungen in der Softwareentwicklung oder Systemadministration
- abgeschlossene Berufsausbildung, ein Studium oder eine Anpassungsqualifizierung im IT-Bereich; alternativ auch ein bestandener Eignungstest
- Deutschkenntnisse auf dem Niveau B1