it-swarm-pt.tech

Que coisas de programador cada administrador de sistema deve saber?

Inspirado por esta 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 sistema ter?

20
Tim
  • Controle de versão. Ser capaz de gerar, ler e aplicar patches. Saiba como usar um sistema de controle de versão que apresenta versões amplas do repositório e por que você quer uma. Saiba como escrever changelogs descritivos e por que você os quer. Saiba como pesquisar os logs de um repositório por palavras-chave e prazos.
  • Scripting. Faça algo uma vez e siga seu caminho. Faça isso duas ou mais vezes, faça uma vez e depois escreva um script.
  • Depuração. Saiba como ler um rastreamento de pilha e como relatar erros relevantes ao seu contato de suporte de software. Encontrar o erro é bom e útil, mas saber como corrigi-lo pode exigir muito investimento na leitura do código. Faça a parte que é mais fácil para você e deixe que eles façam a que é mais fácil para eles.
  • Teste. Monitore continuamente e registre os erros. Usado em conjunto com o controle de versão e teste, você tem uma boa ideia do que pode ter dado errado e o que mudou naquela época. Monitore a produção e a pré-produção.
  • Revisão por pares. Propor e revisar mudanças nos sistemas de produção. Teste na pré-produção, determine exatamente o que precisa ser feito e registre quais serviços podem ser afetados por quanto tempo. Não deixe o Gerenciamento de Mudanças se degradar em batalhas políticas de poder burocrático.
  • Criptografia de estudo. Um administrador de sistema moderno é responsável pelos recursos de rede; adicionar segurança como etapa final está entre o impossível e uma proposição muito cara. Compreender a criptografia de chave pública, práticas de manuseio de senhas e criptografia em geral será extremamente valioso.
29
jldugger

Eu começaria com:

  1. Como escrever mais do que os scripts mais básicos, não importa o idioma. A automação é sua amiga.
  2. Como executar um depurador/saber ler relatórios de travamento de algum tipo: isso torna muito mais fácil descobrir um relatório de travamento e a quem perguntar o que diabos.
  3. Controle de versão - não apenas para código, mas para qualquer coisa que valha a pena manter um histórico ou controle de alterações.
9
Chealion

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. Normalmente vi para administradores de sistemas, emacs para programadores.

Saiba como fazer um script. Escolha uma linguagem de script. Perl é um eterno favorito, assim como o combo 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. Compreender paradigmas de programação procedural, orientada a objetos e funcional. Eles podem nunca ser usados, mas conhecê-los torna você infinitamente mais produtivo.

Aprenda a usar um depurador (ou mais) e registro.

Aprenda a usar um RDBMS. Existem muitos requisitos de processamento de dados que podem ser simplificados usando um RDBMS corretamente. Até poder mudar para uma função de DBA sob demanda pode fazer maravilhas.

Teste antes da implantação. Veja a filosofia de desenvolvimento orientado a testes.

A programação em pares é boa. Peça a outra pessoa para cuidar de você para aprender/aconselhar/corrigir.

Aprenda a ter pelo menos uma familiaridade passageira com vários idiomas. Aprenda um novo idioma todos os anos.

7
Devdas
  • Saiba como programar. Sim, isso é importante: como disse um comentarista, se você fizer isso mais de uma vez, escreva um script - e bem.
  • Conheça as ferramentas incluídas em uma instalação de sistema operacional padrão. Para administradores UNIX, isso significa ferramentas como Korn Shell (ksh) e Perl e vi. Não confie no Emacs ou Ruby ou Tcl ou C Shell presentes.
  • Conheça a rede. Como os pacotes Ethernet são agrupados? Qual é a aparência de um pacote? Quais são os diferentes tipos de pacote? Conheça ferramentas como tcpdump, wireshark, snoop e outras.
  • Escreva código portátil. Se o código for executado no Linux - e Tru64 - e Solaris - e OpenVMS - então escreva o código portátil. Mesmo que funcione apenas em duas versões do UNIX - torne-o portátil. Mas então, se ele não precisa ser portátil, não gaste mais tempo com ele.
  • Saiba onde está a documentação. Para Perl, isso significa perldoc, Perl Mongers, Perl.org, etc. Para ksh, isso significa a página de manual e seus livros favoritos do Korn Shell.
  • Documento, documento, documento, documento! Documente seu código, crie páginas de manual, crie documentação em Perl embutida e tudo o mais que for apropriado. Explique como usar o programa e por que você o codificou dessa forma.
  • Conheça as ferramentas de empacotamento do seu sistema. Saiba como criar RPMs para Red Hat, ou depósitos HP-UX, ou pacotes Solaris: isso permitirá que você crie pacotes para seus sistemas e, assim, integrá-los ao processo de instalação.
5
Mei

O script é essencial, mas eu concordo com o conselho de que conhecer algumas linguagens "reais" é um bônus definitivo. Você pode fazer algumas coisas muito úteis com o namespace .NET System.DirectoryServices, por exemplo.

3
Maximus Minimus

