Pesquisa de site

As 10 principais ferramentas de gerenciamento de configuração que você precisa conhecer


Em poucos anos, o DevOps passou de um movimento marginal para um item obrigatório para qualquer líder de TI. Há muito burburinho em torno disso, mas também há muito conhecimento prático. Provisionamento de ambientes, implantação de aplicativos, manutenção de infra-estruturas - todas essas são tarefas críticas, porém delicadas, tradicionalmente feitas manualmente. E se pudéssemos fazer com que uma máquina fizesse todas essas coisas por nós, não apenas economizando horas de trabalho, mas também removendo o elemento de erro humano?

Por que o gerenciamento de configuração?

O software de gerenciamento de configuração permite o uso de práticas de desenvolvimento de software testadas e comprovadas para gerenciar e provisionar data centers em tempo real por meio de arquivos de definição de texto simples. Alguns consideram as soluções CM como "DevOps in a Box", mas isso não está certo. O DevOps é sobre colaboração entre pessoas, enquanto as ferramentas de CM são apenas isso: ferramentas para automatizar a aplicação de estados de configuração. Como qualquer outra ferramenta, eles são projetados para resolver certos problemas de certas maneiras. A eficácia com que eles fazem isso depende do conhecimento e da habilidade da pessoa que os empunha.

Facilitamos a obtenção de uma visão geral rápida de cada ferramenta e a comparação com alternativas, para que você possa encontrar a ferramenta de gerenciamento de configuração certa para você (e ser capaz de explicar por que você não escolheu as opções X, Y e Z).

Benefícios e riscos

Automatizar as alterações no estado de configuração da sua infraestrutura é uma faca de dois gumes: você pode fazer alterações muito rapidamente, mas alguém ou outra coisa precisa validar essas alterações. Ao considerar qual ferramenta de gerenciamento de configuração selecionar, você também deve pensar em quais ferramentas complementares usará para evitar os efeitos dispendiosos da automação da implantação de bugs em sua infraestrutura como código. Além disso, as ferramentas de gerenciamento de configuração de software (ou ferramentas SCM) são controle de versão e textualmente amigável, podemos fazer alterações no código e as alterações podem ser feitas como uma solicitação de mesclagem e enviar para revisão.

Com as ferramentas de gerenciamento de configuração, muitas das implementações específicas do sistema operacional de uma configuração são abstraídas para você. O mesmo arquivo de configuração pode ser usado para gerenciar, por exemplo, a instalação do Apache HTTPD nos sistemas Red Hat e Ubuntu.

A configuração inadequada pode ser um enorme risco de segurança cibernética, resultando em violações de dados e outros ataques cibernéticos. Se você está automatizando a configuração de sua infraestrutura, deve pensar em segurança cibernética, segurança da informação e gerenciamento de riscos da informação.

Você também deve pensar em quão seguras são suas ferramentas de gerenciamento de configuração e se você está dando a elas acesso a muitas informações confidenciais. Pense no gerenciamento de riscos do fornecedor e tenha uma estrutura de gerenciamento de riscos de terceiros em mãos e realize uma avaliação de risco de segurança cibernética.

1. CFEngine

O CFEngine é uma das ferramentas de gerenciamento de configuração de código aberto mais antigas que fornece configuração de automação para grandes sistemas de computador, incluindo o gerenciamento unificado de servidores, sistemas, usuários, dispositivos de rede incorporados, dispositivos móveis e muito mais. Nós o comparamos com o Puppet, também uma tecnologia estabelecida:

"CFEngine é executado em C, ao contrário do uso de Ruby pelo Puppet. C é o nível mais baixo das duas línguas, e uma das principais queixas em relação ao CFEngine é que a curva de aprendizado é muito íngreme. Isso significa que o CFEngine tem um consumo de memória dramaticamente menor, ele é executado mais rápido e tem muito menos dependências."

2. Marionete

