A resposta curta é "Gerenciamento de implantação do sistema operacional", "Gerenciamento da configuração" e "Pacote de software". A resposta longa segue.
Eu gostaria de acrescentar à resposta de Daniel Pittman com uma descrição do que forma um "sistema" na administração de sistemas.
Um sistema ou um ambiente será composto por:
- Servidores
- Sistema operacional
- Configuração
- Pacotes de fornecedores; e
- Pacotes locais
Envolvendo estes, serão processos como:
- Implantação do SO ou geração de imagens
- Gerenciamento de configurações
- Gerenciamento de pacotes de software
- Auditoria / registro
- Monitoramento
- Backups
E você gostaria de combiná-los para ajudá-lo a alcançar metas não funcionais, como:
- Repetibilidade
- Manutenção
- Mensurabilidade
- Desempenho
- Rastreabilidade
- Testabilidade
- Alternância
Este é um rápido despejo cerebral. Tenho certeza que mais poderia ser adicionado a todas as listas.
Sua pergunta toca em vários desses sem usar as palavras específicas. Por exemplo, você deseja poder implantar com facilidade e reverter, ou seja, deseja manter a capacidade de manutenção. você quer fazê-lo em um ambiente de teste e testá-lo até que ele passe, ou seja, capacidade de repetição, testabilidade e mensurabilidade; Você está pensando em colocar imagens de vm no controle de versão, porque você gostaria de repetibilidade do sistema operacional e implementações de configuração.
Existem muitas ferramentas para ajudá-lo, algumas delas mencionadas por Daniel. Alguns outros são:
- Kickstarts (baseado em RedHat), Preseed (baseado em Debian), WDS (MS Windows) para implantar ambientes conhecidos de SO
- Spacewalk / Satellite (baseado em RedHat), Políticas de Grupo (MS Windows) para configuração e gerenciamento de pacotes
- Sistemas de empacotamento YUM e APT para gerar, implantar, atualizar e remover pacotes (conjuntos de binários, dados e configurações que compõem um software)
- Nagios, OpenNMS e SCOM para monitorar
- Amanda, Bacula e Windows Backup Server para backups
- Munin, PCP e Hyperic para monitoramento de desempenho
- CVS, SVN, GIT ou Bazaar para controle de versão
- Hudson e Jenkins para gerenciamento de construções
- Selênio e robô para testes
- Bugzilla, Request Tracker e Jira para gravação, comunicação e rastreamento
Mais uma vez, esta não é uma lista abrangente, mas algo que mantenho na mente para me orientar e espero que também o ajude.