Wie kann ein Linux-Administrator seine Shell-Skript- und Automatisierungsfähigkeiten verbessern?


30

In meiner Organisation arbeite ich mit einer Gruppe von NOC-Mitarbeitern, angehenden Nachwuchsingenieuren und einer Handvoll leitender Ingenieure. Alles mit Schwerpunkt auf Linux. Ein interessanter Schritt für die Talentförderung des Unternehmens ist der Weg vom NOC zu den leitenden Ingenieuren. Wenn ich den Talentpool als relativen Neuling betrachte, sehe ich, dass es eine Aufteilung der Fähigkeiten gibt, die mit der Zeit tendenziell zunimmt ...

  • Es gibt Ingenieure, die eine oder mehrere bestimmte Technologien gut kennen und ständig untergetaucht sind ... z. B. MySQL, Firewalls, SAN-Speicher, Load Balancer ...
  • Es gibt andere, die Generalisten sind und durch mehrere Technologien navigieren können.
  • Alle lernen genug Linux (Befehle, Prozesse), um das zu tun, was sie täglich brauchen und benutzen.

Ein Unterscheidungsmerkmal zwischen einigen Mitarbeitern ist, wie gut sie sich mit Skripten, Automatisierung und Konfigurationsmanagement auskennen. Zum Beispiel haben wir zwei Ingenieure, die den Großteil der Arbeit von Amazon AWS CloudFormation erledigen , und einen anderen, der den größten Teil der Puppet- Infrastruktur verwaltet. Vielleicht ist ein Viertel der Ingenieure mit BASH-Shell-Skripten vertraut.

Angesichts der unglaublich hohen Nachfrage nach DevOps-Fähigkeiten auf dem Arbeitsmarkt bin ich gespannt, wie andere Organisationen die Entwicklung dieser Fähigkeiten fördern und ihre internen Talente fördern. Scripting scheint kein besonders lehrreiches Konzept zu sein.

  • Wie verbessert ein Sysadmin sein Shell-Scripting?
  • Gibt es noch einen Platz für Ingenieure, die im DevOps-Paradigma nicht mithalten können?
  • Sollen wir einfach davon ausgehen, dass einige Leute zurückbleiben, wenn sich diese Technologien weiterentwickeln? Ist das in Ordnung?

14
Du übst. Versuchen Sie, alles zu automatisieren, VMS zu erstellen usw.
Doon

2
@Doon Ich mache das seit 15 Jahren, also hatte ich viel Zeit zum Üben, zum Aufbrechen und um dorthin zu gelangen, wo ich bin. Für junge Ingenieure von heute und angesichts der Komplexität einiger der vorhandenen automatisierten Konfigurationen scheint es nicht genügend Zeit oder einen sicheren Ort zu geben, um in vielen Umgebungen experimentieren zu können.
Ewwhite

Mentoring durch die Senioren sowie eine gute Dokumentation und andere nachhaltige Praktiken (kein Aufbau von technischen Schulden) sind eine sehr gute Möglichkeit, das Wissen in Ihre PJs einzubringen.
Mfinni

Eigentlich denke ich, dass der sichere Ort heute in der VMS ist, da Sie nicht die gesamte physische Hardware benötigen. Jetzt mal / etc. Ja, das ist knapp :) Aber angesichts der Verfügbarkeit von kostenlosen / kostengünstigen Hypervisoren und der Anpassbarkeit von * nix-Betriebssystemen können Sie einige ziemlich komplexe Setups erstellen, um diese zu erlernen.
Doon

1
Interessante Herausforderung, die sich auf so viele Dinge in der IT-Welt bezieht. Kein Budget für die Ausbildung. Keine Zeit oder Ausrüstung zum Üben. VMs helfen viel, aber die Lücke bleibt.
Dave M

Antworten:


9

Ich habe den Vorteil, die Größe und Komplexität Ihrer Umgebung zu verstehen. Wenn Sie für einen Cloud- / Hosting-Anbieter arbeiten, können Sie davon ausgehen, dass Sie über eine große Anzahl kleiner und mittlerer Umgebungen (10 bis 100 Server) verfügen. Es gibt sicherlich tägliche Aufgaben, die von der jr erledigt werden. Techniker und NOC-Mitarbeiter, die sich wiederholen (Erstellen von Benutzerkonten, Konfigurieren von Sicherungsagenten usw.). Ebenso gibt es wahrscheinlich einige manuelle Dinge, die von der sr gemacht werden. Ingenieure möchten ESXi auf neuer Hardware installieren oder Dinge wie MPIO konfigurieren oder VMware-Module für bestimmte Hardwaresätze installieren. All diese Dinge können und sollten automatisiert werden.

