Vorstellungsgespräch Junior DevOps Engineer: Der komplette Leitfaden

Milad Bonakdar
Autor
Meistern Sie die wichtigsten DevOps-Grundlagen mit umfassenden Fragen für Vorstellungsgespräche, die Linux, Git, CI/CD, Docker, Cloud-Grundlagen und Infrastructure as Code für Junior DevOps Engineers abdecken.
Einführung
DevOps Engineering schlägt eine Brücke zwischen Entwicklung und Betrieb und konzentriert sich auf Automatisierung, Zusammenarbeit und kontinuierliche Verbesserung. Als Junior DevOps Engineer benötigst du grundlegende Kenntnisse in Linux, Versionskontrolle, CI/CD-Pipelines, Containerisierung und Cloud-Plattformen.
Dieser Leitfaden behandelt wichtige Interviewfragen für Junior DevOps Engineers, die nach Themen geordnet sind, um dir bei der effektiven Vorbereitung zu helfen. Jede Frage enthält detaillierte Antworten, praktische Beispiele und praktische Code-Snippets.
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.yml für eine Webanwendung mit einer 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 aus (Docker, containerd)
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