Sou um programador e administrador/integrador sênior. Para trabalhar onde eu trabalho, você precisa saber o seguinte:

  • Como escrever scripts Shell (POSIX, sem Bashisms), um pouco de Perl, um pouco de Python
  • C básico (especificação UNIX única)
  • Como instalar uma cadeia de ferramentas do compilador
  • Como construir bibliotecas e outros projetos OSS a partir da fonte
  • O que Valgrind é e como usá-lo para detectar vazamentos de memória
  • Como lançar pacotes .rpm e .deb
  • Embora não não exijamos isso, um pouco PHP e um pouco LISP não fará mal

A maioria dos administradores juniores pode olhar para um de nossos programadores e dizer (com autoridade), sim, eu 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 é nossa versão do MySQL, olhe sua consulta aqui ..."

Acho que somos meio diferentes, quando contratamos um administrador talentoso .. meio que esperamos que eles (eventualmente) encontrem seu caminho para a programação, mesmo que seja apenas hackeando algo que usamos para funcionar da maneira que eles precisam para funcionar .

Em resumo, ser bem arredondado nunca vai te machucar.

3
Tim Post

Coisas ruins acontecem, seu código vai durar mais tempo do que você pensa. Falha graciosamente, com mensagens de erro úteis. Você ficará sem disco, memória RAM, cpu, tempo, etc, lidar com isso.

Não seja tão otimista, aquele estranho problema que ocorre uma vez em um milhão acontecerá com muita frequência na produção.

1
Ronald Pottol

Com todas as descrições aqui, não vou dizer que sou um administrador de sistema. Mas o fato de que construí e gerencio alguns servidores windows/linux, devo admitir uma coisa:

  • no linux, o script bash é obrigatório - se você sabe como integrá-lo ao Perl/awk/etc, é melhor. Descobri que muitas tarefas se tornaram mais fáceis ao usá-lo.

  • Saber programar em C/C++ ajuda muito. Às vezes você tem que modificar um GNU código-fonte (se você usar um) para atender às suas necessidades porque se tornou um GNU produto não garante que você sempre obterá a ajuda de que você precisa na hora certa - e muitas vezes eles são escritos em C/C++.

1
Mario Patty Fc

Muitos, muitos anos atrás (Windows NT 3.1 na verdade), comecei como um programador especializado em serviços de escrita e até mesmo no driver de dispositivo ocasional. 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 e outra vez.

Não é só que escrever scripts VBScript seja relativamente fácil. Saber como as entranhas do Windows funcionam, e particularmente como o IP funciona, ajuda muito a resolver problemas estranhos de servidor e rede. Também é uma mentalidade. Os programadores estão acostumados com documentação e controle de versão, e fico horrorizado ao ver quantos administradores do Windows vão apenas tentar algo para ver se funciona e se preocupar em desfazer a bagunça depois.

Tudo bem, mas não é um conselho muito útil dizer vá embora e trabalhe como programador por dez anos! No entanto, acho que ajudaria a maioria dos administradores de sistemas ter alguma experiência de 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

1
John Rennie
  • SQL - tudo funciona com bancos de dados
  • Programação - a linguagem não importa, contanto que você entenda a lógica e o processo, você pode aprender e se adaptar a qualquer linguagem.
  • Como DOCUMENTAR CÓDIGO e ALTERAÇÕES - este é enorme. Quantas vezes você ficou parado olhando para uma configuração tentando descobrir por que diabos alguém fez isso e o que isso afetaria se mudarmos de volta. Este vai além de qualquer coisa que você codifique ou script, este cobre quando você faz alterações nas configurações do firewall para lidar com um caso marginal quando o usuário X recebe um email do domínio Y em uma terça-feira à tarde quando está chovendo. E pode não ser você, pode ser o PFY que decide ir em frente e fazer isso e então tem que ligar para você às 2 da manhã nas suas férias porque tudo quebrou de uma maneira horrível.
  • Linguagens de sistema - no Windows, são coisas como Powershell e WMI que permitem que suas linguagens de script se conectem a alguns recursos muito poderosos e façam qualquer coisa em um PC. O Unix/Linux tem seu próprio conjunto de ferramentas que não estou qualificado para falar.
0
Shial

Saber como se conectar ao seu LDAP e recuperar as informações necessárias na linguagem de script de sua escolha é a chave para tudo, desde a solução de problemas até realmente intensificar vários tipos de automação (provisionamento de contas e recursos, verificações mais inteligentes em contas de usuário ou máquina).

Pode parecer básico, mas tenho visto muitas lojas de pão com manteiga onde as pessoas não acham que precisam desse tipo de administração de sistema. Muitos lugares gastam muito $$$ em grandes conjuntos de ferramentas administrativas e, pelo que posso dizer, 95% do que eles usam as ferramentas poderia ter sido feito com algumas horas de script se alguém soubesse ou soubesse como faça.

0
damorg

Descobri que conhecer os scripts bash, dos batch e powershell fornece a um administrador de sistema a estrutura para fazer quase tudo em qualquer sistema popular.

0
Beep beep