
Es gibt keinen besseren Zeitpunkt, um im Leben zu lernen, als heute.
Wir schreiben das Jahr 2019, und das Thema DevOps ist relevanter denn je. Es wird gesagt, dass die Tage der Systemadministratoren vorbei sind, so wie die Ära der Mainframe-Computer zu Ende ging. Ist das wirklich so?
Wie so oft in der IT hat sich die Situation geändert. Die DevOps-Methodologie ist entstanden, aber sie kann nicht ohne jemanden mit den Fähigkeiten eines Systemadministrators, also ohne Ops, existieren.
Bevor der DevOps-Ansatz seine heutige Form annahm, zählte ich mich zur Kategorie Ops. Ich weiß sehr gut, was ein Sysadmin fühlt, wenn er erkennt, wie viel er noch nicht weiß und wie wenig Zeit ihm bleibt, um das zu lernen.

Ist es wirklich so schlimm? Ich würde sagen, dass man einen Mangel an Wissen nicht als großes Problem betrachten sollte. Es ist eher eine berufliche Herausforderung.
Webscale-Produkte basieren auf Linux oder anderer Open-Source-Software, und der Markt bietet immer weniger Spezialisten, die diese betreuen können. Die Nachfrage hat bereits das Angebot an Fachleuten in diesem Bereich überstiegen. Systemadministratoren können nicht einfach weitermachen, ohne ihre Qualifikationen zu verbessern. Sie müssen Fähigkeiten in der Automatisierung entwickeln, um zahlreiche Server/Knoten zu verwalten, und ein gutes Verständnis für deren Funktionsweise haben, um auftretende Probleme zu lösen.
Bevor Sie Mitglied eines DevOps-Teams werden, stehen Ihnen ein recht langer, aber spannender Weg bevor, auf dem Sie neue Technologien und verschiedene Werkzeuge erlernen müssen, die erforderlich sind, um die Systeme nach DevOps-Standards zu betreuen.
Wie kann ein Systemadministrator von den gewohnten Arbeitsmethoden zur neuen DevOps-Konzeption übergehen? Wie immer beginnt alles mit einer Änderung in der Denkweise. Es fällt nicht leicht, von den Methoden abzulassen, die Sie in den letzten zehn oder zwanzig Jahren verfolgt haben, und alles neu zu machen, aber es ist notwendig.
Zunächst ist es wichtig zu verstehen, dass DevOps keine spezifische Position im Unternehmen ist, sondern ein Satz spezifischer Praktiken. Diese Praktiken beinhalten die Verteilung isolierter Systeme, die Minimierung der Auswirkungen von Bugs und Fehlern, häufige und zeitgerechte Software-Updates sowie eine optimierte Zusammenarbeit zwischen Entwicklern (Dev) und Administratoren (Ops) und ständige Tests nicht nur des Codes, sondern auch der gesamten Struktur im Prozess. .
Neben dem Wandel in der Denkweise ist es unabdingbar, die Infrastruktur zu unterstützen und deren stabile Funktion, Zuverlässigkeit und Verfügbarkeit für die kontinuierliche Integration und Lieferung von Anwendungen, Diensten und Software zu gewährleisten.
Was Ihnen als Ops-Spezialist möglicherweise fehlt, sind Programmierkenntnisse. Heutzutage gelten Skripte, die Systemadministratoren für die automatisierte Installation von Patches auf Servern, das Management von Dateien und Accounts, zur Fehlerbehebung und Dokumentation nutzen, als veraltet. In relativ einfachen Fällen werden Skripte weiterhin verwendet, aber das Konzept von DevOps erfordert die Lösung großangelegter Aufgaben, sei es bei der Implementierung, dem Testen, dem Arbeiten mit Builds oder bei der Bereitstellung.
Wenn Sie also Automatisierung lernen möchten, sollten Sie zumindest ein wenig Programmierung verstehen, auch wenn Sie kein Entwickler sind, da dies in dieser Phase Ihrer Entwicklung erforderlich ist. ist in DevOps unerlässlich.
Was ist zu tun? Um als gefragter Spezialist relevant zu bleiben, sollten Sie aktuelle Fähigkeiten erwerben – lernen Sie mindestens eine Programmiersprache, wie zum Beispiel Python. Für jemanden, der professionell mit Administration beschäftigt ist, kann das herausfordernd erscheinen, da er oft glaubt, dass nur Entwickler programmieren. Es ist jedoch nicht erforderlich, ein Experte zu werden; aber Kenntnisse in einer Programmiersprache (das könnte Python, Bash oder sogar ) werden Ihnen sicherlich einen Vorteil verschaffen.
Um Programmieren zu lernen, benötigt man etwas Zeit. Seien Sie aufmerksam und geduldig – das wird Ihnen helfen, den Überblick bei der Kommunikation mit Entwicklern aus dem DevOps-Team und den Auftraggebern zu behalten. Halbe Stunde pro Tag, eine Stunde oder mehr – das Erlernen einer Programmiersprache sollte Ihr Hauptziel werden.
Systemadministratoren und DevOps-Spezialisten haben ähnliche Aufgaben, aber es gibt auch wesentliche Unterschiede. Man sagt, dass ein Systemadministrator nicht all das tun kann, was ein DevOps-Ingenieur kann. Es wird behauptet, dass Systemadministratoren sich mehr auf die Konfiguration, Wartung und Sicherstellung der Funktionalität von Serversystemen konzentrieren, während DevOps-Ingenieure den gesamten Prozess und darüber hinaus steuern.
Wie zutreffend ist diese Aussage?
Systemadministrator: ein einsamer Krieger
Trotz der in diesem Artikel genannten Unterschiede und Gemeinsamkeiten bin ich der Meinung, dass es zwischen Systemadministration und DevOps keinen wesentlichen Unterschied gibt. Systemadministratoren haben immer dieselben Funktionen ausgeführt wie DevOps-Spezialisten; nur wurde das früher nicht als DevOps bezeichnet. Ich denke, es macht keinen Sinn, Unterschiede zu suchen, insbesondere wenn sie nicht mit einer bestimmten Aufgabe verbunden sind. Man sollte auch nicht vergessen, dass DevOps, im Gegensatz zum Systemadministrator, kein Job, sondern ein Konzept ist.
Es gibt noch eine wichtige Sache zu erwähnen, ohne die eine Diskussion über Systemadministration und DevOps unvollständig wäre. Systemadministration, wie wir sie verstehen, setzt voraus, dass der Spezialist über eine spezifische Fähigkeiten verfügt und sich auf die Wartung verschiedener Arten von Infrastrukturen konzentriert. Das bedeutet nicht, dass er ein Allrounder ist, sondern dass es eine Reihe von Aufgaben gibt, die von allen Administratoren übernommen werden.
Zum Beispiel müssen sie von Zeit zu Zeit als technische Alleskönner auftreten, also buchstäblich alles erledigen. Und wenn es nur einen solchen Administrator für die gesamte Organisation gibt, wird er sämtliche technische Arbeiten übernehmen. Das kann alles Mögliche sein: von der Wartung von Druckern und Kopierern bis hin zu Netzwerkaufgaben wie der Einrichtung und Verwaltung von Routern und Switches oder der Konfiguration von Firewalls.
Er wird auch für die Aktualisierung der Hardware, die Überprüfung und Analyse von Protokollen, die Sicherheitsprüfung, die Installation von Patches auf dem Server, die Fehlerbehebung, die Ursachenanalyse und die Automatisierung verantwortlich sein – in der Regel durch Skripte in PowerShell, Python oder Bash. Ein Anwendungsbeispiel ist das Management von Benutzer- und Gruppenkonten. Die Erstellung von Benutzerkonten und die Zuweisung von Berechtigungen ist eine äußerst mühsame Aufgabe, da Benutzer praktisch jeden Tag kommen und gehen. Die Automatisierung durch Skripte ermöglicht es, Zeit für wichtigere infrastrukturelle Aufgaben freizusetzen, wie zum Beispiel das Aktualisieren von Switches und Servern sowie das Ausführen anderer Projekte, die die Rentabilität des Unternehmens beeinflussen, in dem der Administrator tätig ist (auch wenn man allgemein der Meinung ist, dass die IT-Abteilung keine direkten Einnahmen generiert).
Die Aufgabe eines Systemadministrators besteht darin, keine Zeit zu verschwenden und die Kosten des Unternehmens auf jede mögliche Weise zu minimieren. Manchmal arbeiten Systemadministratoren als Teil eines großen Teams, das beispielsweise Linux-, Windows-, Datenbank- und Speicheradministratoren vereint. Die Arbeitszeiten können unterschiedlich sein. So kann zum Beispiel eine Schicht in einer Zeitzone ihre Aufgaben an die nächste Schicht in einer anderen Zeitzone übergeben, damit die Prozesse nicht ins Stocken geraten (follow-the-sun); oder die Mitarbeiter haben einen normalen Arbeitstag von 9 bis 17 Uhr; oder sie arbeiten in einem 24/7-Rechenzentrum.
Im Laufe der Zeit haben Systemadministratoren gelernt, strategisch zu denken und wichtige Aufgaben mit Routinearbeiten zu kombinieren. Teams und Abteilungen, in denen sie tätig sind, verfügen oft nicht über ausreichende Ressourcen, dennoch bemühen sich alle, die täglichen Aufgaben vollständig zu erfüllen.
DevOps: Entwicklung und Wartung als Einheit
ist eine Art Philosophie für Entwicklungs- und Wartungsprozesse. Dieser Ansatz hat sich in der IT-Welt als völlig innovativ erwiesen.
Unter dem DevOps-Konzept arbeiten auf der einen Seite ein Team von Softwareentwicklern und auf der anderen Seite ein Team von Wartungsspezialisten. Oft gesellen sich Produktmanager, Tester und UI-Designer dazu. Gemeinsam optimieren diese Fachleute die Betriebsabläufe, um schnell neue Anwendungen bereitzustellen und den Code zu aktualisieren, damit die Effizienz des gesamten Unternehmens unterstützt und verbessert wird.
Im Kern von DevOps steht die Überwachung der Entwicklung und des Betriebs von Software über den gesamten Lebenszyklus hinweg. Die Wartungsspezialisten müssen die Entwickler unterstützen, während die Entwickler nicht nur mit den in den Systemen verwendeten APIs vertraut sein sollten. Sie müssen auch verstehen, was „unter der Haube“ ist (also wie Hardware und Betriebssysteme funktionieren), um besser mit Fehlern umzugehen, Probleme zu lösen und mit den Wartungsspezialisten zu interagieren.
Systemadministratoren können in das DevOps-Team wechseln, wenn sie bereit sind, neue Technologien zu lernen und offen für innovative Ideen und Lösungen sind. Wie bereits erwähnt, müssen sie keine vollwertigen Programmierer werden, aber das Erlernen von Programmiersprachen wie Ruby, Python oder Go kann ihnen helfen, äußerst wertvolle Mitglieder des Teams zu werden. Während Systemadministratoren traditionell alle Aufgaben alleine erledigen und oft als Einzelgänger wahrgenommen werden, erwartet sie im DevOps-Bereich ein ganz anderes Erlebnis, da hier alle Beteiligten eng miteinander interagieren.
Das Thema Automatisierung wird immer relevanter. Sowohl Systemadministratoren als auch DevOps-Spezialisten sind an schnellem Scaling, der Reduzierung von Fehlern sowie an der schnellen Identifizierung und Behebung vorhandener Probleme interessiert. Automatisierung ist somit ein Konzept, in dem diese beiden Bereiche aufeinandertreffen. Systemadministratoren sind verantwortlich für Cloud-Dienste wie AWS, Azure und Google Cloud Platform. Sie müssen die Prinzipien der kontinuierlichen Integration und Bereitstellung verstehen und wissen, wie sie Werkzeuge wie .
Zusätzlich müssen Systemadministratoren Tools zur Konfiguration und Verwaltung einsetzen, wie , die für die parallele Bereitstellung von zehn oder zwanzig Servern erforderlich sind.
Das Hauptkonzept ist . Software steht im Vordergrund. Tatsächlich muss der Beruf des Systemadministrators lediglich in einigen Aspekten angepasst werden, um relevant zu bleiben. Systemadministratoren kümmern sich um die Wartung und sollten in der Lage sein, effizient mit Entwicklern zu kommunizieren und umgekehrt. Wie man sagt: Eine Handvoll ist gut, zwei sind besser.
Ein letzter Punkt in diesem Zusammenhang ist . Die Arbeit mit Git gehört zu den klassischen täglichen Aufgaben eines Systemadministrators. Dieses Versionskontrollsystem wird von Entwicklern, DevOps-Spezialisten, Agile-Teams und vielen anderen genutzt. Wenn Ihr Job mit dem Lebenszyklus von Software zu tun hat, werden Sie definitiv mit Git arbeiten.
Git bietet eine Vielzahl von Möglichkeiten. Wahrscheinlich werden Sie niemals alle Git-Befehle lernen, aber Sie werden verstehen, warum dieses Tool als das wichtigste in der Kommunikation und Zusammenarbeit an Softwareprojekten gilt. Fundierte Kenntnisse in Git sind entscheidend, wenn Sie im DevOps-Team arbeiten.
Wenn Sie Systemadministrator sind, sollten Sie sich intensiver mit Git beschäftigen, verstehen, wie Versionsverwaltung funktioniert, und die gängigen Befehle merken: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff und viele mehr. Es gibt zahlreiche Online-Kurse und Bücher, die Ihnen helfen, dieses Thema von Grund auf zu erlernen und professionelle Fähigkeiten zu entwickeln. Außerdem gibt es hervorragende , sodass Sie nicht alle auswendig lernen müssen, aber je mehr Sie Git verwenden, desto einfacher wird es Ihnen fallen.
Fazit
Letztlich entscheiden Sie selbst, ob Sie ein DevOps-Spezialist werden möchten oder lieber Systemadministrator bleiben. Wie Sie sehen, erfordert der Wechsel eine Ausbildung, doch je früher Sie anfangen, desto besser. Wählen Sie eine Programmiersprache und lernen Sie parallel dazu Werkzeuge wie (Versionskontrolle), (CI/CD, kontinuierliche Integration) und (Konfiguration und Automatisierung). Egal für welche Option Sie sich entscheiden, denken Sie daran, dass kontinuierliches Lernen und die Verbesserung Ihrer Fähigkeiten unerlässlich sind.
Quelle: habr.com
