Was macht ein DevOps Engineer?

Doppelagent:in im Auftrag der Agilität

Bylle Bauer
Person vor Tastatur

DevOps adoption means that you are willing to change fast, develop fast, test fast, fail fast, recover fast, learn fast and push the product/features fast to the market.

DevOps ist eins der Buzzwords überhaupt, wenn von agiler Entwicklung die Rede ist. Zu Recht, denn die Vereinigung der Bereiche Development und Operations ermöglicht die rasche Auslieferung von qualitativ hochwertiger Software, die sich kontinuierlich verbessert.

Doch hinter DevOps steckt viel mehr als nur eine moderne Methode. DevOps ist ein Mindset, das sich auf alle Bereiche eines Unternehmens – seine Kultur, Prozesse und Tools – erstrecken muss. Als solches muss DevOps auch von allen Beteiligten verstanden, akzeptiert und unterstützt werden.

Bevor wir uns Deinen Arbeitsalltag als DevOps Engineer genauer anschauen, wollen wir also nochmal einen kurzen Recap zum Thema DevOps vornehmen:

Was ist DevOps?

Nicht nur wörtlich, sondern auch praktisch bedeutet DevOps die interdisziplinäre Zusammenführung der Fachbereiche Entwicklung (Development) und IT-Betrieb (Operations) über den gesamten Lifecycle eines Softwareprodukts. Mit DevOps sollen traditionelle Scherereien wie unrealistische Deadlines, unklare Anforderungen oder zu späte Änderungswünsche der Kund:innen vermieden werden.

Dahinter steht die Philosophie, dass die Zusammenarbeit aller am Auslieferungszyklus eines Produkts Beteiligten, also von “Dev” – Entwicklern, aber auch Testerinnen/QA – und “Ops” – System Engineers, IT-Security-Spezialistinnen, Admins usw. – eine Reihe von Vorteilen mit sich bringt:

  • kürzere Releasezyklen

  • größere Flexibilität und schnelle Anpassung an sich verändernde Anforderungen

  • rasches Erkennen von Problemen und direkte Lösung im DevOps-Team

  • kontinuierliche Verbesserung von Code und Infrastruktur durch Versionierung und gemeinsame Verwaltung

  • effizientere Zusammenarbeit durch gegenseitiges Verständnis für die Arbeit der anderen

  • Förderung von Informationsflüssen, Lern- und Experimentierfreude

  • Verantwortungsbereitschaft durch den Blick über den Tellerrand

  • hohe Zufriedenheit der Mitarbeitenden durch Einbeziehung in den Entscheidungsprozess hinsichtlich eingesetzter Tools und eingeschlagener Lösungswege

Im Ergebnis bedeutet das, dass Software nicht nur schneller, sondern in konsistenter Stabilität, hoher Qualität und entlang der Security-Richtlinien ausgeliefert werden kann. Damit das auch wirklich klappt, reicht es nicht, wenn ein Unternehmen sich Teilbereiche von DevOps herauspickt. DevOps muss sich – zumindest in relevanten Unternehmensbereichen – auf die Kultur, die Prozesse und Methoden sowie die eingesetzten Tools erstrecken.

Was sind Deine Aufgaben als DevOps Engineer?

Wenn Du nach einem Job im DevOps-Umfeld suchst, wirst Du neben dem Titel “DevOps Engineer” auch Bezeichnungen wie Agile System Engineer, DevOps Administrator oder DevOps Entwicklerin finden.

