Erfahrungsbericht: DevOps Engineer – Zwischen Entwicklung und Administration

Karriere-Ratgeber » Berufsbilder » Erfahrungsbericht: DevOps Engineer – Zwischen Entwicklung und Administration

Der Begriff DevOps setzt sich zusammen aus “Development” und “Operations”, also Software-Entwicklung und (informationstechnischer) Administration. Tätigkeiten, welche diese beiden Aspekte auf “agile” Art und Weise unter einen Hut bringen, werden jener Methode zugeschrieben. Um Agilität zu gewährleisten wird vor Allem eine möglichst vollständige Prozessautomatisierung angestrebt. Hin und wieder wird die gezielte methodische Zusammenarbeit zwischen Entwicklung und IT-Betrieb, abhängig vom genauen Aufgabenfeld auch unter Oberbegriffen wie Systemprogrammierung oder Systems Engineering zusammengefasst.

Die Pflege von IT-Systemen und Systemlandschaften, kann je nach Branche und Unternehmen teils sehr komplex sein. Auch müssen die verschiedensten Versorgungsprozesse verwaltet werden. Bei vielen verschiedenen Umgebungen und einer Vielzahl von Servern würde es sehr viel Zeit kosten alles von Hand aufzusetzen. Schlimmstenfalls könnte ein solcher Prozess Wochen dauern, auch weil vielleicht mehrere Abteilungen involviert sind. Ein agiles Arbeitsumfeld benötigt also ein hohes Maß an Automatisierung, um funktions- und wettbewerbsfähig zu bleiben. Die Lösung lautet in immer mehr Unternehmen: DevOps.

Aufgaben von DevOps

Ein DevOps Engineer muss sich mit der Bereitstellung und Administration der Infrastruktur für Deployment-, Monitoring- und Testautomatisierungen genauso auskennen wie mit Software-Entwicklungs-Lebenszyklen allgemein. Er entwirft, erstellt und wartet Skripte und Entwicklungstools wie Continuous Integration (CI) oder Continuous Delivery (CD), und bindet automatisierte Tests in die agile Softwareentwicklung ein. Durch seine Schnittstellenposition ist es häufig der DevOps Engineer, der zwecks Verbesserung operativer Prozesse agile Methoden der Softwareentwicklung im Unternehmen einführt und weiterentwickelt. Er übernimmt die End-to-End-Verantwortung für Lösungsoptimierungen und hat dabei die strategische Ausrichtung der Firma im Blick.

Bevor DevOps als Methode aufkam, waren die verschiedenen IT-Aufgabenfelder in vielen Unternehmen personell klar getrennt. Eine Position befasst sich in einem solchen Fall beispielsweise nur mit Linux-Servern, eine andere nur mit Windows-Servern. Die Entwickler haben dabei selber oft gar keinen Zugriff auf die Systeme. Sie stehen dann an bestimmten Punkten eventuell vor Problemen wie einer fehlerhaften Konfiguration des Servers, können das Problem aus ihrer Position heraus aber nicht beheben. Der Grundgedanke ist also, dass der Entwickler auch Betreiber ist. Er bringt seine Entwicklung selber online und konfiguriert alles was mit dieser zu tun hat.

Obwohl DevOps Engineers Administrationstätigkeiten durchführen gibt es je nach Unternehmen klare Grenzen zum “reinen” IT-Betrieb. So fallen das Absolvieren von Bereitschaftsdiensten oder die Durchführung von Server-Updates etc. meist nicht ins DevOps-Aufgabenfeld.

Eine Vielzahl an Werkzeugen für DevOps

Im DevOps-Bereich gibt es eine weitläufige Tool-Landschaft, aus welcher sich der DevOps Engineer bedient. Unter den besonders prominenten Tools sind Continuous Integration (CI) und Continuous Delivery (CD). Continuous Integration basiert darauf, dass die Entwickler selber keinen Zugriff mehr auf die Deployment- Server haben. Stattdessen wird Alles in ein Versionierungssystem eingecheckt und z.B. durch Unit Tests automatisiert getestet. Continuous Delivery fügt diesem Prinzip zusätzlich die automatische Auslieferung bzw. Veröffentlichung bei Erreichen bestimmter Metriken hinzu. Auch Container-Technologien gehören zu den Tools eines DevOps Engineers. Hier wird mit sogenannten Containern gearbeitet Das sind abgeschlossenen Testumgebungen in denen alles enthalten ist, was für die jeweilige Software oder Anwendung benötigt wird, inklusive Webserver, virtualisiertem Betriebssystem etc..

DevOps: Voraussetzungen

Um im Bereich DevOps erfolgreich zu sein, muss zunächst Interesse am Prinzip agiler Entwicklung sowie der Verzahnung dieser mit dem IT-Betrieb vorliegen. Engagement stellt zusammen mit erster Erfahrung im Umgang mit den passenden Tools die Grundvoraussetzung dar. Es kann hilfreich sein, die Titel und Aufgabenfelder von passenden Stellenanzeigen zu analysieren, oder nach den Themen einschlägiger Fachkonferenzen zu recherchieren. So ist es möglich sich intensiv mit den wichtigen Methoden und Tools zu befassen. Wer die Idee hinter der Methode nicht nur versteht sondern gegenüber Dritten vertreten kann, hat gute Karten. Natürlich bedarf es auch einer akademischen oder schulischen Ausbildung in einem mit dem Thema verbundenen Bereich wie Informatik, Wirtschaftsinformatik oder Fachinformatik in den Bereichen Systemadministration oder Software- / Anwendungsentwicklung. Schließlich sollte noch Erfahrung vorliegen, die klare Berührungspunkte mit den Themen Development, Operations und Agilität, Datenbanken oder Automatisierung aufweist. Vor Allem in kleineren Unternehmen kann es vorkommen, dass Aufgaben aus den Bereichen Entwicklung und Systemadministration von einer Person übernommen werden. Eine solche Anstellung kann wertvolle Erfahrung für eine spätere Karriere im Bereich der DevOps mit sich bringen. Die Mehrzahl der DevOps Engineers sind studierte Informatiker und Wirtschaftsinformatiker, hier ist oft ein duales Studium möglich, welches einen unkomplizierten und frühen Einstieg in das Berufsleben bieten kann. Da die Berufsaussichten von DevOps Engineers sehr gut sind, bieten sich auch gute Chance für Quereinsteiger, darunter Elektroingenieure, Naturwissenschaftler oder Mathematiker.