46 Häufig gestellte Fragen und Antworten zu DevOps-Interviews [2023]

Inhaltsverzeichnis

Möchten Sie erfahren, welche Fragen in einem bevorstehenden Vorstellungsgespräch zum Thema DevOps relevant sind? Nutzen Sie unseren Leitfaden, um bestens vorbereitet zu sein.

Obwohl der Begriff DevOps erst zwischen 2007 und 2008 geprägt wurde, hat er sich zu einem der gefragtesten Berufsfelder im Bereich Softwareentwicklung entwickelt. DevOps stellt einen kulturellen Wandel dar, der alle Phasen der Entwicklung und des Betriebs beeinflusst.

Die Teams für Entwicklung und Betrieb kooperieren von der Planung und Erstellung bis hin zur Überwachung und Iteration. Im Folgenden finden Sie die häufigsten Fragen, mit denen Sie bei der Bewerbung als DevOps-Ingenieur konfrontiert werden könnten.

Was versteht man unter DevOps?

DevOps ist eine Zusammensetzung aus den Begriffen „Development“ und „Operations“. Diese Praxis in der Softwareentwicklung führt die Entwicklungs- und Betriebsteams zusammen, um alle Projektphasen zu automatisieren. Im Zentrum eines DevOps-Teams stehen Ressourcenmanagement, Kommunikation und Teamwork.

Welche Phasen beinhaltet die DevOps-Methodik?

  • Kontinuierliche Entwicklung: Diese Phase umfasst die Planung und das Schreiben des Codes.
  • Kontinuierliche Integration: In dieser Phase integriert das Entwicklungsteam verschiedene Komponenten und stellt sicher, dass der Code fehlerfrei bleibt.
  • Kontinuierliches Testen: Hierbei handelt es sich um eine im Voraus geplante und automatisierte Testphase.
  • Kontinuierliche Bereitstellung: Diese Phase gewährleistet eine problemlose Entwicklung, die die Gesamtleistung der Anwendung nicht negativ beeinflusst.
  • Kontinuierliche Überwachung: In dieser Phase wird die Gesamteffizienz der Anwendung überwacht.
  • Kontinuierliches Feedback: Hierbei werden Probleme und die Leistung der Anwendung, wie sie von den Endbenutzern gemeldet werden, analysiert.
  • Kontinuierlicher Betrieb: Er ermöglicht Entwicklern, verbesserte Versionen des Produkts zu erstellen und Probleme schnell zu erkennen.

Welche Vorteile bietet DevOps?

  • Schnellere und effizientere Produktlieferung
  • Verbesserte Skalierbarkeit
  • Rasche Problemlösung
  • Optimierte Ressourcennutzung

Nennen Sie einige DevOps-KPIs

  • Häufigkeit der Bereitstellung
  • Änderungsvolumen
  • Bereitstellungsdauer
  • Fehlerquote bei der Bereitstellung
  • Zeit bis zur Fehlererkennung
  • Fehlerrate

Was ist der Unterschied zwischen DevOps und Agile?

DevOps ist ein Ansatz, der die Zusammenarbeit zwischen allen Teammitgliedern fördert, die an der Entwicklung und Wartung von Software beteiligt sind.

Agile ist eine Entwicklungsmethodik, die darauf abzielt, die Produktivität der Teams zu steigern und Releases basierend auf sich ändernden Anforderungen zu ermöglichen.

Welche Rolle spielt AWS bei DevOps?

AWS stellt eine Vielzahl flexibler Dienste bereit, die Unternehmen dabei unterstützen, Anwendungen zuverlässig und zügig zu entwickeln. Die AWS-Services vereinfachen die Codebereitstellung, die Infrastrukturbereitstellung und -vereinfachung, die Automatisierung von Software-Release-Prozessen sowie die Überwachung der Infrastrukturleistung.

Wozu dient SSH?

SSH (Secure Shell) ist ein Protokoll, das eine sichere Verbindung zwischen verschiedenen Computern ermöglicht. SSH dient diversen Zwecken, wie z.B. einer starken Authentifizierung, robuster Verschlüsselung, der Sicherstellung der Verbindungsintegrität, einer stabilen Verbindung und der allgemeinen Sicherheit.

Was ist kontinuierliche Integration?

Kontinuierliche Integration ermöglicht es Softwareentwicklern, ihren Code in einem zentralen Repository zusammenzuführen. Dieser Code wird dann durch automatisierte Builds und Tests geschleust.

Was ist Konfigurationsmanagement?

