vege - stock.adobe.com
So sieht die Arbeit eines DevOps-Administrators aus
Wer kennt die Aufgaben eines DevOps-Administrators besser, als sie selbst? Wir haben verschiedene Experten gefragt, wie es ist, als Admin in einem DevOps-Team zu arbeiten.
Softwareentwicklung. Systemverwaltung. Kommunikationsfähigkeit. Diese drei Fähigkeiten muss ein DevOps-Admin in sich vereinen. Doch auch jenseits der fachlichen Qualifikationen ist die Rolle herausfordernd und viele Unternehmen unterscheiden sich stark in ihren Anforderungen an Bewerber für ihre DevOps-Teams.
Für Bewerber ist es daher manchmal schwierig, einzuschätzen, was für Personalverantwortliche wichtig ist und wie ihre Arbeit in den Unternehmen aussehen wird. Um die Verwirrung um die Rolle des DevOps-Administrators zu klären, haben wir mit einigen Experten gesprochen, die diese Arbeit aus eigener Erfahrung kennen.
Übergreifende Qualifikationen
Ein DevOps-Admin-Job kann zwar von der Einstiegs- bis zur Führungsebene reichen, einige Anforderungen bleiben jedoch gleich. So setzen die meisten Stellenauschreibungen entweder einen Abschluss in Informatik voraus oder eine Ausbildung zum Fachinformatiker – die meisten legen aber besonderen Wert auf einschlägige Berufserfahrung, insbesondere im Bezug auf die Cloud.
„Ich denke, dass die wichtigsten Fähigkeiten [für einen DevOps-Administrator] die Vertrautheit mit Cloud-Anbietern und -Infrastruktur sind“, sagt Matthew Grasberger, DevOps-Ingenieur bei Imperfect Foods. „In meiner bisherigen DevOps-Rolle habe ich größtenteils mit der Cloud gearbeitet – in unserem Fall AWS – und viele Vorgänge automatisiert, die Entwickler sonst händisch in AWS durchführen müssten.“
Zu den beliebten Anbietern gehören neben AWS Microsoft Azure, Google Cloud oder kleinere, spezialisierte Cloud-Anbieter. Sie unterscheiden sich zwar in den Details, in der Regel lassen sich aber einige Kenntnisse und Fähigkeiten von Plattform zu Plattform übertragen. So werden beispielsweise Programmiersprachen, APIs und Container gemeinsam genutzt.
„Vor ein paar Jahren hätten wir DevOps-Ingenieure oder DevOps-Administratoren als jemanden beschrieben, der eine CD-Pipeline [Continuous Deployment] aufbaut und pflegt; das war ihre Hauptaufgabe“, sagt Mirco Hering, Global Transformation Lead bei Accenture. Um diese Aufgabe zu erfüllen, müssen sie mit Tools und Konzepten wie Jenkins, Automatisierung, Perl und Bash vertraut sein. „Was sich geändert hat, ist, dass jetzt viel mehr mit Cloud-nativen Lösungen gearbeitet wird. Daher denke ich, dass man heutzutage Fähigkeiten in der Azure DevOps-Plattform oder in den AWS- oder Google-Alternativen haben muss.“
In den letzten Jahren hat Grasberger auch ein Wachstum bei der Containerisierung beobachtet. „Docker ist, zumindest meiner Erfahrung nach, inzwischen so etwas wie der De-facto-Standard für Anwendungen. Daher gehen Unternehmen zu Kubernetes, Elastic Container Service und vielen anderen Anbietern über, mit denen sie einfach einen Docker-Container zur Verfügung stellen und definieren können, wie der Container ausgeführt werden soll“, sagt er.
Auf die Frage nach den drei wichtigsten Fähigkeiten, die ein DevOps-Administrator haben sollte, nannte Hering folgende:
1. Neue Fähigkeiten erlernen
„Die DevOps-Plattform wird immer breiter“, so Hering. Die Bereitschaft, neue Technologien zu erlernen, ist ein größerer Vorteil als die Spezialisierung auf nur ein Tool. Mitarbeiter können dies beispielsweise mit Zertifikaten nachweisen. Eine Einzelzertifizierung schadet nicht, doch besonders, wer Zertifikate auf einer Plattform über ein weites Feld – von Administratoren- über Entwickler- bis hin zu Sicherheitsthemen erworben hat, beweist, dass er bereit ist, sich weiterzubilden.
2. Automatisieren
Automatisierung ist für DevOps eine absolute Kernkompetenz. „Die meisten Leute, mit denen ich arbeite und mit denen ich gerne arbeite, haben kein Problem damit, von Jenkins auf DevOps umzusteigen“, sagt Hering. „Sie verstehen, wie Automatisierung funktioniert, wie man Variablen abstrahieren muss, wie man über die Verwendung von Konfiguration für alles nachdenken muss, anstatt Dinge hart zu kodieren."
3. Tief ins Thema einsteigen
So wichtig ein breites Wissen und die Bereitschaft zu lernen auch sind, Erfahrungen und Kenntnisse mit einem Tool oder einer Plattform wie Azure DevOps, Ansible oder Terraform runden das Skillset eines DevOps-Admins ab.
Verantwortungsbereich
„Ein DevOps-Ingenieur wird in vielen Rollen vielleicht nicht an vorderster Front, aber manchmal als erster Ansprechpartner für bestimmte Probleme fungieren“, so Grasberger. Die Vertrautheit mit dem Anwendungs-Stack Ihres Unternehmens ist für diese Rolle entscheidend. In der Praxis bedeutet das, dass Sie beispielsweise Ihre Protokolle überwachen und erkennen, dass eine Datenbank überlastet ist.
Auch wenn sich der Anwendungs-Stack von Unternehmen zu Unternehmen unterscheidet, ist die Erfahrung mit gängigen Sprachen wie Python, Bash und JavaScript sowie Betriebssystemen wie Linux übertragbar.
Die Verantwortung eines DevOps-Administrators hört nicht bei der Anwendung auf, sondern erstreckt sich auf die Infrastruktur. Für Mitarbeiter, die sich für diese Rolle interessieren, bedeutet das, dass sie ihre Kenntnisse über Cloud-Plattformen und -Anwendungen erweitern müssen. Oft haben sie es im Unternehmen mit hybriden Umgebungen zu tun. „Sie werden also VMware haben, Sie werden die Cloud haben, und dann bauen und betreuen Sie eine Umgebung über beide Bereiche hinweg“, sagt Hering.
Bleiben Sie am Ball
Die Automatisierung ist ein wichtiger Teil der DevOps-Rolle und ihre wachsende Popularität und Funktion sollte aktuelle und zukünftige DevOps-Admins aufhorchen lassen.
„Ich denke, dass viele Unternehmen bereits [vollautomatische Deployments] durchführen, bei denen ein Entwickler einfach ein Feature schreiben und seinen Code hochladen kann. Die gesamte Pipeline enthält automatische Tests und kann Änderungen vollständig validieren – so dass bei einer kleinen Anpassung eigentlich überhaupt kein Eingreifen erforderlich ist, um in die Produktion zu gehen“, sagt Grasberger. „Facebook, Google und andere Unternehmen machen das bereits erfolgreich, zumindest behaupten sie das, und ich denke, dass sich die meisten Betriebe in diese Richtung bewegen werden.“
Aber der Weg dorthin – insbesondere für kleinere IT-Abteilungen – wird holprig. Für vollautomatische Deployments fehlen hier Standards für die Umsetzung sowie Werkzeuge, die die Gültigkeit von Tests erkennen können, erklärt Grasberger. Künstliche Intelligenz (KI) und maschinelles Lernen würden dabei helfen, dieses Potenzial zu erschließen; die zugehörigen Angebote sind aber noch nicht reif genug.
Ziehen Sie Infrastruktur als Code in Erwägung
„Infrastructure as Code Tools sind unglaublich beliebt, und das aus gutem Grund“, so Grasberger. „Ein Unternehmen, das schnell loslegen will, muss sich mit ihnen nicht um das Nachverfolgen von Änderungen kümmern. Größere Organisationen sollten diese Änderungen und ihre Auswirkungen auf ihre Cloud-Konfigurationen hingegen sehr genau überwachen“, stellt er klar. Terraform ist ein beliebtes Infrastructure-as-Code-Tool, aber es gibt auch Alternativen, wie Ansible und ARM-Templates.
DevOps ist in erster Linie eine Kultur. Damit ein DevOps-Administrator diese Kultur unterstützen kann, muss er die Art und Weise ändern, wie die Mitarbeiter Projekte entwickeln. Visualisierungsfähigkeiten können hier eine Stütze sein. „Wir sprechen sehr oft in so abstrakten Begriffen, dass es schwierig ist, ihnen zu folgen“, so Hering. Die Visualisierung von Prozessen, wie zum Beispiel die Abbildung von Wertströmen oder Flowcharts von Anwendungen und Infrastrukturen, hilft bei der Vermittlung von Zielen, sei es beim Implementieren von Technologien oder Umstellen von Arbeitsabläufen. „Die Fähigkeit, dies in ein Bild zu packen und mehr Menschen zu vermitteln, was man zu erreichen versucht, ist meiner Meinung nach sehr mächtig.“
Die Auseinandersetzung mit den Daten
Hering sieht das Verständnis von Daten – insbesondere der Metriken von DevOps-Plattformen und -Anwendungen – und ihre Nutzung zur Entscheidungsfindung als einen der nächsten Schritte in der Entwicklung der Rolle des DevOps-Administrators. „Das könnten Entscheidungen über proaktive Sicherheitsmaßnahmen sein, zum Beispiel um zu verhindern, dass ein Log4J um die Ecke kommt – und wir es dann sehr schnell überall beheben müssen.“
Oder Admins werden untersuchen, wie Daten durch eine Anwendung fließen, um zu sehen, welche Komponenten stärker belastet werden als andere, und darauf zu reagieren.
„Viele Jahre lang ging es darum, wie schnell wir eine Funktion herausbringen können. Jetzt sehen wir, dass immer mehr Unternehmen messen, welche Funktionen sie überhaupt noch weiter benötigen und ob ihre Kunden sie nutzen.“
Wie ändert Home Office den Arbeitsalltag?
Die Pandemie hat viele Menschen dazu veranlasst, aus der Ferne zu arbeiten, und obwohl es greifbare Vorteile gab – wie einen größeren Talentpool – wollen manche Unternehmen ihre Mitarbeiter zurück ins Büro holen.
„Ich habe vor etwa zwei Jahren angefangen, bei [Imperfect Foods] zu arbeiten, und seitdem arbeite ich komplett remote. Zu diesem Zeitpunkt war ich in einer DevOps-Ingenieur-Rolle. Ich denke, dass es für DevOps-Ingenieure ganz normal ist, remote zu arbeiten", so Grasberger. „Aus kulturellen Gründen werden manche Mitarbeiter es vorziehen, vor Ort zu sein oder nicht, aber zumindest für mich gibt es keinen erkennbaren Vorteil, wenn ich vor Ort bin.“
Unternehmen stehen bei der Telearbeit vor einer Reihe anderer Herausforderungen. Wenn Mitarbeiter außerhalb arbeiten, spielt die Sicherheit eine noch größere Rolle. Unternehmen müssen sicherstellen, dass sie über Sicherheitsprofile für ihre Geräte verfügen und die nötige Bandbreite zur Verfügung haben, um Remote-Mitarbeiter zu unterstützen, erklärt Hering. Abhängig von Variablen wie der Größe der Belegschaft und deren Standort bieten sich Technologien wie VPNs, Firewalls oder Zero-Trust-Netzwerkzugriff an.
Erwarten Sie das Unerwartete
Selbst mit jahrelanger Erfahrung müssen Sie sich auf Überraschungen einstellen.
„Das Überraschendste ist, wie oft etwas schief geht“, so Grasberger über seine Tätigkeit als DevOps-Ingenieur. „Software ist von Natur aus fehleranfällig. Es ist egal, um welche Software es sich handelt; irgendwann wird sie versagen. Nicht immer gibt es eine zufriedenstellende Lösung.“
Ein DevOps-Administrator muss flexibel und bereit sein, mit allem umzugehen, was sich ihm in den Weg stellt, unabhängig davon, ob es sich um ein Problem mit dem eigenen Software-Stack oder einem Drittanbieterdienst handelt.