
Es gibt keinen besseren Zeitpunkt im Leben, um zu lernen, als heute.
Wir haben das Jahr 2019 und das Thema DevOps ist relevanter denn je. Man sagt, die Tage der Systemadministratoren seien vorbei, wie die Ära der Mainframes. Aber ist das wirklich so?
Wie so oft in der IT hat sich die Situation geändert. Die DevOps-Methodologie ist entstanden, doch sie kann nicht ohne Menschen mit Kenntnissen eines Systemadministrators, also ohne Ops, existieren.
Bevor der DevOps-Ansatz sein modernes Gesicht annahm, zählte ich mich zur Kategorie Ops. Ich weiß genau, welches Gefühl ein SysAdmin hat, wenn er erkennt, wie viel er noch nicht kann und wie wenig Zeit er hat, um das zu lernen.

Aber ist wirklich alles so schlimm? Ich würde sagen, dass man einen Wissensmangel nicht als ein großes Problem betrachten sollte. Es ist eher eine berufliche Herausforderung.
Web-Scale-Produkte basieren auf Linux oder anderer Open-Source-Software, und auf dem Markt gibt es immer weniger Fachleute, die sie warten können. Die Nachfrage hat bereits das Angebot an Fachkräften in diesem Bereich überstiegen. Ein Systemadministrator kann nicht einfach weiterarbeiten, ohne sein Qualifikationsniveau zu erhöhen. Er muss Automatisierungsfähigkeiten besitzen, um viele Server/Knoten zu verwalten, und die Prinzipien ihres Betriebs gut verstehen, um auftretende Probleme zu lösen.
Bevor Sie Mitglied eines DevOps-Teams werden, stehen Ihnen einige langwierige, aber interessante Schritte bevor, in denen Sie neue Technologien und verschiedene Werkzeuge erlernen, die erforderlich sind, um das System nach den DevOps-Standards zu warten.
Wie kann ein Systemadministrator also von seinem gewohnten Arbeitsansatz zur neuen DevOps-Konzeption wechseln? Wie gewohnt muss zuerst das Denken geändert werden. Es ist nicht einfach, sich von dem Ansatz zu lösen, dem man in den letzten zehn oder zwanzig Jahren gefolgt ist, und alles anders zu machen, aber es ist notwendig.
Zunächst ist es wichtig zu verstehen, dass DevOps keine spezifische Position im Unternehmen ist, sondern eine Reihe bestimmter Praktiken. Diese Praktiken beinhalten die Verteilung isolierter Systeme, die Reduzierung von Schäden durch Bugs und Fehler, häufige und zeitgerechte Software-Updates sowie eine etablierte Interaktion zwischen Entwicklern (Dev) und Administratoren (Ops) und ständiges Testen nicht nur des Codes, sondern auch der gesamten Struktur im Rahmen des Prozesses .
Neben der Veränderung der Denkweise muss man lernen, die Infrastruktur zu unterstützen und ihren stabilen Betrieb, Zuverlässigkeit und Verfügbarkeit für die kontinuierliche Integration und Lieferung von Anwendungen, Services und Software sicherzustellen.
Was Ihnen möglicherweise als Ops-Spezialist fehlt, sind Programmierkenntnisse. Heutzutage gilt das Schreiben von Skripten, die Systemadministratoren zur automatisierten Installation von Patches auf Servern, Verwaltung von Dateien und Konten, zur Fehlerbehebung und Dokumentation verwenden, als veraltet. In relativ einfachen Fällen werden Skripte nach wie vor verwendet, aber das Konzept von DevOps beinhaltet die Lösung großangelegter Aufgaben, sei es Implementierung, Test, Arbeit mit Builds oder Bereitstellung.
Wenn Sie also lernen wollen, wie man automatisiert, sollten Sie zumindest ein wenig Programmierung erlernen, auch wenn Sie kein Entwickler sind, da dies in Ihrer aktuellen Entwicklungsphase im DevOps diese Fähigkeit erfordert.
Was tun? Um ein gefragter Fachmann zu bleiben, müssen Sie relevante Fähigkeiten erwerben – lernen Sie mindestens eine Programmiersprache, zum Beispiel Python. Jemand, der professionell in der Systemadministration tätig ist, mag dies als schwierig empfinden, da er daran gewöhnt ist zu denken, dass nur Entwickler programmieren. Es ist jedoch nicht erforderlich, ein Experte zu werden, aber das Wissen über eine Programmiersprache (das kann Python, Bash oder sogar ) wird sicherlich von Vorteil sein.
Um Programmieren zu lernen, braucht man eine gewisse Zeit. Seien Sie aufmerksam und geduldig – das wird Ihnen helfen, im Austausch mit den Entwicklern des DevOps-Teams und den Kunden den Überblick zu behalten. Eine halbe Stunde am Tag, eine Stunde oder mehr – das Lernen einer Programmiersprache sollte Ihr Hauptziel sein.
Systemadministratoren und DevOps-Spezialisten stehen vor ähnlichen Herausforderungen, allerdings gibt es wesentliche Unterschiede. Es wird angenommen, dass ein Systemadministrator nicht all das tun kann, was ein DevOps-Ingenieur kann. Es heißt, der Systemadministrator sei mehr auf die Konfiguration, Wartung und Gewährleistung der Funktionsfähigkeit von Serversystemen fokussiert, während der DevOps-Ingenieur das ganze Gewicht dieser Verantwortung und noch ein bisschen mehr trägt.
Wie zutreffend ist diese Aussage?
Systemadministrator: allein im Feld ein Krieger
Trotz der in diesem Artikel hervorgehobenen Unterschiede und Gemeinsamkeiten bin ich dennoch der Meinung, dass es zwischen Systemadministration und DevOps keine wesentlichen Unterschiede gibt. Systemadministratoren haben immer die gleichen Funktionen erfüllt wie DevOps-Spezialisten, nur wurde das früher nicht als DevOps bezeichnet. Ich denke, es macht keinen Sinn, speziell nach Unterschieden zu suchen, besonders wenn dies nicht mit einer bestimmten Aufgabe verbunden ist. Man sollte auch bedenken, dass DevOps im Gegensatz zum Systemadministrator kein Beruf, sondern ein Konzept ist.
Es ist wichtig, noch einen weiteren Punkt zu erwähnen, ohne den sowohl das Gespräch über Administration als auch über DevOps unvollständig wäre. Systemadministration im herkömmlichen Sinne setzt voraus, dass der Spezialist über ein bestimmtes Set von Fähigkeiten verfügt und auf die Wartung verschiedener Arten von Infrastrukturen ausgerichtet ist. Nicht in dem Sinne, dass es sich um einen universellen Mitarbeiter handelt, sondern in dem Sinne, dass es eine Reihe von Aufgaben gibt, die von allen Administratoren ausgeführt werden.
Zum Beispiel müssen sie von Zeit zu Zeit als eine Art technischer Alleskönner auftreten, das heißt, sie müssen buchstäblich alles machen. Und wenn dieser Administrator der einzige in der gesamten Organisation ist, wird er die gesamte technische Arbeit erledigen. Das kann alles Mögliche sein: von der Wartung von Druckern und Kopiergeräten bis hin zu Aufgaben im Netzwerk, wie der Konfiguration und Verwaltung von Routern und Switches oder der Einrichtung von Firewalls.
Er wird auch für die Aktualisierung der Hardware, die Überprüfung und Analyse von Protokollen, die Sicherheitsüberprüfung, das Aufspielen von Patches auf dem Server, das Troubleshooting, die Ursachenermittlung und die Automatisierung zuständig sein – in der Regel durch PowerShell-, Python- oder Bash-Skripte. Ein Beispiel für die Nutzung besteht darin, Benutzer- und Gruppenkonten zu verwalten. Das Erstellen von Benutzerkonten und die Zuweisung von Berechtigungen ist eine äußerst mühsame Aufgabe, da Benutzer fast täglich kommen und gehen. Die Automatisierung durch Skripte ermöglicht es, Zeit für wichtigere infrastrukturelle Aufgaben freizusetzen, beispielsweise für die Aktualisierung von Switches und Servern sowie für die Durchführung anderer Projekte, die sich auf die Rentabilität des Unternehmens auswirken, in dem der Administrator tätig ist (obwohl allgemein angenommen wird, dass die IT-Abteilung keinen direkten Umsatz generiert).
Die Aufgabe eines Systemadministrators besteht darin, keine Zeit zu verschwenden und das Geld des Unternehmens auf jede erdenkliche Weise zu sparen. Manchmal arbeiten Systemadministratoren als Mitglieder eines großen Teams, das beispielsweise Linux-, Windows-, Datenbank-, Speicher- und andere Administratoren vereint. Es gibt verschiedene Arbeitszeitmodelle. So übergibt etwa eine Schicht in einer Zeitzone am Ende des Tages ihre Aufgaben an die nächste Schicht in einer anderen Zeitzone, damit die Prozesse nicht unterbrochen werden (follow-the-sun); oder die Mitarbeiter haben einen regulären Arbeitstag von 9 bis 17 Uhr; oder es handelt sich um die Arbeit in einem 24/7-Rechenzentrum.
Im Laufe der Zeit haben Systemadministratoren gelernt, strategisch zu denken und wichtige Angelegenheiten mit Routineaufgaben zu kombinieren. Teams und Abteilungen, in denen sie arbeiten, haben normalerweise nicht genügend Ressourcen, aber dennoch bemühen sich alle, die täglichen Aufgaben vollständig zu erledigen.
DevOps: Entwicklung und Wartung
ist eine Art Philosophie für Entwicklungs- und Wartungsprozesse. Dieser Ansatz hat sich in der IT-Welt als wirklich innovativ erwiesen.
Unter der Ägide von DevOps arbeitet auf der einen Seite ein Team von Softwareentwicklern und auf der anderen Seite ein Team von Betreuern. Oft schließen sich Product Owner, Tester und UI-Designer an. Indem sie ihre Kräfte bündeln, optimieren diese Fachleute die Arbeitsabläufe, um neue Anwendungen schnell bereitzustellen und den Code zu aktualisieren, um die Effizienz des gesamten Unternehmens zu unterstützen und zu verbessern.
Im Zentrum von DevOps steht die Überwachung der Entwicklung und des Betriebs von Software über den gesamten Lebenszyklus. Die Betreuer müssen die Entwickler unterstützen, während die Entwickler nicht nur mit den in den Systemen verwendeten APIs vertraut sein müssen. Sie müssen verstehen, was "unter der Haube" geschieht (d.h. wie die Hardware und die Betriebssysteme funktionieren), um besser mit Fehlern umgehen, Probleme lösen und mit den Betreuern interagieren zu können.
Systemadministratoren können ins DevOps-Team wechseln, wenn sie die neuesten Technologien lernen und für innovative Ideen und Lösungen offen sind. Wie bereits erwähnt, müssen sie nicht unbedingt vollständige Programmierer werden, aber das Erlernen von Programmiersprachen wie Ruby, Python oder Go wird ihnen helfen, sehr wertvolle Mitglieder des Teams zu werden. Während Systemadministratoren traditionell alle Arbeiten selbst erledigen und oft als Einzelgänger wahrgenommen werden, erwartet sie im DevOps ein ganz anderes Erlebnis, bei dem alle Prozessbeteiligten miteinander interagieren.
Das Thema Automatisierung wird immer relevanter. Sowohl Systemadministratoren als auch DevOps-Spezialisten sind an einer schnellen Skalierung, der Reduzierung von Fehlern und der schnellen Identifizierung sowie Behebung bestehender Fehler interessiert. Somit ist Automatisierung ein Begriff, in dem beide Bereiche zusammenkommen. Systemadministratoren sind für Cloud-Dienste wie AWS, Azure und Google Cloud Platform verantwortlich. Sie müssen die Prinzipien der kontinuierlichen Integration und Lieferung verstehen und wissen, wie sie Werkzeuge wie verwenden. .
Darüber hinaus müssen Systemadministratoren solche Konfigurations- und Managementtools wie anwenden. , notwendig für die parallele Bereitstellung von zehn oder zwanzig Servern.
Das Hauptkonzept — . Software überall. Im Grunde genommen, damit der Beruf des Systemadministrators relevant bleibt, muss man nur ein wenig den Schwerpunkt ändern. Systemadministratoren kümmern sich um die Wartung und sollten in der Lage sein, effektiv mit Entwicklern zu interagieren und umgekehrt. Wie man sagt, eine Kopf ist gut, zwei sind besser.
Und das letzte Detail in diesem Mechanismus — das ist . Die Arbeit mit Git ist eine der traditionellen täglichen Aufgaben eines Systemadministrators. Dieses Versionskontrollsystem wird weit verbreitet von Entwicklern, DevOps-Spezialisten, Agile-Teams und vielen anderen genutzt. Wenn Ihre Arbeit mit dem Lebenszyklus von Software verbunden ist, werden Sie mit Sicherheit mit Git arbeiten.
Git bietet eine Vielzahl von Möglichkeiten. Wahrscheinlich werden Sie nie alle Git-Befehle lernen, aber Sie werden auf jeden Fall verstehen, warum dieses Werkzeug als das wichtigste in der Kommunikation und Zusammenarbeit an Software gilt. Ein solides Wissen über Git ist sehr wichtig, wenn Sie im DevOps-Team arbeiten.
Wenn Sie ein Systemadministrator sind, sollten Sie Git besser lernen, verstehen, wie das Versionsmanagement aufgebaut ist, und sich die gebräuchlichen Befehle merken: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff und andere. Es gibt viele Online-Kurse und Bücher, die Ihnen helfen, dieses Thema von Grund auf zu lernen und ein Fachmann mit spezifischen Fähigkeiten zu werden. Es gibt auch großartige , daher ist es nicht notwendig, alle auswendig zu lernen, aber je mehr Sie Git nutzen, desto einfacher wird es Ihnen fallen.
Fazit
Letztendlich entscheiden Sie selbst, ob Sie ein DevOps-Spezialist werden möchten oder lieber ein Systemadministrator bleiben. Wie Sie sehen, ist eine Ausbildung für den Wechsel erforderlich, aber je früher Sie anfangen, desto besser. Wählen Sie eine Programmiersprache und lernen Sie parallel solche Werkzeuge wie (Versionskontrolle), (CI/CD, kontinuierliche Integration) und (Konfiguration und Automatisierung). Egal, für welche Option Sie sich entscheiden, vergessen Sie nicht, dass Sie ständig lernen und Ihre Fähigkeiten verbessern müssen.
Quelle: habr.com
