Inspiriert von dieser Frage stelle ich die umgekehrte Frage : Wie viel über die Programmierung müssen Systemadministratoren wissen? Welche Programmiertools sind für einen Systemadministrator besonders nützlich?
Inspiriert von dieser Frage stelle ich die umgekehrte Frage : Wie viel über die Programmierung müssen Systemadministratoren wissen? Welche Programmiertools sind für einen Systemadministrator besonders nützlich?
Antworten:
Ich würde anfangen mit:
Die Systemadministration programmiert einfach. Mit einem Konfigurationsmanagementsystem können Sie Ihre gesamte Infrastruktur als verteilte Maschine betrachten. Als Systemadministrator müssen Sie diese Maschine programmieren.
Kenne einen Texteditor. Normalerweise vi für Sysadmins, Emacs für Programmierer.
Wissen, wie man Skripte erstellt. Wählen Sie eine Skriptsprache. Perl ist ein Dauerbrenner, genau wie die Shell / Sed / Awk-Kombination. Ruby und Python können funktionieren, aber für viele Dinge sind Objekte das falsche Paradigma.
Wissen, wie man eine lesbare Dokumentation schreibt.
Versionskontrolle. Ausschlaggebend für die Verwaltung von Konfigurationsdateien und Prüfpfaden.
Lernen Sie, in Programmierbegriffen zu denken. Verstehen Sie prozedurale, objektorientierte und funktionale Programmierparadigmen. Diese dürfen nie verwendet werden, aber wenn Sie sie kennen, sind Sie unendlich produktiver.
Erfahren Sie, wie Sie einen Debugger (oder mehr) verwenden und protokollieren.
Erfahren Sie, wie Sie ein RDBMS verwenden. Es gibt viele Datenverarbeitungsanforderungen, die durch die korrekte Verwendung eines RDBMS vereinfacht werden können. Sogar die Möglichkeit, bei Bedarf zu einer DBA-Rolle zu wechseln, kann Wunder bewirken.
Vor der Bereitstellung testen. Siehe die Philosophie der testgetriebenen Entwicklung.
Paarprogrammierung ist gut. Lassen Sie jemanden über Ihre Schulter schauen, um zu lernen / beraten / korrigieren.
Lernen Sie, zumindest eine vorübergehende Vertrautheit mit einer Reihe von Sprachen zu haben. Lerne jedes Jahr eine neue Sprache.
Das Schreiben von Skripten ist wichtig, aber ich würde dem Rat folgen, dass das Wissen um einige "echte" Sprachen ein definitiver Bonus ist. Sie können beispielsweise mit dem Namespace .NET System.DirectoryServices einige sehr nützliche Dinge tun.
Ich bin Programmierer und leitender Administrator / Integrator. Um dort zu arbeiten, wo ich arbeite, müssen Sie die folgenden Dinge wissen:
Die meisten Junior-Administratoren können sich einen unserer Programmierer ansehen und sagen (mit Autorität), ja, ich habe es korrekt installiert. Hier haben Sie ein Leck, weshalb der Code, den Sie gerade gepusht haben, kaputt ist. Oder "Nein, es ist nicht unsere Version von MySQL, sehen Sie sich Ihre Frage hier an ..."
Ich denke, wir sind ein bisschen anders, wenn wir einen begabten Administrator einstellen. Wir gehen davon aus, dass sie (irgendwann) den Weg zum Programmieren finden, auch wenn es nur darum geht, etwas zu hacken, mit dem wir so arbeiten, wie sie es brauchen .
Zusammenfassend kann gesagt werden, dass eine gute Rundung Sie niemals verletzen wird.
Vor vielen, vielen Jahren (Windows NT 3.1) habe ich als Programmierer angefangen, der sich auf das Schreiben von Diensten und sogar auf gelegentliche Gerätetreiber spezialisiert hat. So lernen Sie den Windows-Kernel sehr gut kennen. Mit der Zeit langweilte ich mich ein wenig mit der Programmierung und wechselte zum Netzwerkmanagement. Ich habe festgestellt, dass mein Hintergrund in der Programmierung immer wieder von unschätzbarem Wert ist.
Es ist nicht nur so, dass das Schreiben von VBScript-Skripten relativ schmerzlos ist. Wenn Sie wissen, wie die Eingeweide von Windows funktionieren und insbesondere wie IP funktioniert, können Sie ungerade Server- und Netzwerkprobleme in den Griff bekommen. Es ist auch eine Denkweise. Programmierer sind an Dokumentation und Versionskontrolle gewöhnt, und es erschreckt mich, wenn ich sehe, wie viele Windows-Administratoren einfach etwas ausprobieren, um zu sehen, ob es funktioniert.
Alles sehr gut, aber es ist kein nützlicher Rat, zehn Jahre als Programmierer zu arbeiten! Ich denke jedoch, dass es den meisten Systemadministratoren helfen würde, Erfahrung in der Programmierung in einer "harten" Sprache wie C ++ oder C # zu haben. Und wenn Sie zahme Programmierer in Ihrer Organisation haben, gehen Sie mit ihnen trinken!
John Rennie
Schlimme Dinge passieren, Ihr Code wird länger existieren, als Sie denken. Schlagen Sie ordnungsgemäß mit nützlichen Fehlermeldungen fehl. Die Festplatte, der RAM, die CPU, die Zeit usw. gehen zur Neige.
Seien Sie nicht so optimistisch, dass es in der Produktion viel zu oft vorkommt, dass einmal in einer Million eine seltsame Ausgabe erscheint.
Bei all den Beschreibungen hier werde ich nicht sagen, dass ich ein Sysadmin bin. Aber die Tatsache, dass ich ein paar Windows / Linux-Server erstellt und verwaltet habe, muss ich zugeben:
Unter Linux ist Bash-Scripting ein Muss. Wenn Sie wissen, wie man es in Perl / awk / etc integriert, ist es besser. Ich stellte fest, dass viele Aufgaben dadurch einfacher wurden.
Zu wissen, wie man in C / C ++ programmiert, hilft sehr. Manchmal müssen Sie einen GNU-Quellcode (falls Sie einen verwenden) an Ihre Bedürfnisse anpassen, da ein GNU-Produkt nicht sicherstellt, dass Sie immer die Hilfe erhalten, die Sie rechtzeitig benötigen - und oftmals sind sie in C / C ++ geschrieben.
Das Wissen, wie Sie sich an Ihr LDAP binden und die erforderlichen Informationen in der Skriptsprache Ihrer Wahl abrufen können, ist der Schlüssel für alles, von der Fehlerbehebung bis hin zur Optimierung verschiedener Automatisierungstypen (Konto- und Ressourcenbereitstellung, intelligentere Überprüfung von Benutzer- oder Computerkonten).
Mag einfach erscheinen, aber ich habe viele Bread-n-Butter-Läden gesehen, in denen die Leute nicht glauben, dass sie eine solche Systemadministration benötigen. Viele Unternehmen geben viel Geld für umfangreiche administrative Tools aus, und soweit ich weiß, hätten 95% der Aufgaben, für die sie die Tools verwenden, mit ein paar Stunden Skripting erledigt werden können, wenn jemand das gewusst hätte oder gewusst hätte, wie TU es.