Ispirato da questa domanda , chiedo il contrario: quanto sulla programmazione devono sapere gli amministratori di sistema? Più specificamente, quali strumenti di programmazione sono utili per un amministratore di sistema?
Ispirato da questa domanda , chiedo il contrario: quanto sulla programmazione devono sapere gli amministratori di sistema? Più specificamente, quali strumenti di programmazione sono utili per un amministratore di sistema?
Risposte:
Vorrei iniziare con:
L'amministrazione del sistema è solo programmazione. Un sistema di gestione della configurazione consente di vedere l'intera infrastruttura come una macchina distribuita. Come amministratore di sistema, il tuo compito è programmare questa macchina.
Conosci un editor di testo. Di solito vi per amministratori di sistema, emacs per programmatori.
Impara a scrivere. Scegli un linguaggio di scripting. Perl è un favorito perenne, così come la combinazione shell / sed / awk. Ruby e Python possono funzionare, ma per molte cose gli oggetti sono il paradigma sbagliato.
Sapere come scrivere documentazione leggibile.
Controllo della versione. Fondamentale per la manutenzione dei file di configurazione e delle piste di controllo.
Impara a pensare in termini di programmazione. Comprendere i paradigmi di programmazione procedurale, orientata agli oggetti e funzionale. Questi non possono mai essere usati, ma conoscerli ti rende infinitamente più produttivo.
Scopri come utilizzare un debugger (o più) e la registrazione.
Impara a usare un RDBMS. Esistono numerosi requisiti di elaborazione dei dati che possono essere semplificati utilizzando correttamente un RDBMS. Anche essere in grado di passare a un ruolo DBA su richiesta può fare meraviglie.
Test prima della distribuzione. Vedi la filosofia di sviluppo guidata dai test.
La programmazione delle coppie è buona. Chiedi a qualcun altro di guardarti alle spalle per imparare / consigliare / correggere.
Impara almeno a familiarizzare con un sacco di lingue. Impara una nuova lingua ogni anno.
Lo scripting è essenziale, ma secondo il consiglio che conoscere alcune lingue "reali" è un vantaggio decisivo. Ad esempio, puoi fare alcune cose molto utili con lo spazio dei nomi .NET System.DirectoryServices.
Sono programmatore e amministratore / integratore senior. Per lavorare dove faccio, devi sapere le seguenti cose:
La maggior parte degli amministratori junior può guardare uno dei nostri programmatori e dire (con autorità), sì, l'ho installato correttamente, ecco dove hai una perdita, motivo per cui il codice che hai appena spinto si sta rompendo. Oppure "No, non è la nostra versione di MySQL, guarda la tua query qui ..."
Penso che siamo un po 'diversi, quando assumiamo un amministratore di talento .. ci aspettiamo a metà di che (alla fine) trovino la loro strada per la programmazione, anche se è solo hackerare qualcosa che usiamo per funzionare nel modo in cui ne hanno bisogno per funzionare .
In sintesi, essere ben arrotondati non ti farà mai del male.
Molti, molti anni fa (Windows NT 3.1 in effetti) ho iniziato come programmatore specializzato in servizi di scrittura e persino il driver di dispositivo occasionale. Questo significa che conosci molto bene il kernel di Windows. Col tempo mi sono annoiato un po 'con la programmazione e sono passato alla gestione della rete. Ho scoperto che il mio background nella programmazione è stato immensamente prezioso ancora e ancora.
Non è solo che scrivere script VBScript è relativamente indolore. Sapere come funzionano le viscere di Windows, e in particolare come funziona l'IP, aiuta notevolmente a districare i problemi del server e della rete. Inoltre è una mentalità. I programmatori sono abituati alla documentazione e al controllo della versione, e mi fa orrore nel vedere quanti amministratori di Windows proveranno semplicemente a vedere se funziona e si preoccupano di districare il disordine in seguito.
Tutto molto bene, ma non è un consiglio molto utile dire andare via e lavorare come programmatore per dieci anni! Tuttavia, penso che aiuterebbe la maggior parte dei amministratori di sistema ad avere una certa esperienza di programmazione in un linguaggio "difficile" come C ++ o C #. E se hai programmatori addomesticati nella tua organizzazione vai a bere con loro!
John Rennie
Accadono cose brutte, il tuo codice sarà più lungo di quanto pensi. Fallire con garbo, con utili messaggi di errore. Sarai a corto di disco, RAM, CPU, tempo, ecc., Ti occuperai di esso.
Non essere così ottimista, che in produzione succederà una cosa strana una volta ogni milione.
Con tutte le descrizioni qui, non dirò che sono un amministratore di sistema. Ma il fatto che ho creato e gestito un paio di server Windows / Linux, devo ammettere qualcosa:
in linux, lo script bash è un must da sapere - se sai come integrarlo con perl / awk / etc, è meglio. Ho scoperto che molti compiti sono diventati più facili usandolo.
Conoscere di programmare in C / C ++ aiuta molto. A volte devi modificare un codice sorgente GNU (se ne usi uno) per soddisfare le tue esigenze perché diventato un prodotto GNU non garantisce che otterrai sempre l'aiuto di cui hai bisogno in tempo - e molte volte sono scritte in C / C ++.
Saper legare al tuo LDAP e recuperare le informazioni necessarie nel tuo linguaggio di scripting preferito è la chiave di tutto, dalla risoluzione dei problemi al potenziamento reale di vari tipi di automazione (provisioning di account e risorse, controlli più intelligenti sugli account degli utenti o dei computer).
Può sembrare semplice ma ho visto molti negozi bread-n-butter in cui la gente non pensa di avere bisogno di questo tipo di amministrazione del sistema. Un sacco di posti spendono un sacco di soldi in grosse serie di strumenti amministrativi e, per quanto posso dire, il 95% di ciò per cui usano gli strumenti avrebbe potuto essere fatto con poche ore di scripting se qualcuno lo sapesse o sapesse come fallo.