Warum Systemadministratoren DevOps-Ingenieure werden sollten

Warum Systemadministratoren DevOps-Ingenieure werden sollten

Es gibt keinen besseren Zeitpunkt zum Lernen im Leben als heute.


Wir schreiben das Jahr 2019 und DevOps ist relevanter denn je. Man sagt, die Zeiten der Systemadministratoren seien vorbei, genau wie die Ära des Mainframes. Aber ist das wirklich so?
Wie so oft in der IT hat sich die Situation geändert. Die DevOps-Methodik hat sich herausgebildet, kann aber ohne eine Person mit Systemadministratorkenntnissen, also ohne Ops, nicht existieren.

Bevor der DevOps-Ansatz seine moderne Form annahm, stufte ich mich selbst als Ops ein. Und ich weiß sehr gut, was ein Systemadministrator erlebt, wenn er merkt, wie viel er noch nicht kann und wie wenig Zeit er hat, es zu lernen.

Warum Systemadministratoren DevOps-Ingenieure werden sollten

Aber ist es wirklich so beängstigend? Ich würde sagen, dass mangelndes Wissen nicht als großes Problem angesehen werden sollte. Es ist eher eine berufliche Herausforderung.

Web-Scale-Produkte basieren auf Linux oder anderer Open-Source-Software und es gibt immer weniger Leute auf dem Markt, die in der Lage sind, sie zu warten. Die Nachfrage übersteigt bereits die Zahl der Fachkräfte in diesem Bereich. Ein Systemadministrator wird nicht mehr in der Lage sein, einfach weiterzuarbeiten, ohne sein Qualifikationsniveau zu verbessern. Er muss über Automatisierungsfähigkeiten verfügen, um mehrere Server/Knoten zu verwalten, und ein gutes Verständnis dafür haben, wie diese funktionieren, um auftretende Probleme zu lösen.

Bevor Sie Mitglied des DevOps-Teams werden, müssen Sie eine recht lange, aber interessante Reise durchlaufen und neue Technologien und verschiedene Tools erlernen, die zur Aufrechterhaltung des Systems gemäß DevOps-Standards erforderlich sind.

Wie kann ein Systemadministrator also von der üblichen Arbeitsweise zum neuen Konzept von DevOps übergehen? Alles ist wie immer: Zuerst müssen Sie Ihr Denken ändern. Es ist nicht einfach, den Ansatz, den man in den letzten zehn oder zwanzig Jahren verfolgt hat, aufzugeben und die Dinge anders zu machen, aber es ist notwendig.

Zunächst ist es wichtig zu verstehen, dass es sich bei DevOps nicht um eine bestimmte Position in einem Unternehmen handelt, sondern um eine Reihe spezifischer Praktiken. Diese Praktiken implizieren die Verteilung isolierter Systeme, die Reduzierung des Schadens durch Bugs und Irrtümer, häufige und zeitnahe Software-Updates, eine etablierte Interaktion zwischen Entwicklern (Dev) und Administratoren (Ops) sowie ständige Tests nicht nur des Codes, sondern auch auch die gesamte Struktur innerhalb des Prozesses Kontinuierliche Integration und Bereitstellung (CI/CD).

Neben einer Änderung der Denkweise müssen Sie lernen, wie Sie die Infrastruktur warten und ihren stabilen Betrieb, ihre Zuverlässigkeit und Verfügbarkeit für die kontinuierliche Integration und Bereitstellung von Anwendungen, Diensten und Software sicherstellen.

Was Ihnen als Ops-Profi möglicherweise fehlt, sind Programmierkenntnisse. Das Schreiben von Skripten (Skripten), mit denen Systemadministratoren automatisch Patches auf einem Server installieren, Dateien und Konten verwalten, Probleme beheben und Dokumentation erstellen, gilt bereits als veraltet. Skripting wird immer noch in relativ einfachen Fällen angewendet, aber bei DevOps geht es um die Lösung groß angelegter Probleme, sei es bei der Implementierung, beim Testen, bei Builds oder bei Bereitstellungen.

Wenn Sie also Automatisierung erlernen möchten, müssen Sie zumindest ein wenig Programmieren beherrschen, auch wenn Sie kein Entwickler sind, denn in dieser Phase Ihrer Entwicklung Infrastrukturautomatisierung in DevOps erfordert diese Fähigkeit.

Was zu tun ist? Um als Spezialist gefragt zu bleiben, müssen Sie sich entsprechende Fähigkeiten aneignen – beherrschen Sie mindestens eine Programmiersprache, zum Beispiel Python. Für jemanden, der beruflich in der Verwaltung tätig ist, mag dies schwierig erscheinen, da er gewohnt ist zu denken, dass nur Entwickler programmieren. Es ist nicht notwendig, ein Experte zu werden, aber Kenntnisse in einer der Programmiersprachen (es könnte Python, Bash oder sogar Python sein). Powershell), wird auf jeden Fall von Vorteil sein.