Wenn Ihre Mitarbeiter in der Lage sind, den Großteil ihrer Arbeit zu erledigen, ohne zu automatisieren, sind Sie meiner Meinung nach überbesetzt. IT-Mitarbeiter, die einen ganzen Tag lang arbeiten können und zumeist aus manuellen Prozessen bestehen, haben keine Motivation zur Automatisierung. Warum sollten Sie eine neue Fähigkeit erlernen, die nicht als notwendig angesehen wird und die sogar beängstigend sein kann ? Denn die Notwendigkeit ist die Mutter, wenn Innovation.

So werden Sie irgendwann in Ihrem Unternehmen zu einer Größe heranwachsen, bei der Sie zappeln und auseinanderfallen, oder Sie beginnen, fast alles zu automatisieren und Spitzenleistungen zu erbringen. Sicherlich sollten die leitenden Ingenieure hier die Führung übernehmen und vielleicht sogar mit den nachwuchsingenieuren und den Mitarbeitern von NOC zusammenarbeiten, um einen Teil ihrer Arbeitslast zu automatisieren. Dies gibt dem jr. Ingenieure haben die Möglichkeit, das Framework mit vielen Skripten zu bearbeiten, mit denen sie bei Bedarf für jeden Mandanten und neue Hardwarerevisionen Anpassungen vornehmen können. Dies beseitigt den entmutigenden Gedanken an "Oh mein Gott, wo fange ich überhaupt an?" aus der Gleichung und gibt ihnen einen Starthilfe zur Lösung eines echten Problems. Das bringt mich zu meinem letzten Punkt. Bücher und Beispiele sind gut und schön, aber es gibtProblem, dem sie gegenüberstehen. Geben Sie ihnen ein Ziel, da auf allen neuen Servern für Tenant x bestimmte ESXi-Module installiert sein sollten, und arbeiten Sie dann mit ihnen zusammen, um dies zu erreichen. Passen Sie dann das Skript an, um in einer Umgebung mit mehreren Mandanten zu arbeiten.

Wie verbessert ein Sysadmin sein Shell-Scripting?

Nach Bedarf , wie oben beschrieben.

Gibt es noch einen Platz für Ingenieure, die im DevOps-Paradigma nicht mithalten können?

Sicher, es gibt viele Organisationen, die nicht auf die DevOps-Methodik umsteigen können oder wollen. Sie scheinen immer langweiligere Optionen zu sein, aber sie sind trotzdem Optionen.

Sollen wir einfach davon ausgehen, dass einige Leute zurückbleiben, wenn sich diese Technologien weiterentwickeln?

Wie bei jeder neuen Technologie - ja.


Sie werden nie jemanden haben, der wirklich in das Lernen investiert, bis er den Wert darin sieht. Wenn sie ihre täglichen Aufgaben manuell erledigen können, sind Sie überbesetzt und es gibt keinen Anreiz.


3
Ich las dies:you'll start automating almost everything *in* excel.
mfinni

Ja, auf 32-Bit-Excel-VB-Makros bauen Clouds auf. Wusstest du nicht !?
MDMarra

2
Ich habe das Gefühl, dass Sie richtig sein können ...
mfinni

2
Dieses Wissen sollte nicht verschwinden. Anstatt "Mach diese x Schritte" in deinem internen Wiki (oder was auch immer) zu dokumentieren, sagst du "Diese x Codezeilen installieren $ stuff" und kommentierst deinen Code auch stark zu solchen Dingen. Wenn Sie aufgrund des möglichen Wissensverlusts kein Skript erstellen, wird eine potenzielle Unreife in Ihrem Dokumentationsprozess sichtbar. Es ist kein Grund, Automatisierung zu vermeiden.
MDMarra

2
@MDMarra Was ist ein Wiki ?
Ewwhite

21

• Wie verbessert ein Sysadmin sein Shell-Scripting?

