Definition

DevOps-Ingenieur

Ein DevOps-Ingenieur ist ein IT-Fachmann, der mit Softwareentwicklern, Systemadministratoren und anderen Mitarbeitern der Produktions-IT zusammenarbeitet, um Code-Releases und Deployments zu beaufsichtigen. Die Rolle erfordert jemanden, der über relevante Hard und Soft Skills verfügt, um die traditionellen Barrieren zwischen Softwareentwicklung, Qualitätssicherung (QS), Testing und IT-Operations-Teams zu überwinden und eine kollaborative, ganzheitliche Umgebung zu fördern.

Rollen und Verantwortlichkeiten eines DevOps-Ingenieurs

Ein DevOps-Ingenieur muss wissen, wie man die IT-Infrastruktur verwaltet, die Softwarecode in dedizierten, mandantenfähigen oder hybriden Cloud-Umgebungen unterstützt. Er muss möglicherweise Ressourcen bereitstellen, ein geeignetes Bereitstellungsmodell auswählen, das Testprotokoll zur Validierung jeder Version steuern und die Leistung nach der Veröffentlichung überwachen. Zu den Aufgaben gehört auch die Vorbereitung von Testdaten, die Analyse der Ergebnisse, die Behebung von Problemen und die Kommunikation von Problemen zurück an die Softwareentwickler.

Der DevOps-Ansatz zur Softwareentwicklung zielt auf häufige, inkrementelle Änderungen an Codeversionen ab, was häufige Bereitstellungs- und Testverfahren bedeutet. Obwohl DevOps-Ingenieure selten von Grund auf neu programmieren, müssen sie die Grundlagen der Softwareentwicklungssprachen verstehen und mit den Entwicklungs-Tools vertraut sein, die zur Erstellung von neuem Code oder zur Aktualisierung von bestehendem Code verwendet werden.

Ein DevOps-Ingenieur arbeitet mit Entwicklungsmitarbeitern zusammen, um die notwendige Codierung und Skripterstellung in Angriff zu nehmen, um verschiedene Anwendungselemente wie APIs, Bibliotheken und Software Development Kits (SDKs) zu verbinden und andere Komponenten wie SQL-Datenmanagement- oder Messaging Tools zu integrieren, die DevOps-Teams benötigen, um die Softwareversion auf Betriebssystemen und der Produktionsinfrastruktur auszuführen.

Der Schwerpunkt eines DevOps-Ingenieurs liegt auf der Automatisierung und Wartung in der Live-Umgebung, daher findet man häufig Jobrollen, die die Automatisierung und Wartung von Softwareprodukten, -systemen und -diensten betonen.

Ein DevOps-Ingenieur übernimmt zum Beispiel folgende Aufgaben:

  • Er automatisiert und pflegt eine Big-Data-Build-Pipeline;
  • er leistet Bereitschaftsdienst für die Systemverfügbarkeit;
  • er entwickelt und beschafft Anwendungs- und Systemverwaltungs-Tools, die den manuellen Aufwand verringern;
  • er implementiert automatisierte Managementfunktionen wie Leistungsüberwachung, Diagnosen sowie Failover- und Verfügbarkeitsfunktionen; und
  • er bewertet Risiken für alle Änderungen, während gleichzeitig eine hohe Verfügbarkeit innerhalb der Umgebung aufrechterhalten wird.

DevOps-Fähigkeiten, Ausbildung und Zertifizierungen

Die Rolle des DevOps-Ingenieurs lässt sich nicht auf eine bestimmte Laufbahn festlegen; Fachleute entwickeln sich in diese Position aus einer Vielzahl von Hintergründen.

Ein DevOps-Ingenieur kann zum Beispiel als Softwareentwickler beginnen, der Aspekte des IT-Betriebs überwacht. Umgekehrt kann ein DevOps-Ingenieur von einer Systemadministratorrolle aufsteigen, weil er Kenntnisse über Codierung, Skripting, Integration und Testen erworben hat.

Zwischen den Stellenbeschreibungen von DevOps-Ingenieuren und Systemadministratoren kann es je nach Unternehmen und dessen technischen Anforderungen einige Überschneidungen geben, aber es ist der DevOps-Ingenieur, zu dessen Aufgaben es gehört, Geschäftsprozesse nach Bedarf zu ändern, um organisatorische Probleme zu lösen und die Geschäftsergebnisse zu verbessern.

DevOps im Vergleich zu verwandet Berufsfeldern
Abbildung 1: Wie sich DevOps von anderen Berufsfeldern unterscheidet.

Trotz des breiten und vielfältigen Umfangs der DevOps-Rollen gibt es einige Fähigkeiten und Eigenschaften, die Bewerber bei der Jobsuche hervorheben sollten, wie zum Beispiel:

  • einen umfassenden Hintergrund in der Administration von Betriebssystemen, wie Linux und Windows;
  • ausgeprägte Erfahrung mit einer Reihe von Automatisierungs- und Konfigurationsmanagement-Tools wie traditionellen Skripten sowie spezifischeren Tools wie Puppet und Chef;
  • ein klares Verständnis von Kodierung und Scripting mit gängigen Sprachen wie PHP, Python, Perl und Ruby;
  • Kenntnisse in mindestens einer wichtigen Programmiersprache, wie zum Beispiel C++ oder Java;
  • die Fähigkeit, verschiedene Open-Source-Technologien und Cloud-Dienste zu identifizieren, zu bewerten und zu integrieren;
  • einen starken IT-Hardware- und Betriebshintergrund mit praktischer Erfahrung in der Installation, Bereitstellung und Überwachung von Servern, Speicher- und Netzwerkgeräten; dies wird in der Regel durch Kenntnisse von IT-Best-Practices für fehlertoleranten, hochverfügbaren Betrieb ergänzt;
  • unterstützende und kollaborative Managementfähigkeiten in einer Teamumgebung sowie nachgewiesene Managementfähigkeiten im Umgang mit Kunden;
  • ausgeprägte Kenntnisse von Virtualisierungstechnologien, wie zum Beispiel VMware vSphere für virtuelle Maschinen (VM), sowie Erfahrung mit Container-Technologien, wie zum Beispiel Docker und Kubernetes;
  • nachgewiesene Erfahrung mit CI/CD-Tools, wie Microsoft GitHub, Atlassian Jira und Confluence, Red Hat Ansible, Prometheus und Jenkins;
  • detaillierte, praktische Erfahrung mit Public-Cloud-Ressourcen und -Diensten wie AWS, Microsoft Azure und Google Cloud;
  • Erfahrung mit einer Vielzahl von IT-Monitoring- und Management-Tools wie Cloudflare und Datadog; und
  • Kenntnisse in der Fehlersuche und Behebung von technischen Problemen in Test- und Produktionsumgebungen.

Einige Unternehmen, die DevOps-Ingenieure einstellen, stellen möglicherweise zusätzliche Anforderungen, wie zum Beispiel eine Sicherheitsüberprüfung, weshalb es wichtig ist, die spezifische Stellenausschreibung für jede Rolle oder jeden Arbeitgeber zu überprüfen. Die formalen Ausbildungs- und Schulungsanforderungen für DevOps-Rollen sind in der Regel gering und umfassen einen Bachelor-Abschluss in Informatik oder Ingenieurwesen sowie eine AWS- oder Azure-Zertifizierung für Public-Cloud-Dienste.

Diese Definition wurde zuletzt im Juli 2021 aktualisiert

Erfahren Sie mehr über Softwareentwicklung