Das Erlernen des Programmierens dauert einige Zeit. Wenn Sie aufmerksam und geduldig sind, behalten Sie bei der Kommunikation mit DevOps-Teammitgliedern und Kunden den Überblick. Eine halbe Stunde am Tag, eine Stunde oder mehr, das Erlernen einer Programmiersprache sollte Ihr Hauptziel sein.

Systemadministratoren und DevOps-Spezialisten lösen ähnliche Probleme, es gibt jedoch erhebliche Unterschiede. Man geht davon aus, dass ein Systemadministrator nicht alles tun kann, was ein DevOps-Ingenieur kann. Man sagt, dass sich der Systemadministrator mehr auf die Konfiguration, Wartung und Sicherstellung der Leistung von Serversystemen konzentriert, aber der DevOps-Ingenieur zieht all diesen Warenkorb und noch einen weiteren kleinen Korb.

Doch wie wahr ist diese Aussage?

Systemadministrator: ein Krieger im Feld

Trotz der in diesem Artikel genannten Unterschiede und Gemeinsamkeiten glaube ich immer noch, dass es keinen signifikanten Unterschied zwischen Systemadministration und DevOps gibt. Systemadministratoren haben schon immer die gleichen Funktionen ausgeübt wie DevOps-Spezialisten, nur hat es vorher noch niemand DevOps genannt. Ich glaube, dass es keinen Sinn macht, gezielt nach Unterschieden zu suchen, insbesondere wenn diese nicht mit einer Aufgabenstellung zusammenhängen. Vergessen Sie nicht, dass DevOps im Gegensatz zu einem Systemadministrator keine Position, sondern ein Konzept ist.

Es sollte noch ein wichtiger Punkt beachtet werden, ohne den ein Gespräch über Verwaltung und DevOps unvollständig wäre. Systemadministration im üblichen Sinne setzt voraus, dass ein Spezialist über bestimmte Fähigkeiten verfügt und sich auf die Wartung verschiedener Arten von Infrastrukturen konzentriert. 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.

Beispielsweise müssen sie von Zeit zu Zeit als eine Art technischer Handwerker fungieren, also buchstäblich alles erledigen. Und wenn es nur einen solchen Administrator für die gesamte Organisation gibt, dann übernimmt dieser in der Regel alle technischen Arbeiten. Dies kann alles sein, von der Wartung von Druckern und Kopierern bis hin zur Durchführung netzwerkbezogener Aufgaben wie dem Einrichten und Verwalten von Routern und Switches oder dem Konfigurieren einer Firewall.

Er ist außerdem für Hardware-Upgrades, Protokollprüfung und -analyse, Sicherheitsüberprüfungen, Server-Patches, Fehlerbehebung, Ursachenanalyse und Automatisierung verantwortlich – typischerweise über PowerShell-, Python- oder Bash-Skripte. Ein Anwendungsbeispiel Szenarien ist die Verwaltung von Benutzer- und Gruppenkonten. Das Erstellen von Benutzerkonten und das Zuweisen von Berechtigungen ist eine äußerst mühsame Aufgabe, da Benutzer fast täglich auftauchen und verschwinden. Durch die Automatisierung durch Skripte wird Zeit für wichtigere Infrastrukturaufgaben wie die Aktualisierung von Switches und Servern sowie andere Projekte frei, die sich auf die Rentabilität des Unternehmens auswirken, in dem der Administrator arbeitet (obwohl allgemein anerkannt ist, dass die IT-Abteilung keine direkten Einnahmen generiert).

Die Aufgabe des Systemadministrators besteht darin, keine Zeit zu verschwenden und dem Unternehmen auf jede erdenkliche Weise Geld zu sparen. Manchmal arbeiten Systemadministratoren als Mitglieder eines großen Teams, das beispielsweise Administratoren von Linux, Windows, Datenbanken, Speicher usw. vereint. Auch die Arbeitszeiten variieren. Beispielsweise überträgt eine Schicht in einer Zeitzone am Ende des Tages Fälle an die nächste Schicht in einer anderen Zeitzone, damit Prozesse nicht anhalten (Follow-the-Sun); oder Mitarbeiter haben einen normalen Arbeitstag von 9 bis 5 Uhr; oder es funktioniert in einem XNUMX/XNUMX-Rechenzentrum.

Mit der Zeit haben Systemadministratoren gelernt, strategisch zu denken und wichtige Angelegenheiten mit Routineaufgaben zu verbinden. Den Teams und Abteilungen, in denen sie arbeiten, mangelt es meist an Ressourcen, aber gleichzeitig versucht jeder, die täglichen Aufgaben bestmöglich zu erledigen.

DevOps: Entwicklung und Wartung in einem

DevOps ist eine Art Philosophie für die Entwicklungs- und Wartungsprozesse. Dieser Ansatz ist in der IT-Welt wirklich innovativ geworden.