Übe, gemischt mit Drive. Es klingt banal, aber man muss neben dem Üben auch noch besser werden wollen . Wenn Sie nicht wirklich Spaß an Skripten haben, können Sie gezwungen sein, dies jahrelang zu tun, wenn Sie es müssen, und nie wirklich gut darin werden. Wenn Sie nicht besser werden möchten , können Sie jeden Tag bei der Arbeit neben dem besten Scripter der Welt sitzen und nicht einen Bruchteil der Fähigkeiten erlernen, die Sie haben könnten.

Ich kenne die Leute, die sich trotz ihrer Arbeit in der IT hartnäckig weigern, Skripte zu lernen. Es wird bald keinen Platz mehr für diese Leute in dieser Branche geben. Sie sind Teil einer sterbenden Generation.

( Ich spreche nicht über alte Leute, das meine ich im übertragenen Sinne.: P )

• Gibt es noch einen Platz für Ingenieure, die im DevOps-Paradigma nicht mithalten können?

Nee. Alles, was sie tun, kann und wird automatisiert werden.

Ich würde behaupten, wir hätten sie vielleicht sowieso nie ‚Ingenieure 'nennen sollen. Es ist schlimm genug , dass die IT - Branche das Wort ‚Ingenieur‘ für sie selbst angeeignet, was meiner Meinung nach ist eine Art der Beleidigung tatsächlichen Ingenieure , dass im Hochschulprogramm ausgegeben Jahre und rechtliche Zertifizierungen bekommen , so dass sie Brücken entwerfen könnten, Wolkenkratzer, Hadron Collider , etc ... das sind die echten Ingenieure.

Aber es gibt eine Ähnlichkeit ... Wenn Sie sich als "Ingenieur" in der IT-Branche bezeichnen möchten, bedeutet das zumindest, dass Sie Dinge schaffen . Sie sind erfinderisch und verbinden die Punkte auf eine neue Art und Weise, an die noch niemand gedacht hat. Du baust Dinge, von denen niemand wusste, wie wertvoll sie sein würden, bis du sie gemacht hast.

Wenn Sie keinen Code oder kein Skript verwenden, können Sie nicht viel mit Computern anfangen, außer sie zu warten und möglicherweise ein oder zwei Softwarepakete zu installieren. Vielleicht werfen Sie eine neue Festplatte in die alte MSA. In diesem Fall würde ich Sie als Administrator bezeichnen, aber nicht unbedingt als Ingenieur. Und ich würde sagen, ein Großteil Ihrer Arbeit läuft Gefahr, automatisiert zu werden.

• Sollen wir einfach davon ausgehen, dass einige Leute zurückbleiben, wenn sich diese Technologien weiterentwickeln?

Der Markt wird sich anpassen. Es kann sein, dass einige Leute keine sechsstelligen Gehälter verdienen, wenn sie diese nicht wirklich verdienen, was in dieser Branche ziemlich häufig vorkommt.


Ich finde, dass Kreativität und nicht nur die Fähigkeit zum Programmieren / Skripten ein Schlüsselfaktor ist. Es ist diese Kreativität, die Sie sich sagen müssen: " Oh, hey, ich könnte das automatisieren! ", Und dann kommt die Fähigkeit erst ins Spiel. Wenn Sie feststellen, dass Sie erst etwas schreiben, nachdem Ihr Chef es Ihnen gesagt hat, dann haben Sie vielleicht nicht den Antrieb oder die Kreativität, von der ich gesprochen habe ... und das sind zwei Eigenschaften, die sehr schwer, vielleicht unmöglich, zu lehren sind.


Sehr guter Einblick. Ich befürchte, dass die Mehrheit der IT-Mitarbeiter die Typen sind, die zurückgelassen werden müssen. Ich bin zu sehen , das jetzt ... Aber es spricht auch und Motivation zu fahren ...
ewwhite

7

Wie verbessert ein Sysadmin sein Shell-Scripting?

Wie kann man etwas verbessern? Lesen Sie Bücher, besuchen Sie Klassen und wenden Sie dann die erlernten Prinzipien an. (Oder eine Kombination der Methoden.) Dies wird absichtlich zu stark vereinfacht, da es nichts Besonderes ist, Skripte zu lernen, als zu lernen, wie man kocht oder ein Auto repariert.

Gibt es noch einen Platz für Ingenieure, die im DevOps-Paradigma nicht mithalten können?