Grundsätzlich steigst Du als perfekte Mischung zwischen Developer und Systemadministrator:in in den Ring. Daher kannst Du als DevOps Engineer mitten im Entwicklungsprozess einschreiten, wenn was am Code nicht passt und umgekehrt eine IDE wieder in Gang bringen – Du verstehst eben, worum es insgesamt geht!

  • Das Ops in Dir stellt im Admin-Style ein stabiles, hochverfügbares, performantes und sicheres System zur Verfügung – am besten auf der Basis einer Microservice-Architektur – und kümmert sich um Entstörung sowie Fehlerbehebung, spielt regelmäßige Updates ein und verpasst durch sauberes Monitoring keine Anomalie im Gesamtsystem.

  • Dein Dev-Mind erstellt Skripte und Tools für die agile Entwicklung. Im Rahmen des Developments und der Implementierung von Anwendungen, Softwarekomponenten und Schnittstellen zu Datenbanken oder anderen Applikationen betreibst Du natürlich auch Anforderungsmanagement und schätzt Aufwände.

  • Automatisierung steht auf Deiner To-Do-Liste als DevOps Engineer weit oben. Zum Beispiel programmierst Du Skripte zur Automatisierung, z.B. von Monitoring, Code-Analysen oder Build- und Release-Prozesse entlang einer CI-/CD-Pipeline. Tools wie Gradle, Git, Ansible, Docker, Jenkins oder Kubernetes laufen bei Dir auf Hochtouren, im Idealfall in einer clever verknüpften Toolchain.

  • Auch für das Testing automatisierst Du als DevOps Engineer, was die Platte hergibt. So bringst Du feine Unit-, Integration-, System- und Performancetests aufs Tapet, die Du im Team konzipierst, durchführst und überwachst.

  • Mittels Tools wie Git, Apache Subversion (SVN), CVS oder BitBucket verwaltest Du wie alle Devs den Code in Versionen, wodurch er einfach zu überprüfen und wiederherzustellen ist. Die verschiedenen Quellcode-Branches werden regelmäßig gemerged. Mit einem System zur Versionskontrolle könnt Ihr nicht nur kollaborieren und Aufgaben verteilen, sondern der gesamte Code wird dort gespeichert.

  • Genauso wie Code kannst Du im DevOps-Universum auch Deine Systemressourcen verwalten. Indem Du Infrastructure as Code behandelst, verwaltest Du sie in überprüf- und wiederherstellbaren Versionen, die automatisiert bereitgestellt werden. Der Clou daran: Durch IaC kann Dein Team in Entwicklungs- und Testumgebungen herumbasteln, die mit der Produktivumgebung identisch sind.

  • Zu guter Letzt gehört die Dokumentation zu Deinen Aufgaben als DevOps Engineer. So bewahrst Du das Wissen an zentraler Stelle, wo jeder darauf zugreifen kann. Auch indem Du zu einem späteren Zeitpunkt in Deiner Laufbahn Schulungen oder Coachings zu DevOps-Themen gibst, kannst Du die Fackel weitertragen – und dabei Deinen Fingerabdruck hinterlassen!

Wo kannst Du arbeiten?

Generell kannst Du als DevOps Engineer überall starten, wo agil und nach DevOps entwickelt wird – oder werden soll, denn zu einem späteren Zeitpunkt Deiner Karriere wirst Du DevOps vielleicht als Agile Coach oder Product Owner in Unternehmen etablieren, um nur zwei Deiner zahlreichen Weiterentwicklungsmöglichkeiten als Doppelagent:in im agilen Umfeld zu nennen.

DevOps hat den Sprung vom Hype zum Standard schon so gut wie geschafft. Selbst riesige Unternehmen wie Gigant Amazon, Facebook oder Netflix setzen voll auf DevOps! Dabei spielt die Branche genauso wie die Unternehmensgröße keine Rolle für den Erfolg von DevOps. Auf das Mindset kommt es an! Also entscheide selbst, welche Art von Unternehmen zu Dir passt. Suchst Du die Sicherheit eines Konzerns, die Lockerheit des Startups oder die grüne Spielwiese des Einhorns? Als DevOps Engineer stehen Dir einige Türen offen!

Worauf kannst Du Dich spezialisieren?

DevSecOps

DevSecOps ist eine Erweiterung von DevOps. In diesem Umfeld sind Deine gängigsten Berufsbezeichnungen DevSecOps Engineer bzw. Specialist. Im Gegensatz zum DevOps Engineer liegt hier der klare Fokus auf Security, allerdings im DevOps-Kosmos. Deshalb muss das Verständnis eines DevSecOps Engineers weit über das eines klassischen IT-Security Consultants hinausgehen.

Das bedeutet, dass Du genau wie Dein Team über den ganzen Lebenszyklus hinweg am Start bist. Du führst Audits durch, während DevOps läuft. Denn: Bei kurzen Releasezyklen ist Sicherheit ein echtes Issue. Zum Beispiel hat die Abhängigkeit von Fremdanbietern, die durch die DevOps-Arbeitsweise noch vergrößert wird, fatale Bugs wie Heartbleed oder DROWN attack in unsichere Umgebungen gelassen. Aus Angriffen wie diesen wurde DevSecOps geboren.