Es handelt sich um den technischen Prozess, der die Konsistenz der Leistung und der funktionalen sowie physikalischen Eigenschaften eines Systems oder Produkts über dessen gesamten Lebenszyklus sicherstellt und aufrechterhält.

Was versteht man unter kontinuierlichem Testen?

Dies ist eine vorab geplante und automatisierte Testphase für Anwendungen während der Entwicklung.

Was ist Git?

Git ist ein kostenloses Open-Source-Tool für die Quellcodeverwaltung, das sowohl für kleine als auch für umfangreiche Projekte entwickelt wurde.

Nennen Sie einige grundlegende Git-Befehle

git clone <https://name-of-the-repository-link>
git branch <branch-name>
git checkout <name-of-your-branch>
git add <file>
git commit -m "commit message"
git push <remote> <branch-name>
git pull <remote>

Erläutern Sie den Unterschied zwischen Git Merge und Git Rebase

Der Git-Merge-Befehl ermöglicht es Entwicklern, verschiedene Git-Branches zusammenzuführen, wobei die Commit-Historien der jeweiligen Branches erhalten bleiben.

Der Git-Rebase-Befehl erlaubt es Entwicklern, Änderungen von einem Branch in einen anderen zu integrieren, wobei die Historie nach dem Prozess verändert wird.

Erläutern Sie den Unterschied zwischen Git Fetch und Git Pull

Git Fetch weist Git an, die neuesten Metadaten vom Remote-Repository abzurufen bzw. zu prüfen, ohne jedoch Dateien zu übertragen. Es werden lediglich Überprüfungen durchgeführt.

Git Pull prüft und übernimmt Änderungen vom Remote-Repository in das lokale Projekt.

Was ist ein Merge-Konflikt?

Merge-Konflikte treten auf, wenn Sie zwei Branches mit widersprüchlichen Commits zusammenführen möchten. Sie entstehen üblicherweise dann, wenn verschiedene Entwickler dieselbe Codezeile oder Datei ändern.

Was ist Versionskontrolle und welche Arten gibt es?

Versionskontrolle (auch Source Control genannt) ist der Prozess, Änderungen am Softwarecode zu verfolgen und zu verwalten.

Es gibt verschiedene Arten von Versionskontrollen:

  • Zentralisiert: Hierbei existiert eine einzige „zentrale“ Kopie des Quellcodes auf einem Server, und alle Änderungen werden an diese „zentrale“ Kopie übertragen. Subversion (SVN) und Perforce sind Beispiele für zentralisierte Versionskontrollen.
  • Verteilt (DVCS): Es gibt keinen zentralen Server, um alle Dateien des Projekts zu speichern. Git und Mercurial sind Beispiele für DVCS.

Welche Vorteile bietet die Verwendung von Versionskontrolle?

  • Sie unterstützt Entwickler, die Effizienz und Agilität aufrechtzuerhalten
  • Sie bietet eine vollständige Historie jeder Änderung an einem Projekt oder einer Datei
  • Sie verbessert die Nachverfolgbarkeit
  • Sie hilft bei der Verwaltung von Zusammenführungen und Branches
  • Sie ermöglicht die Zusammenarbeit im Team

Was ist Branching?

Branching beschreibt das Erstellen einer separaten/neuen Version des Haupt-Repositorys. Branches erlauben es Ihnen, an verschiedenen Teilen des Projekts zu arbeiten, ohne den Haupt-Branch zu beeinträchtigen.

Was sind Branching-Strategien?

Branching-Strategien sind die Methoden, die Softwareentwicklungsteams beim Schreiben, Zusammenführen und Bereitstellen von Code verwenden. Ein solcher Ansatz stellt sicher, dass Fehler in einer Branch-Phase behoben werden, bevor sie in das Hauptprojekt integriert werden.

Was sind Automatisierungstests und wie automatisiert man Tests in DevOps?

Automatisierungstests sind eine Technik zur automatischen Überprüfung und Validierung von Code. Automatisierungstests werden durchgeführt, um zu überprüfen, ob Qualitätsstandards für Funktionalität (Geschäftslogik), Codestil und Benutzerfreundlichkeit eingehalten werden.

Automatisierungstests werden mithilfe von Tools wie Selenium und Katalon durchgeführt.

Was ist eine Jenkinsfile?

Eine Jenkinsfile ist eine Textdatei, die die Definition einer Jenkins-Pipeline enthält. Die Jenkinsfile wird in das Quellcodeverwaltungs-Repository eingecheckt. Zu ihren Vorteilen gehören die Bereitstellung einer Überwachung der Pipeline, die Ermöglichung von Codeüberprüfung und Iteration in der Pipeline sowie eine Single Source of Truth in der Pipeline.

