DevOps-Lernpfad
Vom Einstieg zu einem praktischen Portfolio mit Linux, Git, Docker, CI/CD, Cloud, Terraform, Ansible, Kubernetes, Monitoring und Security.
Inhaltsverzeichnis
- 0. Zielbild
- 1. Grundlagen: Linux, Netzwerk, Git
- 2. Scripting & Programmierbasis
- 3. Container mit Docker
- 4. CI/CD mit GitHub Actions
- 5. Cloud-Grundlagen
- 6. Infrastructure as Code & Konfigurationsmanagement
- 7. Kubernetes
- 8. Observability
- 9. Security, Reliability & Betrieb
- 10. Portfolio-Projekte
- 11. 12-Wochen-Plan
- 12. Abschluss-Checkliste
- 13. Quellen & Weiterlernen
0. Zielbild
Am Ende kannst du eine kleine Web-App versionieren, testen, containerisieren, per CI/CD ausliefern, in Kubernetes betreiben, per Terraform Infrastruktur beschreiben und mit Monitoring absichern.
Developer Laptop → Git Repository → CI/CD Pipeline → Container Registry → Kubernetes → Monitoring
1. Grundlagen: Linux, Netzwerk, Git
Baue ein solides Fundament, bevor du Tools stapelst.
Lernziele
- Linux-Dateisystem, Prozesse, Rechte, Services und Logs verstehen.
- IP, DNS, HTTP, TLS, Ports, Firewall und Load Balancer erklären.
- Git sicher nutzen: Branches, Pull Requests, Tags und Merge-Konflikte.
Praxis
- Installiere WSL2, eine VM oder eine Cloud-VM.
- Erstelle ein GitHub-Repository
devops-lab. - Schreibe ein Diagnose-Skript für CPU, RAM, Disk und offene Ports.
- Simuliere Fehler und dokumentiere die Lösung.
2. Scripting & Programmierbasis
Automatisiere wiederholbare Aufgaben verbindlich mit Bash. Python oder PowerShell dienen als optionale zweite Sprache für strukturierte Werkzeuge.
Lernziele
- Bash sicher und idempotent für Automatisierung nutzen.
- Optional Python oder PowerShell für kleine CLI-Tools einsetzen.
- JSON, YAML, Umgebungsvariablen und Exit Codes sicher verwenden.
Praxis
- Schreibe
healthcheck.sh, das eine URL prüft und bei Fehlern Exit Code1liefert. - Optional: Validiere eine JSON-Konfiguration mit Python oder PowerShell.
- Erstelle ein
Makefilemittest,lint,buildundrun.
3. Container mit Docker
Verpacke Anwendungen reproduzierbar und verstehe Images, Container, Volumes und Netzwerke.
Praxis
- Baue eine kleine Web-App, bevorzugt mit Java/Spring Boot; alternativ mit Node.js, Python oder Go.
- Schreibe ein sauberes
Dockerfile. - Erstelle
compose.yamlmit App und Datenbank. - Füge Healthchecks hinzu.
app/
src/
tests/
Dockerfile
compose.yaml
.dockerignore
4. CI/CD mit GitHub Actions
Automatisiere Build, Tests, Security Checks und Deployment.
Praxis
- Erstelle
.github/workflows/ci.yml. - Pipeline: Checkout, Lint, Test, Docker Build.
- Setze minimale
permissionsund pinne externe Actions im echten Repository auf vollständige Commit-SHAs. - Nutze Secrets für Registry-Zugangsdaten.
- Füge einen manuellen Deployment-Trigger hinzu.
name: CI
on:
pull_request:
push:
branches: [main]
permissions:
contents: read
jobs:
test-and-build:
runs-on: ubuntu-latest
steps:
# Platzhalter durch einen geprüften vollständigen Commit-SHA ersetzen.
- uses: actions/checkout@<FULL_COMMIT_SHA>
- name: Run tests
run: make test
- name: Build image
run: docker build -t devops-lab:${{ github.sha }} .
5. Cloud-Grundlagen
Verstehe IAM, Netzwerk, Compute, Storage, Datenbanken und Kostenkontrolle in einer Cloud.
Praxis
- Lege ein Cloud-Konto oder eine lokale Alternative an.
- Erstelle ein Budget oder einen Cost Alert.
- Starte eine kleine VM oder nutze ein kostenloses Kubernetes-Lab.
- Dokumentiere den Netzwerkfluss: Client → DNS → Load Balancer → App → DB.
6. Infrastructure as Code & Konfigurationsmanagement
Beschreibe Infrastruktur mit Terraform und verwalte Server-Konfigurationen mit Ansible.
Praxis
- Erstelle
main.tf,variables.tf,outputs.tf. - Nutze
terraform fmt,validate,plan,apply,destroy. - Schreibe ein kleines Ansible-Playbook.
- Dokumentiere, wo Terraform endet und Ansible beginnt.
infra/
terraform/
main.tf
variables.tf
outputs.tf
ansible/
inventory.ini
playbook.yml
7. Kubernetes
Betreibe containerisierte Workloads mit Deployments, Services, Gateway API beziehungsweise bestehendem Ingress, ConfigMaps, Secrets und Helm.
Praxis
- Starte einen lokalen Cluster mit kind, minikube oder Docker Desktop.
- Erstelle Deployment und Service.
- Veröffentliche den Dienst mit Gateway und HTTPRoute oder dokumentiere bewusst einen vorhandenen Ingress-Pfad.
- Füge ConfigMap und Secret hinzu.
- Nutze Readiness- und Liveness-Probes.
- Optional: Paketierung mit Helm.
k8s/
namespace.yml
deployment.yml
service.yml
gateway.yml
httproute.yml
ingress-legacy.yml
configmap.yml
secret.example.yml
8. Observability
Mache Systeme beobachtbar mit Metriken, Logs, Dashboards und Alerts.
Praxis
- Baue einen
/metrics-Endpunkt ein oder nutze einen Exporter. - Starte Prometheus lokal oder im Cluster.
- Erstelle ein Dashboard für Request Rate, Error Rate, Latency und CPU/Memory.
- Definiere einen Alert für hohe Fehlerrate oder Nichterreichbarkeit.
9. Security, Reliability & Betrieb
Baue Sicherheit und Betriebsfähigkeit in den gesamten Pfad ein.
Praxis
- Füge Dependency-Scanning oder Image-Scanning in CI ein.
- Ersetze hartcodierte Secrets durch Secret Management.
- Schreibe ein Runbook: „App ist nicht erreichbar“.
- Teste Rollback eines Deployments.
- Setze Ressourcenlimits in Kubernetes.
10. Portfolio-Projekte
A. Containerisierte Web-App
App + Datenbank, Tests, Dockerfile, Compose und README.
B. CI/CD Pipeline
Lint, Tests, Docker Build, Security Scan und versionierte Releases.
C. Kubernetes Deployment
Deployment, Service, Gateway/HTTPRoute oder begründeter Ingress, Probes, Limits und Rollback.
D. IaC + Monitoring
Terraform, Prometheus/Grafana, Alert-Regel und Runbook.
11. 12-Wochen-Plan
| Woche | Fokus | Ergebnis |
|---|---|---|
| 1 | Linux, Shell, Netzwerk | Diagnose-Skript + HTTP/DNS/Ports-Notizen |
| 2 | Git, GitHub, PR-Workflow | Repository mit Branching-Modell |
| 3 | Bash, Makefile; Python/PowerShell optional | Automatisierte lokale Tasks |
| 4 | Docker-Grundlagen | App als Docker Image |
| 5 | Docker Compose | App + Datenbank lokal lauffähig |
| 6 | CI mit GitHub Actions | Tests und Build laufen automatisch |
| 7 | CD + Security | Image Build, Scan, Versionierung |
| 8 | Cloud-Grundlagen | Architektur skizziert, Kostenlimit gesetzt |
| 9 | Terraform | Infrastruktur deklarativ beschrieben |
| 10 | Ansible + Betrieb | Konfiguration automatisiert |
| 11 | Kubernetes | App läuft im Cluster |
| 12 | Observability + Abschluss | Dashboard, Alert, Runbook, Portfolio-README |
12. Abschluss-Checkliste
Technisch
- ☐ App von Code bis Runtime erklären
- ☐ Docker Images bauen, debuggen und optimieren
- ☐ CI/CD Pipeline erstellen und analysieren
- ☐ Terraform planen und anwenden
- ☐ Kubernetes Deployments debuggen
- ☐ Monitoring und Alerts aufsetzen
Portfolio
- ☐ Klare README
- ☐ Architektur beschrieben
- ☐ Entscheidungen begründet
- ☐ Screenshots oder Logs erfolgreicher Deployments
- ☐ Runbook und Fehleranalyse
13. Quellen & Weiterlernen
- Docker Docs – Get started
- Docker Compose – Application model
- Kubernetes Basics
- Kubernetes Ingress und Gateway-Einordnung
- Terraform Docs
- Terraform Tutorials
- GitHub Actions Docs
- GitHub Actions – Continuous Integration
- GitHub Actions – Secure use
- Ansible Getting Started
- Prometheus Overview
- AWS DevOps
Empfohlenes Repository-Verzeichnis
devops-lab/
README.md
docs/
architecture.md
runbook.md
incident-template.md
app/
src/
tests/
Dockerfile
compose.yaml
Makefile
.github/workflows/
ci.yml
deploy.yml
infra/
terraform/
ansible/
k8s/
monitoring/
14. Abschlussnachweis
Der Lernpfad gilt nicht durch Lesen als abgeschlossen, sondern durch einen nachvollziehbaren technischen Nachweis.
Build und Lieferung
Repository mit reproduzierbarem Build, automatisierten Tests, versioniertem Container-Image und dokumentierter CI/CD-Ausführung.
Plattform
Deployment mit Probes, Ressourcenlimits, Konfiguration, Secret-Behandlung und einem nachgewiesenen Rollback.
Betrieb
Dashboard, Alert, Runbook und eine dokumentierte Störung mit Hypothese, Evidenz, Maßnahme und Ergebnis.
Abnahmefragen
- Kann eine zweite Person das System ohne mündliche Hilfe bauen und starten?
- Ist jedes Deployment einem Commit und einem unveränderlichen Artefakt zugeordnet?
- Sind Fehler über Logs, Metriken und Traces eingrenzbar?
- Sind Wiederherstellung, Rollback und Eskalation praktisch getestet?