Security-Techs wie RASP (Runtime Application Self-Protection), die kontinuierlichen Schutz und eigenständige Angriffsmeldungen bieten und Tools wie SCA (Software Composition Analysis) spielen eine wichtige Rolle für den DevSecOps-Bereich.

Als DevSecOps Engineer musst Du mit den in Deinem Umfeld eingesetzten Programmiersprachen, aber auch mit DevOps-Tools vertraut sein. Du wirst sie nämlich auf Schwachstellen überprüfen, zum Beispiel durch Application Security Testing. Auch ein tiefes Verständnis für Automatisierungswerkzeuge wie Docker oder Kubernetes ist nötig. Grundsätzlich sollte Dir keine Sicherheitslücke entgehen. Wenn das Unternehmen im Cloud-Umfeld arbeitet, bringst Du am besten schon ein bisschen Knowhow oder wenigstens viel Interesse für das Thema mit.

Bist Du ein DevOps Engineer?

Nicht nur Dein Informatik-Studium bestätigt, dass Du Automatisierung und Scripting liebst? Du beherrschst Ruby, Python und Bash oder PowerShell? Dann hast Du ein paar wichtige Voraussetzungen schon mal erfüllt!

Auf der anderen Seite brauchst Du natürlich umfangreiche SysAdmin-Skills und musst das jeweilige OS kennen(lernen) wie Deine Westentasche. Hier solltest Du es auf Hochverfügbarkeit, Performance und Skalierbarkeit von Plattformen, eine sichere Infrastruktur und den stabilen Betrieb der IT-Services anlegen. Dafür nimmst Du das System unter die Lupe und automatisierst, was das Zeug hält.

Manche Unternehmen wollen Zertifikate sehen, die belegen, dass Du Dich in verschiedenen Schwierigkeitslevels zum Thema geschult hast. Dabei musst du nicht nur theoretische, sondern auch praktische Herausforderungen meistern. Für andere steht einzig Dein Talent im Vordergrund – also sei mutig und zeig es!

Grundsätzlich solltest Du als DevOps Engineer eine ziemliche Schwäche für Open Source haben, denn Techs wie OpenStack oder Docker und Tools wie Gradle, SVN, Jenkins oder Git spielen in deinem Umfeld eine wichtige Rolle. Pack noch ein paar Soft-Skills wie eine große Team- und Kommunikationsfreude drauf, und Du bist good to go!

Was kannst Du als DevOps Engineer verdienen?

Schon als Junior fängst Du als DevOps Engineer mit einem durchschnittlichen Jahresgehalt ab ca. 52.200 € brutto an, was sich je nach Unternehmen und Standort auch für alle, die erst frisch ihren Abschluss in der Tasche haben, noch deutlich steigern lässt. Das ist bei Deinem Aufgabenspektrum und der Verantwortung, die Du trägst, absolut gerechtfertigt! Und weil der Job es mit sich bringt, dass Du Dich stetig weiterentwickelst, schlenderst Du mit hieb- und stichfesten Argumenten in jedes Gehaltsgespräch. Mit unserem Gehaltsrechner erhältst Du einen Einblick, wie sich Dein Einstiegsgehalt nach Abschluss, Bundesland, Branche oder auch Unternehmensgröße entwickelt.

TL;DR:
  • DevOps ist ein Mindset, das sich auf alle Bereiche eines Unternehmens – seine Kultur, Prozesse und Tools – erstrecken muss.
  • Nicht nur wörtlich, sondern auch praktisch bedeutet DevOps die interdisziplinäre Zusammenführung der Fachbereiche Entwicklung (Development) und IT-Betrieb (Operations) über den gesamten Lifecycle eines Softwareprodukts.
  • Im Ergebnis ist Deine Software nicht nur schneller, sondern wird in konsistenter Stabilität, hoher Qualität und entlang der Security-Richtlinien ausgeliefert werden.
  • Generell kannst Du als DevOps Engineer überall starten, wo agil und nach DevOps entwickelt wird