Dies ist im Rahmen dieser Website schwer zu beantworten (wo klare / definierte Antworten auf gestellte Fragen erforderlich sind). Wir können dies vorhersagen, aber es gibt Probleme mit dem DevOps-Modell. Ich habe das Gefühl, dass es für eine Person sehr schwer ist, in beiden Disziplinen äußerst kompetent zu sein. Die Kosteneinsparungen eines 2-zu-1-Mitarbeiters sind derzeit für Unternehmen sehr attraktiv, aber es ist schwer zu sagen, ob dieser Trend anhält. Es ist auf jeden Fall kurzfristig.

Sollen wir einfach davon ausgehen, dass einige Leute zurückbleiben, wenn sich diese Technologien weiterentwickeln?

Nach dem aktuellen Stand der Dinge, ja. Die meisten von Ihnen beobachten es wahrscheinlich an Ihren eigenen Arbeitsplätzen. Sie sollten auf jeden Fall auf dem Laufenden bleiben und wissen, was der Markt aktuell verlangt. (Es gibt viele Stellenangebote für Hadoop in Ihrer Nähe? Lernen Sie Hadoop.) Wenn Sie nicht mit dem Markt Schritt halten, riskieren Sie, zurückgelassen zu werden.


> Wenn Sie nicht mit dem Markt Schritt halten, riskieren Sie, zurückgelassen zu werden. <Ist das nicht eine Tautologie?
Michael Martinez

5

Im Allgemeinen entsendet man keine Nachwuchsingenieure in eine komplexe Produktionsumgebung, die geschäftskritisch ist. Dafür haben Sie leitende Ingenieure. Junior-Ränge sollten in Entwickler- / Testsandboxen arbeiten dürfen.

Wenn Sie einen Techniker für Technology X benötigen und die Rolle intern ausfüllen möchten, suchen Sie sich jemanden, der bereit ist, dies zu lernen, finden Sie eine strukturierte Schulung und kombinieren Sie beides.

Finden Sie heraus, welche Fähigkeiten Sie in einer Abteilung benötigen. Finde jemanden, der bereit ist, sie zu lernen. Geld für Training unterrichten / verteilen.


In vielen Fällen ist der Aufbau von Kenntnissen in Technologie X eindeutig. Es gibt Zertifizierungs- und Schulungspfade für Cisco, VMware, EMC, Red Hat usw. Die Skripterstellung und die moderaten Entwicklungsfähigkeiten scheinen weniger trainierbar zu sein .
Ewwhite

5
Scripting ist Programmieren (ich hoffe, die Leute mit dem Stapelüberlauf kommen nicht vorbei, um einen Krieg zu beginnen). Es gibt eine Denkweise, eine Sichtweise und eine Herangehensweise an Probleme, in der nicht jeder gut sein wird. "Unterrichten der Scripting-Denkweise" ist das, was die Leute hoffentlich aus der Praxis lernen. ... und "moderate Entwicklungsfähigkeiten" sind nur allgemein genug, um nichts zu bedeuten. ---- Bezüglich des Programmierunterrichts schauen Sie sich die örtlichen Universitäten an, die Einführungskurse anbieten. Ein früher Informatikkurs kann einen großen Beitrag zur Vermittlung von Denkweisen leisten.
Daniel Widrick

3
Zur Hölle, UMass Lowell bietet Kurse zu "Bash Scripting" und "Unix / Linux Administration" an. Ich habe sie beide genommen. Gelehrt von Graubärten der alten Schule, die ohne Zweifel ihre Emacs-Profile zeigen wollten. (Online-Unterricht, also nehme ich einfach die Graubärte an.)
mfinni

@mfinni Ich hatte keine Ahnung! :)
ewwhite

Ich arbeite gerade am Programm UML BS in Information Technology. Alle es online, da ich in einer AS in CompSci übertragen, mit dem Wert eines ersten Jahres an der Labor Wissenschaft, Calc, etc
mfinni

1

Gibt es noch einen Platz für Ingenieure, die im DevOps-Paradigma nicht mithalten können?

"devops" ist nur ein neues Wort für etwas, das Sysadmins seit Jahrzehnten tun.

Sollen wir einfach davon ausgehen, dass einige Leute zurückbleiben, wenn sich diese Technologien weiterentwickeln?

Ganz im Gegenteil. Im Laufe der Zeit wird immer mehr technisches Personal benötigt. Jeder mit technischen Kenntnissen und Fähigkeiten wird einen Arbeitsplatz haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.