ldprod - Fotolia
Vorbereitung auf die häufigsten Fragen im DevOps-Bewerbungsgespräch
DevOps-Bewerbungsgespräche drehen sich meist um interdisziplinäre Fähigkeiten. Mit diesen sechs häufig gestellten Fragen müssen Bewerber rechnen.
DevOps ist kein Job für Einzelgänger. Tatsächlich ist es strenggenommen noch nicht einmal ein Job. Eigentlich ist es ein neuer Ansatz zur Erstellung interdisziplinärer Software. Im Laufe ihrer Karriere werden vermutlich viele IT-Fachleute in irgendeiner Form mit DevOps-Verantwortung arbeiten, und die Stellenausschreibungen sind entsprechend attraktiv.
DevOps kombiniert das Wissen um das Erstellen von Software mit Wissen der Qualitätssicherung (Quality Assurance, QA) sowie Operations Workflows für Continuous Development und Continuous Deployment. Wer sich im DevOps-Umfeld bewirbt, der muss auch bestimmte Fertigkeiten vorweisen können, die speziell in DevOps-Teams gefragt sind.
Die folgenden sechs Fragen werden häufig in DevOps-Bewerbungsgesprächen gestellt. Wer sich bereits im Vorfeld mit ihrer Beantwortung auseinandersetzt, hat gute Chancen, aus dem Bewerberfeld hervorzustechen.
1. Wie sieht es mit Ihrer Ausbildung und Erfahrung aus?
Trumpfen Sie hier gleich mit der Betonung Ihres Verständnisses der DevOps-Prinzipien auf. Zeigen Sie Ihrem Gesprächspartner, wie Ihr bisheriger Werdegang Sie für diese Aufgabe vorbereitet hat.
Der Aufgabenbereich für DevOps-Positionen unterscheidet sich, doch die meisten DevOps-Positionen verlangen mindestens einen Bachelor-Abschluss in Informatik oder einer vergleichbaren Disziplin mit Kenntnissen über Programmierung, Qualitätssicherung und IT-Infrastrukturkomponenten. Höherrangige DevOps-Stellen erfordern womöglich weitergehende Qualifikationen in Systemarchitektur und Softwaredesign.
Erwähnen Sie Ihre Zertifizierungen in Virtualisierung, Cloud-Computing und spezifischen Programmiersprachen. Nicht zu vernachlässigen sind auch anbieterspezifische Online-Kurse zu Softwareentwicklungswerkzeugen oder Systemverwaltungs- und Automatisierungs-Tools.
Vergleichen Sie die DevOps-Ausschreibung mit Ihrem Lebenslauf. Die meisten DevOps-bezogenen Tätigkeiten im Einsteigerbereich verlangen drei bis fünf Jahre Erfahrung in Softwareentwicklung und -Testing. DevOps-Stellen, die Operations und Deployment beinhalten, können mitunter mindestens vier Jahre Betriebserfahrung verlangen, etwa als Systemadministrator für Rechenzentren oder Cloud-Infrastrukturen. Betonen Sie Ihre Erfahrungen in der Systemverwaltung und Workflow-Automatisierung sowie Provisionierung und Workload-Verwaltung ebenso wie Ihren routinierten Umgang mit Release-Tools.
Da DevOps eine funktionierende enge Zusammenarbeit zwischen den Teams für Entwicklung, Test und Betrieb erfordert, ist jede Erfahrung wertvoll, die Sie im Bereich interdisziplinäres Management mit in die Waagschale werfen können. Sagen Sie Ihrem potenziellen Arbeitgeber, wie Sie verschiedene Teams dazu bringen, Hindernisse zu überwinden, zusammen zu arbeiten, anspruchsvolle Release-Zeitpläne einzuhalten und sich in neue Tools und Technologien einzuarbeiten.
2. Mit welchen Systemen haben Sie bisher gearbeitet?
DevOps-Profis benötigen Expertise im Betrieb von Server und IT-Systemen, einschließlich Netzwerkhardware und Architekturen zur Unterstützung der Workload-Verteilung. Einige DevOps-Jobs verlangen auch umfassende Kenntnisse über Server-Clustering und hochverfügbare Systeme. Auf dieser Ebene müssen DevOps-Ingenieure Systemfähigkeiten analysieren und Upgrades für Effizienz, Skalierbarkeit, Stabilität oder Elastizität integrieren können. Verschaffen Sie sich ein solides Wissen über Betriebssysteme und umgebende Technologien wie Netzwerksicherheit, Virtual Private Networks (VPNs) und Proxy-Server.
DevOps setzt zur schnellen Workload-Provisionierung auf Virtualisierung, um Compute-Ressourcen für einen Roll-out zu neuen virtuellen Maschinen zusammenzuziehen, daher sollten Sie über ein detailliertes Wissen über die gängigen Hypervisoren verfügen. Dies sollte zum Beispiel Backups, Migration und Taktiken zum Lifecycle-Management umfassen, um Ressourcen zu schützen, zu optimieren und gegebenenfalls wiederherzustellen. In einigen Umgebungen kann auch Erfahrung im Umgang mit Microservices und Container-Virtualisierung von Vorteil sein.
Erfahrung im Operationsbereich sollte Fachwissen über Systemverwaltungswerkzeuge wie Microsoft System Center, Puppert, Nagios oder auch Chef umfassen. DevOps-Stellen mit einer Betonung auf Operations erfordern tiefgehende Kenntnisse bei Troubleshooting und Analyse von Problemen. Erzählen Sie außerdem, wie Sie Ressourcen bei gleichzeitigen Kosteneinsparungen effizienter nutzen konnten, beispielsweise durch Serverkonsolidierung oder durch Verbesserung beim Provisioning.
3. Welche DevOps-Tools kennen Sie?
DevOps umfasst einen stetigen Zyklus aus Programmierung, Tests und Verbesserungen. Die richtigen Tools dafür hängen von der Größe des Teams und den speziellen Begleitumständen des jeweiligen Unternehmens ab.
Tools für die Softwarekonfigurationsverwaltung oder für Build/Release (Versionskontrolle) helfen bei der Dokumentation von Change Requests, hier wären etwa Apache Subversion, Mercurial oder auch Fossil zu nennen. Damit können Entwickler einfacher den Leitlinien und Vorgaben des Unternehmens für Softwareänderungen nachkommen
Continuous-Integration-Tools (CI) wie Rational Build Forge, Jenkins oder Semaphore ziehen sämtliche Kopien des funktionierenden Quellcodes in eine zentrale Version zusammen. Solche Tools sind für größere Gruppen wichtig, in denen ein Entwicklungsteam parallel an derselben Codebasis arbeitet.
QA-Experten nutzen Tools zur Code-Analyse, um Software auf Bugs, Sicherheit und Performance zu testen. Wenn Sie schon einmal HPs Fortify Static Code Analyzer verwendet haben, reden Sie darüber und berichten Sie, wie Sie damit Sicherheitsprobleme in Programmiersprachen aufgestöbert haben. Sprechen Sie auch über Tools wie GrammaTechs CodeSonar, mit dem Sie Speicherlecks, Buffer-Underruns und andere Fehler in C/C++ und Java-Code gefunden haben.
Hier ist es absolut notwendig, Erfahrung mit den wichtigsten Programmier- und Skriptsprachen wie etwa Ruby, C#, .NET, Perl, Python, Java, PHP oder auch der Windows PowerShell nachweisen können und sich in den zugehörigen Betriebssystemen Windows, Linux und Unix wohlfühlen.
4. Welche Erfahrung besitzen Sie mit Cloud-basierter Softwareentwicklung?
Erwarten Sie als nachfolgende Frage, dass Ihr Gesprächspartner Sie zu Ihrer Erfahrung mit Cloud-Diensten befragen wird, die sich mit dem DevOps-Ansatz iterativer, integrierter IT verzahnen.
Viele DevOps-Profis benötigen Erfahrungen aus erster Hand mit den gängigsten Anbietern von Public Clouds wie Amazon Web Services (AWS) Elastic Compute Cloud (EC2) oder der Google Cloud Plattform. Teilen Sie Ihr Wissen über die Plattformen, die Provisionierung neuer Instanzen, das Schreiben neuer Software-Iterationen unter Zuhilfenahme von Anbieter-APIs und Software Development Kits (SDK), das Konfigurieren von Clustern zu Skalierungszwecken oder über die Verwaltung von Workload-Lebenszyklen.
Hier bietet sich Ihnen die beste Gelegenheit, containerbasierte Cloud-Instanzen als Alternative zu herkömmlichen virtuellen Maschinen anzusprechen. Ereignisgesteuertes Cloud-Computing wie AWS Lambda bietet einen weiteren Ansatz der Softwareentwicklung, ein Segen für erfahrene DevOps-Kandidaten.
Ein umfassendes Verständnis der Tools von Drittanbietern unterstreicht Ihre Fähigkeit, DevOps in Cloud-Projekte einzubringen. Konzentrieren Sie sich auf Ihre erfolgreichen Projekte oder Aufgaben im Cloud-Bereich, statt nur Produktnamen aufzusagen.
Erwähnen Sie in Ihrem Bewerbungsgespräch wenn möglich auch Erfahrungen mit der Handhabung von Big Data, bei der hochgradig skalierbare Cloud-Infrastruktur zur Bewältigung komplexer Aufgabenstellungen herangezogen wurde.
5. Wie sieht Ihr typisches Projekt-Management aus?
Betonen Sie im Rahmen dieser Antwort Ihre Erfahrung mit Problemen beim DevOps-Projekt-Management. Verwenden Sie die Erörterung der DevOps-Verwaltung als Rahmen für die Lösung komplexer Geschäftsprobleme.
Als Profi mit Management-Verantwortung müssen Sie ein klares Verständnis von Techniken des DevOps-Projekt-Managements demonstrieren. Sprechen Sie darüber, wie Sie gemeinsam mit unterschiedlichen Teams Ziele setzen, Arbeitsabläufe rationalisieren, zielorientiert handeln und so Zeitverluste verhindern, neue Tools oder Frameworks untersuchen und einführen, Anforderungen als Arbeitsabläufe modellieren und Sachstände kommunizieren. Behandeln Sie dabei auch, wie Continuous Integration, Release-Verwaltungswerkzeuge und weitere Tools interdisziplinäre Projekte im Plan halten.
Höherrangige DevOps-Positionen, wie die des DevOps-Chefingenieurs, verlangen mehr geschäftlichen Sachverstand und Menschenführung. Berichten Sie in diesem Fall zum Beispiel von Ihren Erfahrungen beim Lösen von Teamstreitigkeiten und Konflikten.
6. Welche anderen Tools kennen Sie, die bei DevOps-Prozessen helfen können?
Diese Frage kann Sie im DevOps-Bewerbungsgespräch vom qualifizierten zum idealen Kandidaten befördern.
DevOps ist derartig vielschichtig, dass das Tätigkeitsfeld kaum bei Programmierung, Tests und Systemverwaltung endet. Ein DevOps-Projekt könnte etwa auf Datenbankplattformen wie SQL oder NoSQL basieren, auf Datenstrukturservern wie Redis oder auf Erfassungssystemen für Konfiguration und Verwaltung wie Redmine.
Webanwendungen sind in modernen Konzernen beliebt, so dass Ihre Erfahrungen mit Webservern wie Microsoft Internet Information Services (IIS), Apache Tomcat oder anderen Webservern ein willkommenes Plus darstellen kann.
Unternehmen, die auf standardisierte Ansätze der Softwareentwicklung setzen, suchen nach Kandidaten mit Erfahrung in Techniken und Tools für agiles Lifecycle-Management. Sollten Sie eine DevOps-Rolle mit starkem Fokus auf Operations in einer regulierten Industrie anstreben, so könnte Ihnen zum Beispiel aber auch ITIL-Praxiserfahrungen den Arbeitsvertrag sichern.
Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!