Inspirado por essa pergunta , pergunto o contrário: quanto de programação os administradores de sistema precisam saber? Mais especificamente, quais ferramentas de programação são úteis para um administrador de sistemas ter?
Inspirado por essa pergunta , pergunto o contrário: quanto de programação os administradores de sistema precisam saber? Mais especificamente, quais ferramentas de programação são úteis para um administrador de sistemas ter?
Respostas:
Eu começaria com:
A administração do sistema é apenas programação. Um sistema de gerenciamento de configuração permite que você veja toda a sua infraestrutura como uma máquina distribuída. Como administrador de sistema, seu trabalho é programar esta máquina.
Conheça um editor de texto. Geralmente vi para sysadmins, emacs para programadores.
Saiba como fazer script. Escolha uma linguagem de script. Perl é um eterno favorito, assim como a combinação shell / sed / awk. Ruby e Python podem funcionar, mas para muitas coisas os objetos são o paradigma errado.
Saiba como escrever documentação legível.
Controle de versão. Crucial para manter arquivos de configuração e trilhas de auditoria.
Aprenda a pensar em termos de programação. Entenda os paradigmas de programação procedural, orientada a objeto e funcional. Eles nunca podem ser usados, mas conhecê-los torna você infinitamente mais produtivo.
Aprenda a usar um depurador (ou mais) e log.
Aprenda a usar um RDBMS. Existem muitos requisitos de processamento de dados que podem ser simplificados usando um RDBMS corretamente. Mesmo poder mudar para uma função de DBA sob demanda pode fazer maravilhas.
Teste antes da implantação. Veja a filosofia de desenvolvimento orientada a testes.
A programação de pares é boa. Peça a alguém que cuide do seu ombro para aprender / aconselhar / corrigir.
Aprenda a pelo menos ter uma familiaridade passageira com vários idiomas. Aprenda um novo idioma todos os anos.
O script é essencial, mas eu recomendaria que conhecer algumas línguas "reais" seja um bônus definitivo. Você pode fazer algumas coisas muito úteis com o namespace .NET System.DirectoryServices, por exemplo.
Sou programador e administrador / integrador sênior. Para trabalhar onde trabalho, você precisa saber o seguinte:
A maioria dos administradores juniores pode olhar para um de nossos programadores e dizer (com autoridade): sim, eu o instalei corretamente, é aqui que você tem um vazamento, e é por isso que o código que você acabou de enviar está quebrando. Ou "Não, não é a nossa versão do MySQL, veja sua consulta aqui ..."
Eu acho que somos meio diferentes, quando contratamos um administrador talentoso ... esperamos que eles acabem encontrando o caminho para a programação, mesmo que seja apenas uma invasão de algo que usamos para funcionar da maneira que eles precisam. .
Em resumo, ser bem-educado nunca vai machucá-lo.
Muitos anos atrás (Windows NT 3.1, de fato), comecei como programador especializado em serviços de gravação e até mesmo em drivers de dispositivos ocasionais. Isso significa que você conhece o kernel do Windows muito bem. Com o tempo, fiquei um pouco entediado com a programação e mudei para o gerenciamento de rede. Descobri que minha formação em programação tem sido imensamente valiosa repetidamente.
Não é apenas que escrever scripts VBScript seja relativamente indolor. Saber como funcionam as tripas do Windows, e particularmente como o IP, ajuda bastante a resolver problemas estranhos de servidor e rede. Também é uma mentalidade. Os programadores estão acostumados à documentação e ao controle de versão, e me horroriza ver quantos administradores do Windows tentam algo para ver se funciona e se preocupam em desfazer a bagunça depois.
Tudo muito bem, mas não é um conselho muito útil dizer ir embora e trabalhar como programador por dez anos! No entanto, acho que ajudaria a maioria dos administradores de sistemas a ter alguma experiência em programação em uma linguagem "difícil" como C ++ ou C #. E se você tem programadores mansos em sua organização, vá beber com eles!
John Rennie
Coisas ruins acontecem, seu código terá mais tempo do que você pensa. Falha normalmente, com mensagens de erro úteis. Você ficará sem disco, memória ram, CPU, tempo, etc, para lidar com isso.
Não seja tão otimista, que uma vez estranha a cada milhão de edições acontecerá com muita frequência na produção.
Com todas as descrições aqui, não vou dizer que sou administrador de sistemas. Mas o fato de eu ter construído e gerenciado um servidor Windows / Linux, devo admitir algo:
no linux, o bash scripting é essencial - se você sabe como integrá-lo ao perl / awk / etc, é melhor. Eu descobri que muitas tarefas se tornaram mais fáceis usando-as.
Saber programar em C / C ++ ajuda muito. Às vezes, é necessário modificar um código-fonte GNU (se você usar um) para atender às suas necessidades, porque se tornou um produto GNU, não garante que você sempre obtenha a ajuda que precisa no prazo - e muitas vezes eles são escritos em C / C ++.
Saber como vincular-se ao LDAP e recuperar as informações necessárias na linguagem de script de sua escolha é essencial para tudo, desde a solução de problemas até a intensificação de vários tipos de automação (provisionamento de contas e recursos, verificações mais inteligentes nas contas de usuários ou máquinas).
Pode parecer básico, mas eu já vi muitas lojas de pão e manteiga, onde as pessoas não acham que precisam desse tipo de administração do sistema. Muitos lugares gastam muito dinheiro em grandes conjuntos de ferramentas administrativas e, até onde eu sei, 95% do que eles usam as ferramentas poderiam ter sido feitos com algumas horas de script se alguém soubesse disso ou soubesse como faça.