O relatório anual "State of DevOps" da Puppet é um dos melhores recursos para tendências em DevOps. Conhecer os pontos fortes e fracos da plataforma Puppet é cada vez mais importante para as pessoas em operações. O Puppet usa uma linguagem declarativa ou Ruby para descrever a configuração do sistema. Ele é organizado em módulos e os arquivos de manifesto contêm as metas de estado desejado para manter tudo conforme necessário.

"Afirma-se frequentemente que o Puppet é uma ferramenta que foi construída com os administradores de sistemas em mente. A curva de aprendizado é menos imponente devido ao fato de o Puppet ser principalmente orientado por modelos. Entender as estruturas de dados JSON em manifestos do Puppet é muito menos assustador para um administrador de sistemas que passou a vida na linha de comando do que a sintaxe Ruby."

A edição de código aberto do Puppet está disponível gratuitamente, enquanto o Puppet Enterprise é gratuito para até 10 nós. Observação: depois que o Puppet for instalado, cada nó (servidor físico, dispositivo ou máquina virtual) na infraestrutura terá um agente do Puppet instalado.

Comparamos o Puppet ao Chef, seu concorrente mais próximo: Puppet vs. Chef

3. Chef

Ao lado do Puppet, o Chef é o outro peso pesado no mercado de CM e plataformas de automação. Ele gerencia servidores na nuvem, no local ou em um ambiente híbrido. Ser independente de nuvem permite que você gerencie os ambientes de data center e nuvem ao mesmo tempo, mesmo quando você muda seus provedores de nuvem.

"Assim como o Puppet, o Chef também é escrito em Ruby, e sua CLI também usa uma DSL baseada em Ruby. O Chef utiliza um modelo de agente mestre e, além de um servidor mestre, uma instalação do Chef também requer uma estação de trabalho para controlar o mestre. Os agentes podem ser instalados a partir da estação de trabalho usando a ferramenta 'faca' que usa SSH para implantação, aliviando a carga de instalação."

Veja como ele se compara ao recém-chegado CM Ansible: Ansible vs. Chef

4. Ansible

Mais recente que o Chef ou o Puppet, o Ansible é a melhor ferramenta de código aberto de gerenciamento de configuração, implantação, orquestração e também mecanismo de automação. Na verdade, ele está incluído em distribuições Linux populares, como o Fedora. Ele ajuda na automação da infraestrutura de TI, desde o provisionamento de software e gerenciamento de configuração até a implantação de aplicativos, proporcionando grandes ganhos de produtividade.

"Atualmente, suas soluções consistem em duas ofertas: Ansible e Ansible Tower, esta última apresentando a interface do usuário e o painel da plataforma. Apesar de ser um player relativamente novo na arena quando comparado a concorrentes como Chef ou Puppet, ganhou uma reputação bastante favorável entre os profissionais de DevOps por suas operações diretas e recursos de gerenciamento simples."

Confira os prós e contras de usar o Ansible: os 5 melhores e piores atributos do Ansible

O Ansible é uma das nossas ferramentas favoritas. Você pode usar o Ansible para executar o mesmo comando em vários servidores a partir da linha de comando. Você também pode usá-lo para automatizar tarefas (como adicionar usuários, instalar pacotes e atualizar configurações de servidor) usando guias estratégicos escritos em YAML, facilitando a comunicação entre equipes técnicas e não técnicas. O Ansible é simples, sem agente e fácil de ler para programadores e não programadores.

Nenhum agente significa menos sobrecarga em seus servidores. Uma conexão SSH é necessária no modo push (o padrão), mas o modo pull está disponível conforme necessário. Os playbooks podem ser escritos com comandos mínimos ou dimensionados com tarefas de automação mais elaboradas, incluindo funções, variáveis e módulos.

5. Pilha de sal