Erläutern Sie die Architektur in Jenkins

Jenkins verwendet eine Master-Slave-Architektur, was bedeutet, dass viele „Slaves“ für einen „Master“ arbeiten. Jenkins Distributed Build kann somit identische Tests in verschiedenen Umgebungen ausführen, wobei die Ergebnisse gesammelt und auf dem Masterknoten zur Überwachung zusammengeführt werden.

Was sind die wichtigsten Jenkins-Plugins?

  • Blue Ocean Plugin für Jenkins
  • Mailer Plugin für Jenkins
  • Git Plugin für Jenkins
  • Jira Plugin für Jenkins
  • Docker Plugin für Jenkins
  • Maven Integration Plugin für Jenkins
  • Kubernetes Plugin für Jenkins
  • SonarQube Plugin für Jenkins
  • Amazon EC2 Plugin für Jenkins

Was ist Selenium IDE?

Selenium IDE ist ein Tool, das Browserinteraktionen für Testfälle aufzeichnet. Sie können Breakpoints setzen und Variablen prüfen sowie die Ausführung pausieren, wenn Fehler mit der Selenium Integrated Development Environment auftreten.

Was sind die verschiedenen Selenium-Komponenten?

Welche Testarten gibt es bei Selenium?

  • End-to-End-Tests
  • Regressionstests
  • Systemtests
  • Leistungstests
  • Kompatibilitätstests

Welche Ausnahmen gibt es in Selenium?

  • ElementNotSelectableException
  • NoAlertPresentException
  • InvalidSelectorException
  • NoSuchSessionException
  • StaleElementReferenceException
  • NoSuchWindowException
  • NoSuchFrameException
  • NoSuchElementException
  • TimeoutException
  • ElementNotVisibleException

Was bedeuten driver.close() und driver.quit() in WebDriver?

Der Befehl driver.close() schließt das Browserfenster im Fokus. Wenn nur ein Browser geöffnet ist, wird die gesamte Browsersitzung geschlossen.

Der Befehl driver.quit() schließt die gesamte Browsersitzung inklusive aller Browser-Popups, Tabs und Fenster.

Was ist ein Dockerfile?

Ein Dockerfile ist ein Textdokument, das alle Befehle enthält, die ein Benutzer in der Kommandozeile ausführen kann, um ein Image zu erstellen.

Was sind die Unterschiede zwischen Docker-Images und Docker-Containern?

Docker-Images sind schreibgeschützte Vorlagen, die mit Quellcodes, Tools, Bibliotheken, externen Abhängigkeiten und anderen Dateien erstellt werden, die für die erfolgreiche Ausführung jeder Anwendung auf jedem Betriebssystem oder jeder Plattform erforderlich sind.

Ein Docker-Container ist eine Box, die Docker-Image-Vorlagen ausführt.

Erläutern Sie die Architektur von Docker

Docker folgt einer Client-Server-Architektur und besteht aus Docker Client, Docker Host und Docker Registry.

Der Docker-Client verwendet REST-APIs und Befehle, um mit dem Server (Docker-Daemon) zu kommunizieren.

Der Docker-Client nutzt die CLI zur Ausführung der Befehle

docker build
docker pull
docker run
  • Docker Host bietet eine Umgebung für die Ausführung von Anwendungen und umfasst den Docker-Daemon, Speicher, Images, Container und Netzwerke.
  • Docker Registry verwaltet und speichert Docker-Images.

Cloud-Plattformen, die Docker unterstützen

Hier sind einige der Plattformen, die Docker-Hosting unterstützen:

Was ist Nagios?

Nagios ist ein Tool, das die gesamte IT-Infrastruktur überwacht, um sicherzustellen, dass Geschäftsprozesse, Systeme, Dienste und Anwendungen ordnungsgemäß funktionieren.

Wie funktioniert Nagios?

  • Überwachung: IT-Mitarbeiter konfigurieren Nagios, um Netzwerkprotokolle, Systemmetriken, Anwendungen, Netzwerkinfrastruktur, Dienste und Server zu überwachen.
  • Alarmierung: Nagios sendet Warnungen, wenn kritische Komponenten ausfallen. Benachrichtigungen können per SMS, benutzerdefiniertem Code oder E-Mail erfolgen.
  • Reaktion: Das IT-Team bestätigt Warnungen und ergreift Maßnahmen.
  • Berichte: Es werden Berichte generiert, die eine historische Aufzeichnung von Benachrichtigungen, Ausfällen, Reaktionen auf Alarme und Ereignisse zur späteren Auswertung bereitstellen.
  • Wartung: Geplante Ausfallzeiten verhindern, dass Warnungen während der Wartung gesendet werden.

