
Es gibt keinen besseren Zeitpunkt zum Lernen im Leben als heute.
Es ist 2019 und das DevOps-Thema ist so aktuell wie nie zuvor. Sie sagen, dass die Tage der Systemadministratoren vorbei sind, als die Ära der Mainframes vorbei ist. Aber ist es wirklich so?
Wie so oft in der IT hat sich die Situation geändert. Die DevOps-Methodik ist erschienen, kann jedoch nicht ohne eine Person mit den Fähigkeiten eines Systemadministrators existieren, dh ohne Ops.
Bevor der DevOps-Ansatz sein modernes Aussehen erhielt, klassifizierte ich mich als Ops. Und ich weiß genau, was der Systemadministrator erlebt, wenn er merkt, wie viel er noch nicht konnte und wie wenig Zeit er hat, um zu lernen, wie man das macht.
Aber ist wirklich alles so beängstigend? Ich würde sagen, dass es nicht notwendig ist, den Mangel an Wissen als ein großes Problem wahrzunehmen. Es ist eher eine berufliche Herausforderung.
Web-Scale-Produkte basieren auf Linux oder anderer Open-Source-Software, und es gibt immer weniger Spezialisten auf dem Markt, die sie bedienen können. Die Nachfrage hat die Zahl der Fachkräfte in diesem Bereich bereits überschritten. Der Systemadministrator kann nicht mehr einfach weiterarbeiten, ohne seine Fähigkeiten zu verbessern. Er muss über Automatisierungsfähigkeiten verfügen, um mehrere Server / Knoten verwalten zu können, und über ein gutes Verständnis der Funktionsweise zur Lösung von Problemen verfügen.
Bevor Sie Mitglied des DevOps-Teams werden, müssen Sie eine lange, aber interessante Reise unternehmen, um neue Technologien und eine Vielzahl von Tools zu erkunden, die zur Wartung des Systems gemäß den DevOps-Standards erforderlich sind.
Wie kann der Systemadministrator vom üblichen Ansatz zur Arbeit zum neuen DevOps-Konzept wechseln? Alles ist wie gewohnt: Zuerst müssen Sie Ihre Einstellung ändern. Es ist überhaupt nicht einfach, den Ansatz, den Sie in den letzten zehn oder zwanzig Jahren verfolgt haben, aufzugeben und alles auf eine neue Art und Weise zu tun, aber dies ist notwendig.
Zunächst ist es wichtig zu verstehen, dass DevOps keine bestimmte Position in einem Unternehmen ist, sondern eine Reihe spezifischer Praktiken. Diese Praktiken umfassen die Verteilung isolierter Systeme, die Schadensminderung durch Fehler und Fehler, häufige und zeitnahe Software-Updates, eine reibungslose Interaktion zwischen Entwicklern (Dev) und Administratoren (Ops) sowie das ständige Testen nicht nur des Codes, sondern der gesamten Struktur als Teil des
kontinuierlichen Integrationsprozesses und Lieferung (CI / CD) .
Neben der Ä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-Spezialist möglicherweise fehlt, sind Programmierkenntnisse. Das Schreiben von Skripten (Skripten), mit denen Systemadministratoren Patches automatisch auf dem Server installieren, Dateien und Konten verwalten, Fehler beheben und Dokumentationen kompilieren, gilt bereits als veraltet. In relativ einfachen Fällen werden immer noch Szenarien angewendet, aber das Konzept von DevOps umfasst das Lösen umfangreicher Aufgaben, sei es Implementierung, Test, Montagearbeiten oder Bereitstellung.
Wenn Sie also Automatisierung lernen möchten, müssen Sie zumindest ein wenig Programmierung beherrschen, auch wenn Sie kein Entwickler sind, da die
Infrastrukturautomatisierung in DevOps in dieser Entwicklungsphase diese Fähigkeit erfordert.
Was zu tun ist? Um ein gefragter Spezialist zu bleiben, müssen Sie relevante Fähigkeiten erwerben - um mindestens eine Programmiersprache zu beherrschen, zum Beispiel Python. Für eine Person, die professionell in der Verwaltung tätig ist, mag dies kompliziert erscheinen, da sie daran gewöhnt ist, dass nur Entwickler programmieren. Es ist nicht notwendig, Experte zu werden. Kenntnisse in einer der Programmiersprachen (Python, Bash oder sogar
Powershell ) sind jedoch von Vorteil.
Um das Programmieren zu lernen, brauchen Sie etwas Zeit. Seien Sie aufmerksam und geduldig - dies hilft Ihnen dabei, die Situation zu verstehen, wenn Sie mit Entwicklern des DevOps-Teams und Kunden kommunizieren. 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 einen signifikanten Unterschied. Es wird angenommen, dass der Systemadministrator nicht alles tun kann, was der DevOps-Techniker tun kann. Sie sagen, dass der Systemadministrator sich mehr auf die Konfiguration, Wartung und Sicherstellung der Funktionsfähigkeit von Serversystemen konzentriert, aber der DevOps-Ingenieur zieht diesen ganzen Wagen und einen weiteren kleinen Wagen.
Aber wie wahr ist diese Aussage?
Systemadministrator: einer im Feld Krieger
Trotz der in diesem Artikel festgestellten Unterschiede und Ähnlichkeiten denke ich immer noch, dass es keinen signifikanten Unterschied zwischen Systemadministration und DevOps gibt. Systemadministratoren haben immer die gleichen Funktionen wie die DevOps-Spezialisten ausgeführt, aber noch nie zuvor hat es jemand DevOps genannt. Ich denke, dass es keinen Sinn macht, gezielt nach Unterschieden zu suchen, insbesondere wenn dies nicht mit einer Aufgabe zusammenhängt. Vergessen Sie nicht, dass DevOps im Gegensatz zum Systemadministrator keine Position, sondern ein Konzept ist.
Eine weitere wichtige Sache, ohne die das Gespräch über Administration und DevOps unvollständig sein wird. Systemadministration im üblichen Sinne impliziert, dass ein Spezialist über bestimmte Fähigkeiten verfügt und sich auf die Wartung verschiedener Arten von Infrastrukturen konzentriert. Nicht in dem Sinne, dass dies ein universeller Mitarbeiter ist, sondern in der Tatsache, dass alle Administratoren eine Reihe von Aufgaben ausführen.
Zum Beispiel müssen sie von Zeit zu Zeit als eine Art technischer Handwerker agieren, dh buchstäblich alles hintereinander tun. Und wenn ein solcher Administrator der einzige in der gesamten Organisation ist, wird er die gesamte technische Arbeit erledigen. Dies kann alles sein, von der Wartung von Druckern und Kopierern bis hin zur Ausführung netzwerkbezogener Aufgaben wie dem Konfigurieren und Verwalten von Routern und Switches oder dem Einrichten einer Firewall.
Er ist auch verantwortlich für Hardware-Updates, Überprüfung und Analyse von Protokollen, Sicherheitsüberwachung, Installation von Patches auf dem Server, Fehlerbehebung, Ursachenanalyse und Automatisierung - normalerweise über PowerShell-, Python- oder Bash-Skripte. Ein Beispiel für die Verwendung von
Skripten 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 angezeigt und ausgeblendet werden. Die Skriptautomatisierung spart Zeit für wichtigere Infrastrukturaufgaben wie das Aktualisieren von Switches und Servern und das Durchführen anderer Projekte, die sich auf die Rentabilität des Unternehmens auswirken, in dem der Administrator arbeitet (obwohl allgemein angenommen wird, dass die IT-Abteilung keinen direkten Umsatz generiert).
Die Aufgabe des Systemadministrators besteht darin, keine Zeit zu verschwenden und in irgendeiner Weise Unternehmensgeld zu sparen. Manchmal arbeiten Systemadministratoren als Mitglieder eines großen Teams, das beispielsweise Linux-, Windows-, Datenbank-, Speicher- usw. Administratoren zusammenbringt. Der Arbeitsplan ist auch anders. Zum Beispiel überträgt eine Verschiebung in einer Zeitzone am Ende des Tages Dinge auf die nächste Schicht in einer anderen Zeitzone, damit die Prozesse nicht anhalten (der Sonne folgen); oder Mitarbeiter haben einen normalen Arbeitstag von 9 bis 17 Uhr; oder funktioniert es in einem 24-Stunden-Rechenzentrum?
Im Laufe der Zeit haben Systemadministratoren gelernt, strategisch zu denken und wichtige Dinge mit Routineaufgaben zu kombinieren. Die Teams und Abteilungen, in denen sie arbeiten, verfügen normalerweise nicht über genügend Ressourcen, aber gleichzeitig versuchen alle, die täglichen Aufgaben vollständig auszuführen.
DevOps: Entwicklung und Service sind eins
DevOps ist eine Art Philosophie von Entwicklungs- und Wartungsprozessen. Dieser Ansatz in der IT-Welt ist wirklich innovativ geworden.
Unter der Schirmherrschaft von DevOps arbeitet ein Team von Softwareentwicklern auf der einen Seite und ein Team von Service-Spezialisten auf der anderen Seite. Oft kommen Produktmanagementspezialisten, Tester und Benutzeroberflächendesigner hinzu. Durch die Bündelung der Kräfte optimieren diese Spezialisten die Arbeitsabläufe, um schnell neue Anwendungen einzuführen und Code zu aktualisieren, um die Effizienz des gesamten Unternehmens zu unterstützen und zu verbessern.
Das Herzstück von DevOps ist die Kontrolle über die Entwicklung und den Betrieb von Software während des gesamten Lebenszyklus. Service-Spezialisten müssen Entwickler unterstützen, und Entwickler stehen vor der Aufgabe, nicht nur die in Systemen verwendeten APIs zu verstehen. Sie sollten verstehen, was sich „unter der Haube“ befindet (dh wie die Hardware und die Betriebssysteme funktionieren), um Fehler besser zu bewältigen, Probleme zu lösen und mit Service-Spezialisten zu interagieren.
Systemadministratoren können sich an das DevOps-Team wenden, wenn sie die neueste Technologie erlernen möchten und offen für innovative Ideen und Lösungen sind. Wie gesagt, sie müssen keine vollwertigen Programmierer werden, aber das Beherrschen von Programmiersprachen wie Ruby, Python oder Go wird ihnen helfen, sehr nützliche Mitglieder des Teams zu werden. Obwohl Systemadministratoren die gesamte Arbeit traditionell selbst ausführen und häufig als Einzelgänger wahrgenommen werden, haben sie in DevOps die völlig entgegengesetzte Erfahrung, wenn alle Teilnehmer des Prozesses miteinander interagieren.
Das Thema Automatisierung gewinnt zunehmend an Bedeutung. Sowohl Systemadministratoren als auch DevOps-Spezialisten sind an der Skalierung des Betriebs, der Reduzierung der Fehleranzahl sowie an der schnellen Suche und Beseitigung vorhandener Fehler interessiert. Automatisierung ist also ein Konzept, bei dem zwei Bereiche zusammenlaufen. Systemadministratoren sind für Cloud-Dienste wie AWS, Azure und die Google Cloud Platform verantwortlich. Sie müssen die Prinzipien der kontinuierlichen Integration und Bereitstellung verstehen und wissen, wie sie Tools wie
Jenkins in ihrer Arbeit einsetzen können.
Darüber hinaus müssen Systemadministratoren Konfigurations- und Verwaltungstools wie
Ansible verwenden , die für die parallele Bereitstellung von zehn oder zwanzig Servern erforderlich sind.
Das Grundkonzept ist
Infrastruktur als Code . Software in allem. Damit der Beruf eines Systemadministrators nicht an Relevanz verliert, müssen Sie den Fokus nur ein wenig ändern. Systemadministratoren sind mit der Wartung beschäftigt und sollten in der Lage sein, effektiv mit Entwicklern zu interagieren und umgekehrt. Wie sie sagen, ein Kopf ist gut und zwei sind besser.
Und das letzte Detail in diesem Mechanismus ist
Git . Die Arbeit mit Git gehört zu den traditionellen täglichen Aufgaben eines Systemadministrators. Dieses Versionskontrollsystem wird häufig von Entwicklern, DevOps-Spezialisten, agilen Teams und vielen anderen verwendet. Wenn Ihre Arbeit mit dem Software-Lebenszyklus zusammenhängt, werden Sie definitiv mit Git arbeiten.
Git enthält viele Funktionen. Höchstwahrscheinlich werden Sie nie alle Git-Befehle lernen, aber Sie werden genau verstehen, warum dieses Tool als das wichtigste in der Kommunikation und Zusammenarbeit bei Software angesehen wird. Eine gründliche Kenntnis von Git ist sehr wichtig, wenn Sie im DevOps-Team arbeiten.
Wenn Sie ein Systemadministrator sind, müssen Sie Git besser lernen, verstehen, wie die Versionskontrolle aufgebaut ist, und sich an gängige Befehle erinnern:
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, mit denen Sie dieses Thema von Grund auf lernen und ein Profi mit spezifischen Fähigkeiten werden können. Es gibt auch großartige
Spickzettel mit Git-Befehlen , daher ist es optional, sie alle zu stopfen. Je häufiger Sie Git verwenden, desto einfacher wird es für Sie.
Fazit
Letztendlich entscheiden Sie, ob Sie DevOps-Spezialist werden oder besser, um Systemadministrator zu bleiben. Wie Sie sehen, erfordert der Übergang Training, aber je früher Sie beginnen, desto besser. Wählen Sie eine Programmiersprache und Lernwerkzeuge wie
Git (Versionskontrolle),
Jenkins (CI / CD, kontinuierliche Integration) und
Ansible (Konfiguration und Automatisierung). Egal für welche Option Sie sich entscheiden, vergessen Sie nicht, dass Sie Ihre Fähigkeiten ständig lernen und verbessern müssen.