Unter dem Dach von DevOps gibt es auf der einen Seite ein Softwareentwicklungsteam und auf der anderen Seite ein Wartungsteam. Zu ihnen gesellen sich häufig Produktmanagement-Spezialisten, Tester und User-Interface-Designer. Gemeinsam optimieren diese Experten Abläufe, um neue Anwendungen und Code-Updates schnell einzuführen und so die Effizienz des gesamten Unternehmens zu unterstützen und zu verbessern.

DevOps basiert auf der Kontrolle über die Entwicklung und den Betrieb von Software während ihres gesamten Lebenszyklus. Wartungsmitarbeiter müssen Entwickler unterstützen, und Entwickler haben die Aufgabe, mehr als nur die in Systemen verwendeten APIs zu verstehen. Sie müssen verstehen, was sich unter der Haube verbirgt (also wie Hardware und Betriebssysteme funktionieren), damit sie besser mit Fehlern umgehen, Probleme lösen und mit Servicetechnikern interagieren können.

Systemadministratoren können in ein DevOps-Team wechseln, wenn sie die neuesten Technologien erlernen möchten und offen für innovative Ideen und Lösungen sind. Wie ich bereits sagte, müssen sie keine vollwertigen Programmierer werden, aber die Beherrschung einer Programmiersprache wie Ruby, Python oder Go wird ihnen helfen, sehr nützliche Mitglieder des Teams zu werden. Obwohl Systemadministratoren traditionell die gesamte Arbeit selbst erledigen und oft als Einzelgänger wahrgenommen werden, machen sie bei DevOps eine völlig entgegengesetzte Erfahrung, bei der alle Beteiligten miteinander interagieren.

Das Thema Automatisierung wird immer relevanter. Sowohl Systemadministratoren als auch DevOps-Spezialisten sind daran interessiert, schnell zu skalieren, Fehler zu reduzieren und bestehende Fehler schnell zu finden und zu beheben. Automatisierung ist also ein Konzept, bei dem zwei Bereiche zusammenlaufen. Systemadministratoren sind für Cloud-Dienste wie AWS, Azure und Google Cloud Platform verantwortlich. Sie müssen die Prinzipien der kontinuierlichen Integration und Bereitstellung verstehen und wissen, wie man Tools wie verwendet Jenkins.

Darüber hinaus müssen Systemadministratoren Konfigurations- und Verwaltungstools verwenden, z Ansible, erforderlich für den parallelen Einsatz von zehn oder zwanzig Servern.

Das Hauptkonzept ist Infrastruktur als Code. Software ist alles. Damit der Beruf des Systemadministrators nicht an Relevanz verliert, müssen Sie lediglich die Schwerpunkte ein wenig ändern. Systemadministratoren sind im Dienstleistungsgeschäft tätig und müssen in der Lage sein, effektiv mit Entwicklern zu kommunizieren und umgekehrt. Wie man so schön sagt: Ein Kopf ist gut, aber zwei sind besser.

Und das letzte Detail in diesem Mechanismus ist Git. Die Arbeit mit Git gehört traditionell zu den täglichen Aufgaben eines Systemadministrators. Dieses Versionskontrollsystem wird häufig von Entwicklern, DevOps-Spezialisten, Agile-Teams und vielen anderen verwendet. Wenn Ihre Arbeit einen Bezug zum Software-Lebenszyklus hat, dann werden Sie auf jeden Fall mit Git arbeiten.

Git hat viele Funktionen. Sie werden wahrscheinlich nie alle Git-Befehle lernen, aber Sie werden genau verstehen, warum sie ein wesentlicher Bestandteil der Softwarekommunikation und -zusammenarbeit sind. Wenn Sie in einem DevOps-Team arbeiten, sind gründliche Git-Kenntnisse sehr wichtig.

Wenn Sie Systemadministrator sind, müssen Sie Git besser studieren, verstehen, wie die Versionskontrolle aufgebaut ist, und sich die allgemeinen 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 dabei helfen können, dieses Thema von Grund auf zu erlernen und ein Profi mit spezifischen Fähigkeiten zu werden. Es gibt auch wunderbare Spickzettel mit Git-Befehlen, sodass Sie sie nicht alle vollstopfen müssen, aber je häufiger Sie Git verwenden, desto einfacher wird es.

Abschluss

Letztendlich entscheiden Sie, ob Sie DevOps-Spezialist werden müssen oder lieber Systemadministrator bleiben. Wie Sie sehen, erfordert der Übergang eine Lernkurve, aber je früher Sie damit beginnen, desto besser. Wählen Sie eine Programmiersprache und lernen Sie gleichzeitig Tools wie Git (Versionskontrolle), Jenkins (CI/CD, kontinuierliche Integration) und Ansible (Konfiguration und Automatisierung). Für welche Option Sie sich auch entscheiden, vergessen Sie nicht, dass Sie ständig lernen und Ihre Fähigkeiten verbessern müssen.

Source: habr.com

Kommentar hinzufügen