DevOps-Profis sind heiß begehrt und der Grund dafür liegt auf der Hand. Sie sind verantwortlich für die kontinuierliche Integration und Auslieferung von Code sowie für das Monitoring und die Verwaltung von Servern, Netzwerken und anderen Infrastrukturkomponenten des Unternehmensnetzwerks.
Im Grunde geht es bei DevOps darum, zu gewährleisten, dass die Software Ihres Unternehmens reibungslos und effizient funktioniert. Wenn Sie also einen DevOps-Profi einstellen wollen, sollte er oder sie für den reibungslosen Betrieb Ihrer Software sorgen können – und vielleicht sogar zu deren Verbesserung beitragen.
Die Funktion von DevOps, kurz für Development Operations (Entwicklung und Betrieb), trat in den letzten Jahren immer mehr in den Vordergrund. Obwohl es vermutlich schon seit den 70er Jahren, als die ersten Computer in großen Unternehmen zum Einsatz kamen, existierte, entstand DevOps als spezifische Funktion erst in den 2000ern. Unternehmen stellen DevOps-Spezialist:innen ein, damit diese die Verantwortung für ihre Software-Entwicklungs- und Bereitstellungsprozesse übernehmen.
Angesichts des mächtigen Wirbels, für den DevOps in den letzten Jahren sorgte lässt sich leicht erkennen, wieso Talente auf diesem Gebiet heute so begehrt sind. In unserer Zeit nehmen Softwares einen immer größeren Stellenwert ein und Unternehmen sehen ein, dass sie nur mit einer starken DevOps-Kultur zum Erfolg gelangen können. Dank der Kombination aus technischem Know-how und Geschäftsbewusstsein, die ein DevOps-Talent mitbringt, wird Ihr Unternehmen sehr viel flexibler als seine Konkurrenz. Wenn Sie in der heutigen Geschäftswelt wettbewerbsfähig bleiben wollen, sollte die Einstellung eines DevOps-Engineers daher ganz oben auf Ihrer Prioritätenliste stehen.
DevOps konnte insbesondere deshalb so sehr an Beliebtheit gewinnen, weil es für die Konkurrenzfähigkeit von Unternehmen eine überragende Rolle spielt. Stellen wir uns vor, ein Unternehmen muss aufgrund einer gestiegenen Nachfrage eine spezifische Anwendung schneller als geplant in seine Systeme implementieren. Es besteht das Risiko, dass das Unternehmen Kund:innen verliert oder zumindest vor größeren Herausforderungen steht als die Konkurrenz, die schneller neue Lösungen liefern kann. Das zu verhindern ist die Aufgabe von DevOps-Engineers: Sie stellen sicher, dass die Anforderungen der Kundschaft erfüllt werden, indem sie mit den rasanten Fortschritten der Software Schritt halten.
Immer mehr Unternehmen wenden DevOps-Methoden an, um mit der raschen Entwicklung der Anwendungs- und Systementwicklung sowie dem rasenden Tempo in diesem sich stetig verändernden Geschäftsumfeld mithalten zu können. Doch was bedeutet das für DevOps-Engineers? Boomt der Arbeitsmarkt für DevOps-Engineers tatsächlich? Ist der Hype gerechtfertigt? Worauf sollten Sie bei der Auswahl Ihres DevOps-Talents achten? Welche Fähigkeiten sollten Ihre Kandidat:innen mitbringen? Dies sind nur einige der Fragen, die wir mit diesem Artikel beantworten wollen.
Darüber hinaus zeigen wir Ihnen, wie Sie ein gründliches Vorstellungsgespräch durchführen, damit Sie das bestmögliche Talent für Ihr Team finden. Doch wir beginnen mit einer ausführlichen Einführung in die Position.
Was ist eigentlich DevOps?
Der Begriff „DevOps“ existiert bereits seit mehreren Jahren, doch noch immer sorgt er bei vielen für Verwirrung. Viele Menschen bringen DevOps mit einer bestimmten Position in Verbindung – beispielsweise der des DevOps-Engineers. Tatsächlich ist DevOps jedoch eine Herangehensweise an das Management von Informationstechnologie (IT), bei der Betriebs- und IT-Expert:innen zusammenarbeiten, um gemeinsam die Technologie, auf der das Unternehmen aufbaut, zu verwalten.
DevOps-Engineer ist eine Stellenbezeichnung, die immer häufiger in Stellenportalen auftaucht. Kurz gefasst sind DevOps-Engineers (oder Entwickler:innen, die sich zu DevOps-Engineers weiterentwickelt haben) Personen, die sich sowohl mit der Software-Entwicklung als auch mit dem IT-Betrieb auskennen. In anderen Worten kann dieser Profi Code schreiben und ihn bereitstellen, Unit-Tests erstellen und Produktionssysteme warten. Er kann mit dem Feuer spielen (im übertragenen Sinne) und auch Brände löschen (eine ziemlich wortwörtliche Beschreibung seiner Aufgaben).
Brauchen Sie eine:n Entwickler:in oder einen DevOps Engineer? Worin besteht der Unterschied?
Nun ja, wahrscheinlich brauchen Sie beides.
Software-Entwickler:innen erstellen die Anwendungen, die auf Servern laufen, DevOps-Engineers dagegen verwalten die Server. Die beiden Funktionen sind voneinander abhängig, aber sehr unterschiedlich. Entwickler:innen arbeiten mit Code und erstellen Software – DevOps-Engineers arbeiten mit Servern, Konfigurations-Management-Tools und anderen Infrastrukturen.
Es ist wichtig, dass Sie im Laufe des Einstellungsverfahrens genau verstehen, womit ein DevOps-Engineer Ihr Unternehmen unterstützen kann. Darum sollten Sie sich ansehen, wie sich diese Rolle von Ihren traditionellen Entwickler:innen unterscheidet und warum sich jemand dieser Aufgabe stellen will.
Weiter unten werden wir näher auf die Vielfalt an Positionen in der DevOps-Welt eingehen. Wenn Sie verstehen, welche Aufgaben zu einer solchen Stelle gehören und wie sie sich von anderen Rollen unterscheidet, können Sie auch besser entscheiden, welche Position für Ihr Unternehmen am besten geeignet ist.
Der Arbeitsmarkt für DevOps-Engineers
Die Nachfrage nach DevOps-Engineers ist hoch, da sie mit ihrer Expertise Unternehmen transformieren können. Der Position des DevOps-Engineers kommt schon heute eine Schlüsselfunktion in der IT-Branche zu und sie wird immer wichtiger. Laut gminsights überstieg der Umfang des DevOps-Markts 2021 sieben Milliarden Dollar und der Gewinn des DevOps-Marktes wird bis 2028 um mehr als 20 % zunehmen. Auch die Anzahl der DevOps-Jobs wird zwischen 2020 und 2026 voraussichtlich um mehr als 20 % pro Jahr ansteigen.
Viele Unternehmen erkennen rasch, was für eine starke Wirkung DevOps-Engineers entfalten können. Sei es bei der Arbeit mit Entwicklungs- oder mit Betriebsteams: Unternehmen brauchen eine Person, die die Lücke zwischen diesen beiden Welten schließen und dafür sorgen kann, dass alles reibungslos abläuft.
Schon heute ist der Arbeitsmarkt für DevOps-Engineers hart umkämpft, doch diese Tendenz wird sich in der Zukunft nur noch verstärken. Das teuerste Element Ihres Unternehmens ist Ihr Team. Wenn Ihr Budget begrenzt ist, ist es vielleicht verlockend, einen weniger teuren DevOps-Engineer einzustellen. Doch letzten Endes könnte Sie die Entscheidung für die falsche Person Ihr Geschäft kosten. Neue Mitarbeitende einzulernen, kann dauern, und noch länger dauert es, aus einer technisch unbegabten Person eine:n DevOps-Engineer zu machen. Darum ist es wichtig, von Anfang an auf die richtige Person zu setzen.
Viele verschiedene Unternehmen stellen DevOps-Engineers ein, u. a.:
- Software-Unternehmen,
- SaaS-Provider,
- Unternehmensberatungsfirmen,
- Cloud Storage Dienste.
Viele Unternehmen setzen auf DevOps
In der Tech-Branche verwenden heute viele Unternehmen DevOps. Hier finden Sie nur einige Beispiele:
- Amazon
- HP
- Netflix
- Walmart
- Etsy
- Target
- Meta
- Adobe
- Sony Pictures Entertainment
Die Antwort liegt auf der Hand: weil sie vieles einfacher machen.
DevOps-Engineers sind üblicherweise für die Automatisierung von Prozessen zuständig, die bisher manuell von Menschen ausgeführt werden. Sie erarbeiten Methoden zur Automatisierung sich wiederholender Aufgaben und erledigen sie im Backend, damit die Mitarbeitenden sich nicht länger um sie kümmern müssen. So können sich die Entwickler:innen auf ihre eigentliche Arbeit konzentrieren – die Erstellung neuer und die Verbesserung bestehender Funktionen –, statt ihre Zeit mit monotonen Aufgaben wie der Einrichtung von Servern oder der Sicherstellung der korrekten Funktionsweise von Backups zu verbringen.
Credit: OnGraph.com: Why an investment in DevOps is worth it
Wenn Sie sich überlegen, einen DevOps-Profi einzustellen, haben Sie vermutlich bereits einen Webservice oder eine Anwendung, die über das Internet bereitgestellt wird. Sie wollen häufiger neue Funktionen veröffentlichen und sicherstellen, dass sich die Downtime dadurch nicht allzu sehr erhöht. Sie wollen dafür sorgen, dass Ihre Entwickler:innen schnell und einfach Code bereitstellen und Ihre System-Admins schnell Rollbacks durchführen können, wenn bei einem Update etwas schiefläuft. Hier kommen DevOps-Engineers ins Spiel: Sie schlagen die Brücke zwischen den beiden Abteilungen und fördern eine Vertrauenskultur zwischen den Teammitgliedern, indem sie deren Anstrengungen koordinieren und so wertvolle Zeit und Ressourcen einsparen, die ansonsten für die Bewältigung von Problemen im Voraus oder die Korrektur derselben im Nachhinein aufgewendet würden.
Wir unterhielten uns mit dem DevOps-Experten Anmol Nagpal darüber, wie wichtig die Einstellung von DevOps ist.
„DevOps spielt eine bedeutende Rolle. Die DevOps-Engineers sind es, die sich um die Cloud/Infrastruktur kümmern. Ohne eine stabile und skalierbare Infrastruktur kann kein Unternehmen wachsen und auch die Anwendungen sind nicht stabil. Selbst mit dem besten Code kann eine Anwendung nicht stabil sein, wenn die Architektur unzulänglich ist. Dann kommt es zu Ausfällen (Downtime), was zu Gewinn- und Geschäftsverlusten führt.“
Anmol Nagpal
Verschiedene Kandidat:innen verfügen über DevOps-Fähigkeiten. Als Personalchef:in sollten Sie aber in der Lage sein, gute von schlechten Bewerbenden zu unterscheiden. Laut Nagpal sollte ein potenzielles Teammitglied Folgendes mitbringen. Es sollte …
-
gewissenhaft und zielstrebig vorgehen,
-
die DevOps-Tools kontinuierlich auf die neueste Version aktualisieren,
-
in allen Projekten die Best Practices zum Thema Sicherheit befolgen,
-
ein Teamplayer sein, mit den verschiedenen Teammitgliedern im Projekt zusammenarbeiten und sie in ihrer Arbeit unterstützen,
-
immer auf neue Herausforderungen vorbereitet sein und
-
eigenständig arbeiten können.
Verschiedene DevOps-Positionen
Eine weit verbreitete Position in diesem Bereich ist die des System Engineers, der Softwaresysteme (z. B. Datenbanken) designt und aufbaut. System Engineers arbeiten eng mit Entwickler:innen und anderen technischen Mitarbeitenden zusammen, um sicherzustellen, dass die alles haben, was sie zur reibungslosen und effizienten Ausführung ihrer Aufgaben benötigen.
Eine weitere Stellenbezeichnung im Bereich DevOps ist Infrastructure Engineer. Diese Expert:innen designen und verwalten Netzwerke und Speichersysteme für Unternehmen, damit diese große Datenmengen gleichzeitig verarbeiten können. Konkret besteht ihre Arbeit darin, die IT-Infrastruktur mithilfe modernster Technologien aufzubauen, zu warten, bereitzustellen und zu koordinieren.
Weitere verbreitete Stellenbezeichnungen auf diesem Gebiet sind:
- Site Reliability Engineer (SRE)
Personen in dieser Funktion testen und werten Produkte noch in der Produktionsphase aus. Außerdem analysieren sie Daten und verwalten und minimieren die Risiken bezüglich der Systemzuverlässigkeit.
Configuration Manager sind für die Koordination und Leitung von Konfigurationen aller Arten von Produkten verantwortlich. Üblicherweise überwachen sie den Lebenszyklus der Software- oder Hardware-Produktion, z. B. der Entwicklung neuer Anwendungen oder Server.
Ein DevOps Engineer ist ein Multitalent mit umfassenden Kenntnissen über Entwicklung und IT-Betrieb, was üblicherweise Programmierung, Infrastruktur-Management, System-Administration und DevOps-Toolchains umfasst.
- Cloud Engineer (Azure/AWS/GCP)
Cloud Engineers sind IT-Profis, die Cloud-Infrastrukturen aufbauen und warten. Sie sind insbesondere zuständig für alle Aufgaben, die technische Fähigkeiten erfordern und mit Cloud-Computing, u. a. Design, Planung, Management, Wartung und Support, zusammenhängen.
Ein Solution Architect entwirft die technische Gesamtvision für eine spezifische Lösung eines Geschäftsproblems. Dieser Tech-Profi schließt die Lücke zwischen dem geschäftlichen Problem und der technologischen Lösung und skizziert alle Phasen und Anforderungen, die zur Umsetzung dieser Lösung erforderlich sind.
Ein Release Engineer ist für die Entwicklung und Produktion von Software zuständig. Release Engineering Manager überwachen den Build- und Release-Prozess und ihre Hauptverantwortung besteht in der Planung und Überprüfung der Software-Entwicklung und des Bereitstellungsprozesses.
Im Bereich DevSecOps werden die Anwendungs- und Infrastruktursicherheit nahtlos in agile und DevOps-Prozesse und Tools integriert.
Welche Aufgaben gehören zur Rolle des DevOps Engineers?
Bleiben wir der Einfachheit halber bei einer Rolle – dem DevOps Engineer.
DevOps Engineers arbeiten mit anderen IT-Profis wie Entwickler:innen, Tester:innen und Quality Assurance Engineers zusammen. Durch die Automatisierung häufig auszuführender Aufgaben mithilfe verschiedener Tools wie Puppet, Chef und Ansible unterstützen sie das Team bei der Implementierung der Funktionen, die sie benötigen.
Die Hauptaufgaben und -verantwortlichkeiten von DevOps Engineers:
-
Implementierung von Tools zur Entwicklung, zum Testen und zur Automatisierung sowie von IT-Infrastruktur,
-
Entwicklung neuer Funktionen für Anwendungen,
-
Definition und Einrichtung von Prozessen für Entwicklung, Testing, Releasing, Aktualisierung und Unterstützung für den DevOps-Betrieb,
-
Behebung von Fehlern und Bugs,
-
Überwachung der Prozesse während des gesamten Lebenszyklus, um deren Einhaltung sicherzustellen, sie zu aktualisieren oder neue Strategien zu entwickeln, um sie zu verbessern und zu effektivieren,
-
Aufbau automatisierter Prozesse soweit möglich,
-
Erkennung und Bereitstellung von Cybersicherheitsmaßnahmen,
-
Vorfallsmanagement und Ursachenanalyse,
-
häufige Kommunikation mit Teammitgliedern und der Kundschaft,
-
Auswahl und Deployment der geeigneten CI/CD-Tools,
-
Verwaltung der periodischen Berichterstattung.
Einstellung geeigneter DevOps-Kandidat:innen
DevOps ist zurzeit ein heißes Thema – die richtigen Talente zu erkennen ist der Schlüssel zum Erfolg.
Ihr:e Traumkandidat:in verfügt über nachweisliche Erfahrung in der Produktentwicklung und -auslieferung von A bis Z, nicht nur über gute Kenntnisse im Infrastrukturmanagement.
Die Person mit den richtigen Erfahrungen und der passenden Persönlichkeit für Ihr Team zu finden kann einiges an Mühe kosten. Doch mit einer gewissen Vorbereitung können Sie sich von anderen Unternehmen abheben, die um die Aufmerksamkeit dieser Person kämpfen, und so Ihre Chancen erhöhen, dass sie sich für Ihr Unternehmen interessiert und für Ihr Team entscheidet.
Stellen Sie bei der Einstellung eines DevOps Engineers folgende Fragen:
- Welche Anforderungen stellt Ihr Unternehmen?
Benötigen Sie jemanden, der Server verwalten kann, oder eher jemanden, der die Software-Entwicklung verwalten kann? Gibt es besondere Fähigkeiten, die nützlich wären?
- Welche Erfahrungen sollte Ihr Traumtalent mitbringen?
Wie viel Erfahrung und was für einen Abschluss sollte er/sie haben? War seine/ihre Arbeit in anderen Unternehmen erfolgreich? Zeigt der Lebenslauf, dass er/sie zuvor gut mit anderen zusammengearbeitet hat? Mithilfe dieser Fragen können Sie beurteilen, ob Bewerbende die Fähigkeiten mitbringen, die für eine erfolgreiche Mitarbeit in Ihrem Unternehmen erforderlich sind.
- Wie sieht das Zusammenspiel mit anderen Personen aus?
Manche Menschen sind von Natur aus kontaktfreudig und finden leicht neue Freund:innen, während andere lieber für sich bleiben. Wichtig ist, dass Sie jemanden finden, der gut zu Ihrem Team passt.
- Was steht zwischen den Zeilen des Lebenslaufs?
Hat Ihr:e Kandidat:in ein umfassendes Verständnis von DevOps? Sie sollten unbedingt sicherstellen, dass Ihr Talent versteht, was DevOps bedeutet und wie es in Ihrem Unternehmen angewandt wird. Bewerbende, die diese Konzepte nicht verstehen oder keine Erfahrung in dem Bereich mitbringen, sind vermutlich weder für diese noch für eine andere Rolle in Ihrem Unternehmen geeignet.
- Kann der DevOps Engineer gut Probleme lösen?
Zur Problemlösung gehört die effektive Kommunikation mit anderen. DevOps Engineers müssen Fragen stellen, um Antworten zu verschiedenen Konzepten, Prozessen, Tools usw. zu erhalten, die ihre Arbeit betreffen.
- Kommuniziert der DevOps Engineer effektiv?
Bewerbende müssen in der Lage sein, ihre Arbeit im Detail zu beschreiben, sodass andere sie verstehen können. Sie müssen Präsentationen darüber halten oder dokumentieren können, womit sie im Bereich DevOps gearbeitet haben. Außerdem müssen sie Fragen der Kundschaft beantworten und erklären können, wie etwas funktioniert (oder warum es nicht funktioniert).
Ausbildung und Erfahrungen, die DevOps Engineers mitbringen sollten
Die Grundlage bildet eine Ausbildung als Fachinformatiker:in oder ein Informatikstudium. Darüber hinaus ist praktische Branchenerfahrung erforderlich. Idealerweise sollten Personen, die in DevOps tätig sind, über einen Bachelor of Computer Science oder einen verwandten Abschluss mit Schwerpunkt auf Software-Entwicklung verfügen.
Sehen Sie sich nach DevOps Engineers mit Erfahrung in verschiedenen Programmiersprachen und Frameworks um. Eine breite Wissensgrundlage ist für diese Tätigkeit nämlich essenziell. Ist Ihr:e Kandidat:in jedoch in einer Programmiersprache besonders kompetent, kann er oder sie dennoch ein Gewinn für Ihr Unternehmen sein. Die wachsende Beliebtheit von DevOps (der Kombination aus Entwicklung und IT-Betrieb) und die beeindruckenden Statistiken führten zu Jobmöglichkeiten für die verschiedensten Positionen; oft wird die Rolle des DevOps Engineers jedoch durch Ihre eigene Zielsetzung definiert.
Im Grunde geht es darum, was Ihr Unternehmen zum gegebenen Zeitpunkt benötigt. Wenn Sie noch am Anfang stehen, sollten Sie jemanden einstellen, der über Programmier- und Betriebserfahrung verfügt. Viele Unternehmen entscheiden sich für die Einstellung einer Person, die funktionelle Aufgaben übernehmen kann – wie die Implementierung von Monitoring- oder Automatisierungstools –, bevor sie einen Vollzeit-Software-Engineer einstellen. So können Sie Ihr Team ausbauen und gleichzeitig Geld bei der anfänglichen Einstellung von Entwickler:innen sparen.
Erfahrungen in Sprachen und Frameworks
Wie bereits erwähnt, nehmen DevOps Engineers eine Hybridstellung ein: Sie müssen einerseits über ein fundiertes Verständnis der Prinzipien des Software-Engineerings verfügen, andererseits den Betrieb und die Infrastruktur von Webanwendungen genau überblicken. Aus diesem Grund müssen sie folgende Kenntnisse mitbringen:
Wichtige Fähigkeiten sind Erfahrung in Java und im Idealfall auch Apache Tomcat. Als nächstes auf Ihrer Wunschliste sollten SQL und MySQL stehen sowie DevOps-Tools wie Puppet, Chef und Ansible.
Laut Anmol Nagpal sollten DevOps-Profis zudem folgende Fähigkeiten mitbringen, damit sie gute Arbeit leisten können:
- Debugging- und Analysefähigkeiten – damit sie bestehende Probleme erfassen können.
- Dokumentation – nicht alle haben diese Fähigkeit, eine sachgemäße Dokumentation ist aber sehr wichtig, damit keine Kenntnisse verloren gehen.
- Setzung von Prioritäten – Mitarbeitende kommen mit hunderttausend Fragen und Problemen zu den DevOps-Engineers. Darum ist es wichtig, dass diese Aufgaben definieren und Prioritäten setzen können.
- Proaktivität – das ist eine Schlüsselkompetenz im DevOps-Bereich: DevOps-Engineers müssen die Infrastruktur/Anwendung aktiv überwachen und sicherstellen, dass das Unternehmen die Best Practices einhält. Sollten Probleme auftauchen, muss der DevOps-Engineer diese erkennen und der Priorität nach lösen.
- Umfassendes Verständnis des Unternehmens/Produkts, um die passende Infrastruktur erstellen und ausliefern zu können.
Mit dem Siegeszug der DevOps-Bewegung werden auch die Karrieremöglichkeiten immer vielfältiger. Gute DevOps-Engineers sind die Universalgenies, die mit allen Bestandteilen des Software-Entwicklungszyklus umgehen können. Sie müssen Probleme schnell lösen, ihrem Team die Lösungen vermitteln können und darüber hinaus über ein breites Spektrum an technischen Fähigkeiten verfügen.
Effektive Bewerbungsgespräche mit DevOps-Engineers
Ein effektives Bewerbungsgespräch ist ein Schlüsselaspekt für die Einstellung Ihres neuen Teammitglieds. Zu erkennen, welches Talent am besten für eine Position mit solch vielfältigen Anforderungen geeignet ist, ist jedoch nicht immer einfach. Zunächst ist es hilfreich zu verstehen, welche Soft Skills DevOps-Kandidat:innen mitbringen sollten.
Erforderliche Soft Skills
Damit DevOps-Engineers gute Arbeit leisten können, sind Soft Skills ebenso entscheidend wie technische Fähigkeiten. Unter Soft Skills versteht man im Allgemeinen Kompetenzen in den Bereichen Kommunikation, Problemlösung und Beziehungsaufbau. Diese Kompetenzen sind in der Teamleitung, für eine effektive Koordination und Kooperation, den Aufbau von Beziehungen mit Stakeholdern und die effiziente Problemlösung wichtig. Im Folgenden fassen wir die Soft Skills zusammen, die DevOps-Engineers mitbringen sollten:
-
Sie brauchen eine Person mit starken Kommunikationsfähigkeiten. Um effektiv zu kommunizieren, müssen DevOps-Engineers aktiv zuhören, sich deutlich und prägnant ausdrücken und Ideen präzise vermitteln. Ihr Talent muss viele Verantwortlichkeiten eigenständig stemmen und seine Entscheidungen gut erklären können. Dies erreicht es am besten durch das Stellen guter Fragen und aufmerksames Zuhören. DevOps-Engineers müssen darüber hinaus ihre Kolleg:innen auf ihre Fehler hinweisen können, ohne sie zu beleidigen oder herablassend zu behandeln.
-
DevOps-Engineers brauchen ein Auge fürs Detail und die Bereitschaft, für ihre Arbeit ihr Äußerstes zu geben.
-
Außerdem darf ihnen nie entgehen, was erledigt werden muss – und wann es erledigt werden muss. Ihr DevOps-Profi ist dafür verantwortlich, Prozesse für eine bessere Teamkommunikation zu entwickeln und er sollte zwischen dringenden Informationen und solchen Informationen unterscheiden können, die noch einen Tag warten können.
-
Problemlösung ist ein weiterer wichtiger Aspekt in dieser Position. Tritt ein Problem mit der IT-Infrastruktur auf, wirkt sich das vermutlich auf das gesamte Unternehmen aus. DevOps-Engineers sind dafür zuständig, zu verhindern, dass ähnliche Probleme in der Zukunft erneut auftreten.
-
Eine freundliche, respektvolle Einstellung gegenüber anderen ist eine gute Voraussetzung dafür, dass Projekte reibungslos ablaufen und verschiedene Teams gut zusammenarbeiten.
Erforderliche technische Fähigkeiten
Für eine gute Leistung im DevOps-Bereich sind andere Fähigkeiten erforderlich als für traditionelle IT-Positionen. DevOps-Teams bestehen oft aus Personen mit einer Vielzahl an verschiedenen Erfahrungen und Kompetenzen. Daher ist es wichtig, dass die Teammitglieder eng zusammenarbeiten können und über verschiedene der unten aufgeführten Fähigkeiten verfügen:
-
Erfahrung in verschiedenen Betriebssystemen – Linux-Kenntnisse sind besonders nützlich,
-
Skriptsprachen wie Bash, PERL, Python und Ruby (Verwendung von „Gems“ und weiteren Paketverwaltungen),
-
Erfahrung mit Programmiersprachen wie Ruby, Python oder Java,
-
Vertrautheit mit Versionsverwaltungssystemen wie Git,
-
gute Kenntnisse der Linux-Systemverwaltung zur korrekten Bereitstellung neuer Anwendungen,
-
moderne Webanwendungs-Frameworks und Entwurfsmuster,
-
grundlegende Netzwerkkenntnisse.
Nagpal zufolge sind die folgenden technischen Fähigkeiten in DevOps unverzichtbar:
„Cloud (sei es Azure, AWS oder GCP) – Kenntnisse in mehr als einem System sind vorteilhaft, haben die Bewerbenden umfassende Expertise in einem von ihnen, ist das auch akzeptabel.“
Anmol Nagpal
-
IAC (Terraform/Cloudformation/Pulumi/CDK),
-
Docker,
-
Kubernetes,
-
CI/CD (Jenkins/GitHub Actions/GitLab/Azure DevOps),
-
Sicherheit – sie sollten wissen, dass alles, was sie entwickeln, auch gesichert werden muss.
Fragen für das Vorstellungsgespräch und erwartete Antworten
Diese Liste über Fragen und Antwortvorschläge soll CTO bei der Durchführung eines Bewerbungsgesprächs und DevOps-Engineers bei der Vorbereitung darauf unterstützen.
Für Berufseinsteigende:
- Worin besteht der Unterschied zwischen DevOps und agilen Methoden?
Erwartete Antwort: Folgende sind die wesentlichen Unterschiede:
- DevOps schlägt die Brücke zwischen allen an der Software-Entwicklung und Wartung beteiligten Teams. Agile dagegen weist verschiedenen Teams bestimmte Aufgaben zu.
- Bei DevOps liegt der Schwerpunkt auf Konsistenz, Stabilität und Automatisierung. Bei agilen Ansätzen stehen stattdessen Flexibilität und iterative Entwicklung im Mittelpunkt.
- DevOps umfasst den gesamten Software-Workflow, von der Konzeption bis zur Auslieferung der Ergebnisse und der Wartung. Die agile Entwicklung endet üblicherweise, wenn der Code fertiggestellt ist.
- Welche Rolle spielen kontinuierliche Tests?
Erwartete Antwort: Kontinuierliche Tests bedeutet, dass die Software in jeder Phase des Entwicklungszyklus häufig auf Bugs getestet wird. Dabei geben verschiedene Stakeholder einander kontinuierliches Feedback und die Entwickler:innen können die Qualität der Software im Laufe des Verfahrens bewerten.
- Welche Rolle spielen Automatisierungstests?
Erwartete Antwort: Bei Automatisierungstests werden Skripte automatisch überprüft und bewertet, um sicherzustellen, dass das verwendete Programm verifiziert ist. Dabei ist keine menschliche Beteiligung erforderlich, weshalb Automatisierungstests viel Zeit sparen.
- Was bedeutet Branching?
Erwartete Antwort: Entwickler:innen verwenden die Technik Branching in Versionsverwaltungssystemen, um Quellcode zu kopieren und so zwei Versionen zu erstellen, die separat entwickelt werden. Diese Entwicklungszweige (Branches) können unabhängig voneinander entwickelt werden, ohne die Codebasis zu beeinträchtigen, was die Zusammenarbeit vereinfacht.
- Was wissen Sie über Jenkins?
Erwartete Antwort: Jenkins ist das beliebteste CI/CD-Tool, das derzeit verfügbar ist (CI/CD steht für „continuous integration and continuous delivery“, kontinuierliche Integration und kontinuierliche Auslieferung). Viele, wenn nicht sogar alle, DevOps-Teams greifen auf Jenkins zurück, um die Teile der Software-Entwicklung zu automatisieren, die mit dem Aufbau, Testen und Deployment von Anwendungen in Verbindung stehen.
- Welche Vorteile bietet die Versionsverwaltung?
Erwartete Antwort: Versionsverwaltungssysteme steigern die Effizienz der Programmierung. Dies wird durch folgende Aspekte erzielt:
- Rückverfolgbarkeit: Änderungen am Code von allen Entwickler:innen können nachvollzogen werden, wodurch der Verlauf deutlich ist und die Funktionalität der Software verbessert werden kann.
- Branching: Entwickler:innen können unabhängig am Code arbeiten, ohne die Arbeit ihrer Mitarbeitenden beeinträchtigen.
- Fehlerreduzierung: Die Ursache von Software-Bugs und Duplikationen werden aufgedeckt.
Fortgeschrittene und Profis
- Welche Herausforderungen bestehen bei der Erstellung von DevOps-Pipelines?
Erwartete Antwort:
Eine Methode zum Umgang mit Produkt-Releases in CI-Umgebungen sind Feature Flags.
Wenn die Migration einer Datenbank gescheitert ist, jedoch als geplanter Job ausgeführt wurde, kann das System jetzt in einem unbrauchbaren Zustand sein.
- Wie kommunizieren Container in Kubernetes?
Erwartete Antwort: Ein Pod ist eine Gruppe aus einem oder mehreren Containern in Kubernetes und enthält normalerweise mehrere Container. Pods haben eine flache Netzwerkhierarchie innerhalb eines Overlay-Netzwerks und kommunizieren in flacher Weise miteinander. Theoretisch kann also jeder Pod innerhalb des Overlay-Netzwerks mit jedem anderen Pod kommunizieren.
- Wie kann die Kommunikation zwischen Kubernetes-Pods eingeschränkt werden?
Erwartete Antwort: Je nachdem, ob das verwendete CNI-Netzwerk-Plug-in die Netzwerkrichtlinien-API von Kubernetes unterstützt, können Sie Netzwerkrichtlinien in Kubernetes festlegen, die den Netzwerkzugriff beschränken.
Richtlinien können den Zugriff auf bestimmte IP-Adressen, Porte und/oder Selektoren beschränken.
- Was sind die beiden hauptsächlichen Branching-Strategien?
Erwartete Antwort:
Release-Branching, bei dem für ein potenzielles neues Release ein Entwicklungszweig (Branch) erstellt wird,
Feature-Branching, bei dem für bestimmte Funktionen oder Aufgaben Entwicklungszweige (Branches) erstellt werden.
- Wie wird eine Hybrid-Cloud aufgebaut?
Anmol Nagpals Antwort:
Beim Aufbau einer Hybrid-Cloud müssen wir zunächst definieren, welche Art von Daten im Rechenzentrum ausgeführt werden und wie kritisch sie sind. Angenommen, wir wollen die Cloud mit AWS verbinden. Wir haben dann zwei Möglichkeiten: Wir können uns für eine Site-to-Site-VPN entscheiden, die kostengünstiger und einfach einzurichten ist. Die zweite Möglichkeit ist Direct Connect. Es ist stabiler, aber auch teuer und zeitaufwendig.
Anmol Nagpal
- Was ist der wesentliche Unterschied zwischen Asset-Management und Konfigurationsmanagement?
Erwartete Antwort: Konfigurationsmanagement bezeichnet das Management von Assets als Einheiten innerhalb der Software-Entwicklungs-Pipeline. Dabei werden die Richtigkeit und Zuverlässigkeit verschiedener Konfigurationsobjekte sowie deren Beziehungen zueinander geprüft.
Sie können die Qualifikation der Bewerbenden auch sicherstellen, indem Sie Fragen zu bestimmten Situationen stellen. Wie würden die Kandidat:innen vorgehen und mit Mitarbeitenden aus verschiedenen Abteilungen kommunizieren? Sie könnten auch fragen, womit die Bewerbenden sich als DevOps-Engineers am liebsten beschäftigen oder mit welchen Herausforderungen sie in ihrer aktuellen Rolle konfrontiert waren. Fragen wie diese bieten Ihnen einen Einblick darin, wie die Bewerbenden im Team arbeiten, was eine unverzichtbare Fähigkeit für DevOps-Engineers darstellt.
Nagpal schlägt noch einige weitere Fragen vor, die er Entwickler:innen vor der Aufnahme in sein Team stellen würde. Diese gehen über das Erfragen von Softskills und technischen Fähigkeiten hinaus.
„Ich würde die Bewerbenden fragen, was für sie bei der Arbeit in DevOps das Beste und das Schlimmste ist. Ob sie gerne spät abends arbeiten oder am Wochenende verfügbar sind. Ich würde auch gerne wissen, was sie in ihrer Freizeit machen: ob sie Tech-Blogs lesen oder PoC durchführen.“
Anmol Nagpal
Weitere Fragen von Nagpal:
-
Was war das Beste, das Sie in Ihrem letzten Projekt/Ihrer letzten Anstellung gemacht haben?
-
Was war der größte Fehler, den Sie in Ihrer Karriere im DevOps-Bereich begangen haben?
-
Erlernen Sie gern neue Tools und Technologien?
Mögliche Herausforderungen bei der Einstellung von DevOps-Engineers
Die Einstellung eines DevOps-Engineers ist eine weitreichende Entscheidung. Einerseits können Sie das enorme Potenzial des DevOps-Prozesses nicht ignorieren: Erwiesenermaßen ist es eine großartige Möglichkeit, um die Software-Entwicklung und den Bereitstellungsprozess zu verwalten. Andererseits ist der Einstellungsprozess komplexer als der von Software-Entwickler:innen oder System-Admins.
Woher wissen Sie, ob Ihr Team bereit ist für diese Position? Wie können Sie sicherstellen, dass Sie die richtige Person für den Job finden? Beherzigen Sie bei der Einstellung eines DevOps-Engineers die folgenden Aspekte sowie Tipps, um sicherzustellen, dass Ihr Team auf diese Art der Zusammenarbeit vorbereitet ist.
-
Die erste Herausforderung ist der Zeitaufwand für die Suche nach und die Beurteilung von Kandidat:innen. Es kann Wochen oder gar Monate dauern, über andere Kanäle eine Person mit den richtigen Fähigkeiten, Erfahrungen und der passenden Persönlichkeit zu finden.
-
Eine weitere Herausforderung ist der Umgang mit den Erwartungen Ihres Unternehmens und des Tech-Talents. Einerseits müssen Sie sicherstellen, dass die Anforderungen Ihres Unternehmens erfüllt werden, andererseits, dass Sie Ihre wertvolle Zeit nicht mit Bewerbenden verschwenden, die am Ende am falschen Platz sind.
-
Sie müssen die richtige Person finden. Viele Unternehmen, vor allem in der Gründungsphase, verfügen nicht über die notwendigen Ressourcen für eine gründliche Suche oder ein konkurrenzfähiges Gehalt. Darum kann es länger als erwartet dauern, die richtige Person für den Job zu finden – oder schlimmer noch, Sie engagieren am Ende jemanden, der Ihre Anforderungen bei Weitem nicht erfüllt.
-
Darüber hinaus sollten Sie jemanden einstellen, der gut mit den Leuten auskommt, die bereits im Team arbeiten. Ein neues Teammitglied sollte sich nahtlos in das Team einfügen und keine Probleme für andere verursachen oder ein Bürodrama inszenieren.
-
Die Gehaltsentscheidung kann ein riesiges Problem darstellen. Wenn Sie mit einer Personalvermittlung oder Headhunters arbeiten, haben die häufig ihre eigenen Vorstellungen davon, was DevOps-Engineers kosten, und versuchen Ihnen vielleicht ein viel zu hohes Gehalt aufzubrummen.
-
Wenn Sie einen DevOps-Engineer von einem anderen Unternehmen einstellen, sollten Sie sicherstellen, dass die Fähigkeiten der Person Ihren Anforderungen entsprechen. Manche Unternehmen haben ihre eigenen Tools entwickelt, die sie für die verschiedensten Zwecke einsetzen.
-
Die letzte Herausforderung steht nach der Einstellung und dem Onboarding des neuen Teammitglieds bevor: die Aufrechterhaltung seiner Motivation und Produktivität während der Zeit in Ihrem Unternehmen. Das ist nicht immer einfach, weil es dabei um die Leitung mehrerer Abteilungen und die Arbeit mit Personen mit verschiedenen Erfahrungen und Fähigkeiten geht.
Das Einstellungsverfahren für DevOps-Engineers kann also kompliziert sein, es ist aber auch notwendig, um mit den Entwicklungen der heutigen Geschäftswelt Schritt zu halten. Mit der richtigen Person kann Ihr Unternehmen wachsen und seine Gewinne steigern. Gleichzeitig sparen Sie langfristig Geld, indem Sie sicherstellen, dass alles reibungs- und problemlos läuft.
Fazit
DevOps-Engineers sind brillante Personen mit vielfältigen Kenntnissen in den Bereichen Programmierung, Entwicklung und Infrastruktur. Ihre Arbeitsaufgaben fallen je nach den Anforderungen ihres Teams unterschiedlich aus, sie behalten aber dennoch den Überblick über alles, was zum DevOps-Bereich gehört. Darum ist es zwar schwierig, gute DevOps-Engineers zu finden und einzustellen, doch es ist es wert – denn ihre Expertise sind der Grundstein dafür, dass ein Unternehmen seine neu entwickelten Technologien zum Erfolg führen kann.
Ohne Zweifel ist der Arbeitsmarkt für DevOps-Engineers schon heute hart umkämpft und das wird sich in Zukunft noch verstärken. Da die technologische Landschaft in ständigem Wandel begriffen ist, lässt sich nur schwer voraussagen, welche Fähigkeiten in Zukunft am meisten verlangt werden. Wenn Sie gegenüber Ihrer Konkurrenz einen Vorsprung erhalten möchten, empfiehlt es sich, baldmöglichst ein DevOps-Talent für Ihr Team zu finden.
Engagieren Sie noch heute Ihr DevOps-Talent und Sie können zusehen, wie Ihre Projekte zu fantastischen Erfolgen führen!