Wer einmal in einem Unternehmen mit eigener IT-Abteilung gearbeitet hat, erinnert sich bestimmt noch an den Systemadministrator: Er tauchte immer dann auf, wenn es galt, das neue Windows-Update oder eine Antivirensoftware zu installieren, sorgte dafür, dass die Unternehmenswebsite online war und E-Mail-Konten eingerichtet wurden. In unserer immer digitaler werdenden Welt, in der Online-Shops auch via App abrufbar sind, Datenbanken in virtuellen Clouds liegen und die technischen Herausforderungen immer komplexer werden, wird der Systemadministrator zunehmend vom DevOps-Engineer begleitet. Im besten Fall löst dieser Probleme schon, bevor sie auftreten.
DevOps steht für „Development & Operations“, zu Deutsch „Entwicklung und Betrieb“. Tatsächlich agiert der DevOps Engineer jedoch an der Schnittstelle dieser beiden wichtigen Bereiche. Die Lauffähigkeit hochkomplexer, aus unzähligen Komponenten bestehender Software stellt er nicht selbst sicher, vielmehr entwicklet er Programme, die alle Prozesse automatisiert prüfen und Alarm geben, sobald sie einen Fehler oder ein Warnsignal registrieren. Ist der Speicher überlastet, bricht die Netzwerkverbindung ab oder gehen plötzlich überdurchschnittlich viele E-Mails ein? Entsprechende Warnmeldungen gehen anschließend an die zuständigen Entwickler, die den vermeintlichen Fehler prüfen und gegebenenfalls beheben. Sollte es dafür nötig sein, Programmkomponenten neu aufzusetzen, kümmert sich der DevOps Engineer um das sogenannte Deployment: So nennt man die saubere, geordnete Installation der neuen Programmkomponenten. Das kann man sich wie bei der Renovierung des Eigenheims vorstellen, bei der auch nicht wahllos Wände ein- oder Fußböden rausgerissen werden können, da sonst im schlimmsten Fall das ganze Gebäude einstürzt. Und natürlich müssen anschließend auch die automatisierten Tests wieder angepasst werden.
Aber der DevOps Engineer ist weitaus mehr als ein IT-Hausmeister, der einen Handwerker ruft, sobald es „echte“ Arbeit gibt. Seine Arbeit fängt schon vor der Inbetriebnahme eines Systems an, nämlich mit der Abwicklung von Testläufen, bei der Programme auf Herz und Nieren geprüft werden, noch bevor sie das Licht der Welt erblicken. Die große Kunst besteht hier natürlich darin, dass diese Tests dem späteren Gebrauch einer Software möglichst nahekommen, wenn unter Umständen tausende von Usern gleichzeitig auf sie zugreifen. Im besten Fall verfügt der DevOps Engineer über große Erfahrung mit verschiedenen Systemen, einen scharfen, analytischen Verstand und Programmierkenntnisse.
Bei App Logik beschäftigen wir aktuell mehrere Mitarbeiter, die ausschließlich als DevOps Engineers für uns tätig sind und dafür sorgen, dass die Software, die wir für unsere Kunden entwickelt haben, perfekt läuft. Aber sie prüfen auf Anfrage auch „fremde“ Systeme, übernehmen ihre Überwachung und kümmern sich, wenn nötig, mit unseren Entwicklern um die Fehlerbehebung. Das machen wir allerdings meist unsichtbar, indem wir über das Netz auf Ihre Rechner zugreifen. Unser DevOps Engineer steht also garantiert nicht überraschend mit einer Windows-CD-Rom neben Ihrem Schreibtisch. Auch das unterscheidet ihn vom Systemadmnistrator.
Viele Grüße,
Christopher Borchert