O principal fornecedor do ideal de "infraestrutura como código", o SaltStack ganhou um número considerável de seguidores, apesar de ter feito uma aparição relativamente tardia no mercado devido às suas muitas integrações com provedores de nuvem como Google Cloud, Amazon Web Services (AWS), etc

"O Salt, assim como o Ansible, é desenvolvido em Python. Também foi desenvolvido em resposta à insatisfação com a hegemonia do Puppet/Chef, especialmente sua baixa velocidade de implantação e restrição de usuários ao Ruby. O Salt está a meio caminho entre o Puppet e o Ansible - ele suporta Python, mas também força os usuários a escrever todos os comandos CLI em Python ou na DSL personalizada chamada PyDSL. Ele usa um servidor mestre e agentes implantados chamados minions para controlar e se comunicar com os servidores de destino, mas isso é implementado usando a biblioteca de mensagens ZeroMq na camada de transporte, o que o torna algumas ordens de magnitude mais rápido que o Puppet/Chef.

Comparamos o Ansible com o SaltStack, dois players mais novos no CM: Ansible vs. Salt

6. Estivador

Desde o lançamento em 2013, o Docker é relativamente novato que conquistou o mundo do DevOps e do desenvolvimento de software. A chave para o sucesso do Docker é sua tecnologia leve de conteinerização:

>

"Sua tecnologia implanta aplicativos de software com todas as partes necessárias em um contêiner, garantindo assim que ele seja executado em qualquer servidor Linux, independentemente da configuração e/ou configurações. Os contêineres podem ser criados, configurados e salvos como modelos para uso em outros hosts que executam o mecanismo do Docker. Esses modelos podem ser usados para criar mais contêineres com o mesmo sistema operacional, configuração e binários."

7. DSC do PowerShell

Não é superado por tecnologias de código aberto, a solução da Microsoft para CM é o PowerShell DSC:

"O DSC é uma nova plataforma de gerenciamento no Windows PowerShell que permite implantar e gerenciar dados de configuração para serviços de software e gerenciar o ambiente no qual esses serviços são executados.
A DSC fornece um conjunto de extensões de linguagem do Windows PowerShell, novos cmdlets do Windows PowerShell e recursos que você pode usar para especificar declarativamente como deseja que seu ambiente de software seja configurado. Ele também fornece um meio de manter e gerenciar as configurações existentes."

8. Ferramenta de configuração TeamCity

TeamCity também é um dos servidores de gerenciamento e integração contínua desenvolvidos pela Jet Brains e baseados na linguagem de programação Java.

Saiba mais sobre TeamCity vs. Jenkins para integração contínua.

9. Ferramenta de configuração JUJU

Juju é uma ferramenta de código aberto que enfatiza principalmente a diminuição da sobrecarga operacional de software de nova geração. O Juju oferece recursos como configuração, dimensionamento, implantação rápida, integração, etc. O JUJU não fornece instruções claras sobre como usar o provedor de nuvem OpenStack.

10. Leme

O Rudder é uma ferramenta de gerenciamento de infraestrutura de TI de código aberto que funciona em cima do CFEngine. A função exclusiva de gerenciamento de ativos do leme é capaz de identificar nós, bem como suas características, e isso pode ser útil ao executar ações de gerenciamento de configuração. Esse CMT faz uso do gerenciamento de ativos para identificar nós para gerenciamento de configuração.

O leme depende de um agente local leve que é instalado em cada sistema gerenciado. A interface web do lado do servidor do Rudder é construída pela linguagem Scala e seu agente local é escrito na linguagem C.

Planeje o sucesso

Independentemente da ferramenta que você usa para o gerenciamento de configuração, a maneira de iniciar seu projeto de automação é descobrir o que você tem. Automatizar processos ruins ou infraestrutura mal compreendida é uma maneira rápida e cara de multiplicar seus problemas. Para realmente tirar o máximo proveito de qualquer ferramenta de automação, primeiro você precisa entender onde as minas terrestres já existem.

Artigos relacionados