Nennen Sie einige Plugins in Nagios

  • Offizielle Nagios-Plugins: Diese werden vom offiziellen Team entwickelt und gepflegt.
  • Benutzerdefinierte Plugins: Diese werden von Einzelpersonen oder Unternehmen für spezifische Anforderungen geschrieben.
  • Community-Plugins: Sie werden von Mitgliedern der Nagios-Community entwickelt.

Erläutern Sie die Virtualisierung mit Nagios

Nagios bietet die Möglichkeit, verschiedene Metriken auf diversen Virtualisierungsplattformen zu überwachen. Nagios kann auf Virtualisierungsplattformen wie Xen, Amazon EC2, VMware und Microsoft Virtual PC ausgeführt werden.

Wie unterstützt Nagios bei der Überwachung?

Nagios verwendet Agenten wie NRPE, check_mk oder SNMP, um Statistiken auf Ihrem Server zu sammeln und eine Warnung zu senden, wenn die Metriken einen vordefinierten Schwellenwert überschreiten.

Welche Portnummern verwendet Nagios für Überwachungszwecke?

SNMP, Ports 161 und 162.

Was ist ein Nagios Network Analyzer?

Der Nagios Network Analyzer ist eine Software für die Analyse von Sflow-Daten, mit der Benutzer Anomalien, Ausfälle und Sicherheitsbedrohungen proaktiv beheben können, bevor sie den Geschäftsbetrieb stören. Dieses kommerzielle Tool bietet erweiterte Einblicke in den Netzwerkverkehr und die IT-Infrastruktur.

Welche Variablen beeinflussen Vererbung und Rekursion in Nagios?

  • Name: Ein Vorlagen-„Name“, der die Objektvariablen/Eigenschaften erben kann.
  • Use: Hier wird der Objektname der Vorlage angegeben, von der Sie Variablen oder Eigenschaften erben möchten.
  • Register: Gibt an, ob der Name des Vorlagenobjekts bei Nagios „registriert“ werden soll.

Was ist Puppet?

Puppet ist ein Open-Source-Tool für die Verwaltung und Bereitstellung von Softwarekonfigurationen.

Was ist ein Puppet-Manifest?

Ein Puppet-Manifest ist eine Datei, die die Puppet-Konfigurationssprache enthält und beschreibt, wie Ressourcen konfiguriert werden sollen.

Was ist der Puppet-Code?

Puppet-Code ist ein deklarativer Code, das heißt, Sie beschreiben ihn anhand des gewünschten Zustands Ihres Systems und nicht anhand der Schritte, die notwendig sind, um dorthin zu gelangen.

Was ist Chef?

Chef ist ein Konfigurationsmanagement-Tool, das Infrastruktur in Code verwandelt. Das Tool konzentriert sich auf das Schreiben von Code anstelle von manuellen Prozessen.

Wie funktioniert Chef?

Die Arbeit mit Chef beginnt, wenn Systemadministratoren oder Entwickler Aufgaben definieren, die automatisiert werden sollen. Die Cookbooks und Rezepte (kleine Programme, die in einer domänenspezifischen Sprache geschrieben sind) werden dann erfasst und mit verschiedenen Tools wie Test Kitchen, ChefSpec und Foodcritic getestet.

Wenn die Cookbooks und Rezepte wie erwartet funktionieren, werden sie mithilfe von Knife- und Chef-Befehlszeilen-Tools auf dem Chef-Server bereitgestellt. Ein Chef-Bereitstellungsprozess umfasst einen Chef-Server, Workstations und Nodes. Sie können aus über 3000 Cookbook-Vorlagen wählen und diese an Ihre Bedürfnisse anpassen. Chef erledigt dann den Rest der Arbeit.

Zusammenfassung

Laut Glassdoor liegt das durchschnittliche Gehalt eines DevOps-Ingenieurs in den USA bei etwa 104.281 US-Dollar pro Jahr. Obwohl DevOps ein relativ neuer Karriereweg ist, stellen immer mehr Unternehmen für diese Rolle ein und bieten verschiedene Kurse an, um Fachkräfte mit den notwendigen Fähigkeiten auszustatten. Die oben genannten Fragen sind repräsentativ für das, was Sie in einem DevOps-Vorstellungsgespräch erwarten können.

Zusätzlich können Sie online nach qualitativ hochwertigen Kursen suchen, um sich weiter in DevOps zu bilden.