Junior DevOps Engineer: Fragen und Antworten fürs Vorstellungsgespräch

Milad Bonakdar
Autor
Bereite dich mit praxisnahen Fragen zu Linux-Troubleshooting, Git, CI/CD, Docker, Cloud-Grundlagen, Terraform, Monitoring, Kubernetes und Bash vor.
Kurzfazit
In Interviews für Junior DevOps Engineers wird meist geprüft, ob du ruhig troubleshootest, den Software-Delivery-Prozess erklären kannst und mit produktionsnahen Werkzeugen vorsichtig arbeitest. Rechne mit Fragen zu Linux-Services und Logs, Git, CI/CD, Docker, Cloud-Grundlagen, Terraform, Monitoring, Kubernetes, Konfigurationsmanagement und Bash.
Nutze diesen Leitfaden, um Antworten und Vorgehen zu üben: Was prüfst du zuerst, welche Logs liest du, wann würdest du zurückrollen und wann brauchst du mehr Kontext?
Linux Grundlagen
1. Erläutere gängige Linux-Befehle, die du täglich als DevOps Engineer verwendest.
Antwort: Wesentliche Linux-Befehle für die DevOps-Arbeit:
Seltenheit: Sehr häufig
Schwierigkeit: Leicht
2. Wie behebst du das Problem, wenn ein Dienst unter Linux nicht startet?
Antwort: Systematischer Ansatz zur Fehlerbehebung:
Häufige Probleme:
- Syntaxfehler in der Konfiguration
- Port bereits in Verwendung
- Berechtigung verweigert
- Fehlende Abhängigkeiten
- Unzureichender Festplattenspeicher
Seltenheit: Sehr häufig
Schwierigkeit: Mittel
Versionskontrolle mit Git
3. Erkläre den grundlegenden Git-Workflow und gängige Befehle.
Antwort: Git-Workflow für tägliche DevOps-Aufgaben:
Bewährte Methoden:
- Klare Commit-Nachrichten schreiben
- Häufig committen, regelmäßig pushen
- Feature-Branches verwenden
- Vor dem Pushen pullen
- Änderungen vor dem Committen überprüfen
Seltenheit: Sehr häufig
Schwierigkeit: Leicht
4. Wie löst man einen Merge-Konflikt in Git?
Antwort: Schritt-für-Schritt-Konfliktlösung:
Konfliktmarkierungen:
<<<<<<< HEAD- Dein aktueller Branch=======- Trennzeichen>>>>>>> branch-name- Eingehende Änderungen
Seltenheit: Häufig
Schwierigkeit: Leicht-Mittel
CI/CD Grundlagen
5. Was ist CI/CD und warum ist es wichtig?
Antwort: CI/CD steht für Continuous Integration und Continuous Deployment/Delivery.
Continuous Integration (CI):
- Automatisches Erstellen und Testen von Code bei jedem Commit
- Bugs frühzeitig erkennen
- Sicherstellen, dass Code ordnungsgemäß integriert wird
Continuous Deployment (CD):
- Automatisches Deployment in die Produktion, nachdem die Tests bestanden wurden
- Schnellere Release-Zyklen
- Reduzierte manuelle Fehler
Vorteile:
- Schnellere Feedbackschleifen
- Reduzierte Integrationsprobleme
- Automatisierte Tests
- Konsistente Deployments
- Schnellere Markteinführungszeit
Seltenheit: Sehr häufig
Schwierigkeit: Leicht
6. Erläutere eine grundlegende CI/CD-Pipeline mit GitHub Actions.
Antwort: Beispiel für einen GitHub Actions-Workflow:
Wichtige Konzepte:
- Trigger: Wann die Pipeline ausgeführt wird (Push, PR, Zeitplan)
- Jobs: Unabhängige Aufgaben, die parallel ausgeführt werden können
- Steps: Einzelne Befehle innerhalb eines Jobs
- Artifacts: Dateien, die zwischen Jobs ausgetauscht werden
Seltenheit: Sehr häufig
Schwierigkeit: Mittel
Docker & Containerisierung
7. Was ist Docker und warum verwenden wir Container?
Antwort: Docker ist eine Plattform zum Entwickeln, Ausliefern und Ausführen von Anwendungen in Containern.
Container vs. VMs:
- Container teilen sich den Kernel des Host-Betriebssystems (leichtgewichtig)
- VMs enthalten ein vollständiges Betriebssystem (schwer)
- Container starten in Sekunden
- Bessere Ressourcenauslastung
Vorteile:
- Konsistenz: Überall die gleiche Umgebung
- Isolation: Apps beeinträchtigen sich nicht gegenseitig
- Portabilität: Überall ausführbar
- Effizienz: Leichtgewichtig und schnell
Seltenheit: Sehr häufig
Schwierigkeit: Leicht
8. Erläutere gängige Docker-Befehle.
Antwort: Wesentliche Docker-Befehle:
Seltenheit: Sehr häufig
Schwierigkeit: Leicht
9. Schreibe eine Docker-Compose-Datei für eine Webanwendung mit Datenbank.
Antwort: Beispiel für eine Multi-Container-Anwendung:
Wichtige Konzepte:
- services: Container definieren
- depends_on: Dienstabhängigkeiten
- volumes: Persistente Datenspeicherung
- environment: Umgebungsvariablen
- ports: Port-Mapping
- restart: Neustartrichtlinie
Seltenheit: Häufig
Schwierigkeit: Mittel
Cloud Grundlagen
10. Erkläre den Unterschied zwischen IaaS, PaaS und SaaS.
Antwort: Cloud-Servicemodelle:
IaaS (Infrastructure as a Service):
- Bietet: Virtuelle Maschinen, Speicher, Netzwerke
- Du verwaltest: Betriebssystem, Laufzeitumgebung, Anwendungen
- Beispiele: AWS EC2, Azure VMs, Google Compute Engine
- Anwendungsfall: Volle Kontrolle über die Infrastruktur
PaaS (Platform as a Service):
- Bietet: Laufzeitumgebung, Datenbanken, Middleware
- Du verwaltest: Anwendungen und Daten
- Beispiele: AWS Elastic Beanstalk, Heroku, Google App Engine
- Anwendungsfall: Konzentration auf Code, nicht auf Infrastruktur
SaaS (Software as a Service):
- Bietet: Vollständige Anwendungen
- Du verwaltest: Benutzerdaten und Einstellungen
- Beispiele: Gmail, Salesforce, Office 365
- Anwendungsfall: Sofort einsatzbereite Anwendungen
Seltenheit: Häufig
Schwierigkeit: Leicht
11. Welche grundlegenden AWS-Dienste sollte ein DevOps Engineer kennen?
Antwort: Wesentliche AWS-Dienste:
Compute:
- EC2: Virtuelle Server
- Lambda: Serverlose Funktionen
- ECS/EKS: Container-Orchestrierung
Storage:
- S3: Objektspeicher
- EBS: Blockspeicher für EC2
- EFS: Gemeinsamer Dateispeicher
Networking:
- VPC: Virtual Private Cloud
- Route 53: DNS-Dienst
- CloudFront: CDN
- ELB: Load Balancing
Database:
- RDS: Verwaltete relationale Datenbanken
- DynamoDB: NoSQL-Datenbank
DevOps Tools:
- CodePipeline: CI/CD-Dienst
- CodeBuild: Build-Dienst
- CloudWatch: Überwachung und Protokollierung
- IAM: Zugriffsverwaltung
Beispiel: EC2-Instanz mit AWS CLI starten:
Seltenheit: Sehr häufig
Schwierigkeit: Mittel
Infrastructure as Code
12. Was ist Infrastructure as Code (IaC) und warum ist es wichtig?
Antwort: IaC ist die Verwaltung der Infrastruktur durch Code anstelle manueller Prozesse.
Vorteile:
- Versionskontrolle: Änderungen an der Infrastruktur verfolgen
- Reproduzierbarkeit: Identische Umgebungen erstellen
- Automatisierung: Manuelle Fehler reduzieren
- Dokumentation: Code dient als Dokumentation
- Konsistenz: Überall die gleiche Konfiguration
Beliebte IaC-Tools:
- Terraform: Multi-Cloud-Provisionierung
- Ansible: Konfigurationsmanagement
- CloudFormation: AWS-spezifisch
- Pulumi: Codebasiertes IaC
Beispiel Terraform:
Seltenheit: Sehr häufig
Schwierigkeit: Mittel
13. Erläutere den grundlegenden Terraform-Workflow.
Antwort: Terraform-Workflow-Schritte:
Terraform-Dateistruktur:
Beispielvariablen:
Seltenheit: Häufig
Schwierigkeit: Mittel
Überwachung & Protokollierung
14. Welche Metriken würdest du für eine Webanwendung überwachen?
Antwort: Wichtige Überwachungsmetriken:
Anwendungsmetriken:
- Antwortzeit / Latenz
- Anfragerate (Anfragen pro Sekunde)
- Fehlerrate (4xx, 5xx Fehler)
- Durchsatz
Systemmetriken:
- CPU-Auslastung
- Speichernutzung
- Festplatten-I/O
- Netzwerk-I/O
Infrastrukturmetriken:
- Container-/Pod-Status
- Dienstverfügbarkeit
- Load-Balancer-Integrität
Beispiel Prometheus-Abfrage:
Alarmierungsschwellenwerte:
- Antwortzeit > 500 ms
- Fehlerrate > 1%
- CPU-Auslastung > 80%
- Speichernutzung > 85%
- Festplattennutzung > 90%
Seltenheit: Häufig
Schwierigkeit: Mittel
15. Wie zentralisiert man Logs von mehreren Servern?
Antwort: Zentralisierte Protokollierungsarchitektur:
Gängiger Stack (ELK):
- Elasticsearch: Logs speichern und indizieren
- Logstash/Fluentd: Logs sammeln und verarbeiten
- Kibana: Logs visualisieren und durchsuchen
Beispiel Filebeat-Konfiguration:
Bewährte Methoden:
- Strukturierte Protokollierung verwenden (JSON)
- Korrelations-IDs einbeziehen
- Aufbewahrungsrichtlinien festlegen
- Strategisch indizieren
- Log-Volumen überwachen
Seltenheit: Häufig
Schwierigkeit: Mittel
Kubernetes Grundlagen
16. Was ist Kubernetes und was sind seine grundlegenden Komponenten?
Antwort: Kubernetes ist eine Container-Orchestrierungsplattform, die die Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen automatisiert.
Grundlegende Komponenten:
Control Plane:
- API Server: Einstiegspunkt für alle Befehle
- etcd: Key-Value-Store für Clusterdaten
- Scheduler: Weist Pods Knoten zu
- Controller Manager: Verwaltet den gewünschten Zustand
Worker Nodes:
- kubelet: Verwaltet Pods auf dem Knoten
- kube-proxy: Netzwerk-Routing
- Container Runtime: Führt Container über eine CRI-Runtime wie containerd oder CRI-O aus
Grundlegende Kubernetes-Objekte:
1. Pod:
2. Deployment:
3. Service:
Gängige kubectl-Befehle:
Seltenheit: Sehr häufig
Schwierigkeit: Leicht
Konfigurationsmanagement
17. Erläutere die Grundlagen von Ansible und schreibe ein einfaches Playbook.
Antwort: Ansible ist ein agentenloses Konfigurationsmanagement-Tool, das SSH verwendet, um Server zu konfigurieren.
Wichtige Konzepte:
- Inventory: Liste der zu verwaltenden Server
- Playbook: YAML-Datei, die Aufgaben definiert
- Modules: Wiederverwendbare Arbeitseinheiten
- Roles: Organisierte Sammlung von Aufgaben
Inventory-Datei:
Einfaches Playbook:
Beispielvorlage:
Playbooks ausführen:
Ansible-Rollenstruktur:
Rollen verwenden:
Ad-hoc-Befehle:
Seltenheit: Häufig
Schwierigkeit: Mittel
Skripting & Automatisierung
18. Schreibe ein Bash-Skript, um eine gängige DevOps-Aufgabe zu automatisieren.
Antwort: Bash-Skripting ist für die Automatisierung in DevOps unerlässlich.
Beispiel 1: Backup-Skript
Beispiel 2: Health-Check-Skript
Für ein echtes Interview reicht ein gekürztes Skript oft aus. Erkläre zusätzlich, wie du Fehler behandelst, Exit-Codes nutzt, Logs schreibst und das Skript gefahrlos testest.
Seltenheit: Sehr häufig
Schwierigkeit: Mittel
Fazit
Bereite dich auf ein Junior-DevOps-Interview mit einem kleinen End-to-End-Projekt vor: Git-Repository, Tests, CI-Workflow, Dockerfile, einfache Cloud- oder lokale Deployment-Umgebung und ein paar Logs oder Metriken. Entscheidend ist nicht, jedes Tool perfekt zu kennen, sondern ein klares, vorsichtiges Vorgehen erklären zu können.


