Ir para seção

Ansible vs Chef: o que você precisa saber

Copiar URL

O Ansible® e o Chef são ferramentas open source de automação de TI criadas pela comunidade. Ambos simplificam as operações de TI e o trabalho do DevOps, automatizando tarefas rotineiras como a configuração e o provisionamento de sistemas, implantações de software e gerenciamento de atualizações em inúmeros servidores ou dispositivos de endpoint.

O Ansible é conhecido pela simplicidade. Com sua abordagem mais flexível e sem agente, ele não requer a instalação de nenhum software adicional nos destinos a automatizar. Em contrapartida, o Chef usa uma abordagem baseada em agente. Isso significa que é necessário instalar software em cada uma das máquina. Outra diferença fundamental é que o Ansible usa YAML, uma linguagem de configuração baseada em Python criada para administradores e, por isso, mais fácil de aprender. Já o Chef usa Ruby, uma linguagem específica de domínio (DSL) voltada a desenvolvedores, o que exige um maior esforço de aprendizagem.

Neste artigo, você vai descobrir todas as semelhanças e diferenças entre eles.

Onde o Ansible e o Chef se encaixam no cenário geral das ferramentas de automação? Ansible, Chef, Salt e Puppet são quatro das ferramentas de automação open source mais usadas. Elas têm abordagens de automação distintas, mas todas são oferecidas como soluções empresariais comercializadas por diferentes empresas de software. Muitas organizações de TI usam mais de uma solução (às vezes combinadas) para diferentes finalidades.

  • O Ansible foi adquirido pela Red Hat em 2015, e hoje é disponibilizado como Red Hat® Ansible Automation Platform.
  • O Chef foi adquirido pela Progress em 2020. Atualmente, ele está disponível em diversas soluções comerciais, incluindo o Chef Enterprise Automation Stack.O 
  • Salt (conhecido no mercado como SaltStack) foi adquirido pela VMWare em 2020 como parte do portfólio do vRealize Automation, rebatizado recentemente como VMware Aria Automation. A VMware foi adquirida pela Broadcom em 2022.O 
  • Puppet tem suporte da Perforce e é disponibilizado em diversas soluções comerciais, incluindo o Puppet Enterprise e o Puppet Bolt.

Ansible

O Ansible é uma aplicação de software open source para a automação de TI. Ele é baseado em linha de comando e desenvolvido em Python.Com o Ansible, você configura sistemas, implanta software e orquestra fluxos de trabalho avançados para viabilizar tarefas como implementação de aplicações, atualizações de sistema, configuração e operação de rede e muito mais. O Red Hat Ansible Automation Platform é uma solução baseada no Ansible disponível por subscrição que traz inúmeras funcionalidades empresariais.

As maiores vantagens do Ansible vêm da comunidade. Seu principal repositório no GitHub conta com milhares de colaboradores. E, de acordo com dados do último trimestre de 2022, dezenas de milhares de outros repositórios também dependem dele. Todo ano acontece a famosa conferência anual de usuários da ferramenta, a AnsibleFest, que faz parte do Red Hat Summit. Além disso, encontros chamados Ansible Meetups são realizados com frequência ao redor do mundo. A comunidade de usuários é um grande agregador de conhecimento sobre o Ansible, e seus colaboradores mantêm a ferramenta fortemente integrada a outros projetos de software conhecidos. Os usuários do Ansible têm acesso a centenas de módulos e plugins que ajudam a ampliar os recursos da ferramenta.

O Ansible foi criado pensando na simplicidade e facilidade de uso. Ele também prioriza a segurança e a confiabilidade, com o mínimo de componentes variáveis. O Ansible usa o OpenSSH para transporte (com outros modos de transporte e de pull como alternativas) e uma linguagem legível para pessoas que permite iniciar os trabalhos de forma rápida e sem muito treinamento.

O Ansible usa os conceitos de nó de controle (o local onde é executado) e nós gerenciados (os dispositivos que são automatizados, geralmente uma máquina Linux® ou Windows). Por ser sem agente, ele pode se comunicar com dispositivos sem a necessidade de instalação de aplicações ou serviços no nó gerenciado. O Ansible Automation Platform pode estender os trabalhos de automação até os nós de execução, utilizando a tecnologia de automation mesh.

Os usuários podem orquestrar detalhadamente as diferentes partes da infraestrutura por meio de arquivos escritos em YAML (uma linguagem que pode ser compreendida pelas pessoas), chamados Ansible Playbooks. O Ansible usa uma abordagem de programação procedural (também conhecida como imperativa), que tenta preservar a configuração de uma infraestrutura de TI ao definir as etapas para alcançar um estado desejado.

Chef

O Chef é uma plataforma open source de automação de TI desenvolvida em Ruby DSL, que transforma a infraestrutura em código. Assim como nos Ansible Playbooks, o Chef usa definições reutilizáveis chamadas de cookbooks (livros de receitas) e recipes (receitas), o que explica o nome da solução. Cookbooks e recipes são usados para automatizar a forma como a infraestrutura deve ser configurada, implantada e gerenciada em diferentes redes e ambientes (on-premise, na nuvem ou híbrido).  

Diferentemente do Ansible, o Chef usa uma arquitetura baseada em agente. Isso significa que o servidor do Chef é executado na máquina principal, enquanto o cliente do Chef é executado como um agente em cada uma das máquinas clientes. Além disso, o Chef tem mais um componente chamado workstation (estação de trabalho) que agrega todas as configurações. Elas são testadas e depois extraídas do servidor Chef principal para as máquinas clientes, sem nenhum comando. Como a configuração para a extração exige experiência em programação, o Chef é mais difícil de usar do que as outras ferramentas de automação, até mesmo para profissionais experientes em DevOps.      

Arquitetura baseada em agente: usada pelo Chef, descreve um modelo de automação e infraestrutura que exige a execução de componentes de software específicos (chamados de agentes) nos ambientes gerenciados. Você precisa instalar o agente e todas as suas dependências em cada nó de destino, o que demanda mais regras e verificações de segurança. Essas exigências podem ser um problema na hora de automatizar objetos em que o agente está indisponível ou não pode ser executado. Além disso, os agentes precisam de manutenção.

Arquitetura sem agente: usada pelo Ansible, descreve uma maneira de automatizar e gerenciar dispositivos de TI sem a necessidade de instalação software de agentes nos ambientes gerenciados. O software de controle se conecta às máquinas remotas via SSH e inicia o gerenciamento delas sem um processo de configuração demorado. Com essa arquitetura, você não precisa manter um sistema de implantação depois de realizar a configuração.

Gerenciamento da configuração: é o processo para manter sistemas computacionais, servidores e programas de software no estado desejado de forma consistente. Assim, você tem certeza de que o sistema funciona como o esperado, ainda que alterações sejam feitas com o passar do tempo. É possível automatizar o gerenciamento da configuração, o que reduz os custos, a complexidade e o risco de falha humana.

DevOps e DevSecOps: esses termos significam desenvolvimento e operações e desenvolvimento, segurança e operações, respectivamente. Estas abordagens culturais, de automação e de design da plataforma integram a segurança como uma responsabilidade compartilhada em todo o ciclo de vida da TI. Na prática, DevOps e DevSecOps são a mesma coisa, pois sempre foi a intenção incluir a segurança na abordagem de DevOps. Hoje em dia, muitas pessoas preferem usar o termo DevSecOps para explicitar essa intenção.

YAML: é a sigla para Yet Another Markup Language (mais uma linguagem de marcação) ou YAML Ain’t Markup Language (YAML não é uma linguagem de marcação). Esta é uma linguagem de serialização de dados usada com frequência para escrever arquivos de configuração. A linguagem YAML foi concebida para que as pessoas a pudessem entendê-la com facilidade. Ela pode ser usada junto com outras linguagens de programação. A YAML é um superconjunto do formato JavaScript Object Notation (JSON).

Para escolher uma solução de automação, você precisa avaliar não só as funcionalidades disponíveis, mas também o panorama da plataforma em longo prazo Embora ambas ofereçam alta escalabilidade e interoperabilidade com máquinas de controle executadas no Linux/Unix e em nós executáveis no Windows, o Ansible se destaca pela comunidade open source ativa e o suporte da Red Hat.

As organizações costumam adotar várias soluções de automação. O Ansible pode ser conectado a um amplo ecossistema de integrações compatíveis e usado com várias outras ferramentas de gerenciamento de configuração e automação, assim como um orquestrador de recursos de automação. Além disso, o Ansible pode automatizar sistemas em hiperescaladores de nuvem pública, como a Amazon Web Services (AWS), o Microsoft Azure, o Google Cloud Platform e muitos outros.

Em comparação com o Chef, o Ansible é uma melhor escolha para usuários que buscam uma solução de automação sem agentes simples e fácil de usar. O Ansible também conta com uma grande comunidade de colaboradores e parceiros, além de ser amplamente adotado por diferentes áreas da TI (como automação de rede e de infraestrutura) e bastante reconhecido por sua capacidade de integração com outras ferramentas. 

Tendo o open source como fundamento, o Red Hat Ansible Automation Platform é uma solução empresarial por subscrição testada e reforçada, com suporte por todo seu ciclo de vida. Sua base é o projeto upstream Ansible, que se beneficia da experiência e inteligência dos seus milhares de colaboradores no mundo todo.

O Ansible Automation Platform inclui vários componentes upstream, mais de 140 Red Hat Ansible Certified Content Collections de mais de 60 parceiros e ferramentas de retorno sobre o investimento (ROI) como serviço que orientam a instalação, a configuração e uso da automação na sua empresa. A solução cria uma experiência de automação completa voltada a equipes multifuncionais, além de oferecer uma experiência pronta para uso às equipes de desenvolvimento, engenharia e operações de automação.

Funcionalidades do Red Hat Ansible Automation Platform como o Red Hat Insights e o automation analytics, oferecem informações acessíveis sobre o desempenho da sua automação. Assim você obtém mais precisão na hora de mensurar, monitorar e solucionar problemas. Com a automation mesh, você pode escalar a capacidade de controle e execução de maneira independente, disponibilizando a automação mais perto dos endpoints que precisam dela com pouco ou nenhum downtime. Isso permite proporcionar uma experiência de automação consistente no data center, na nuvem e na edge.

Como uma solução de automação de TI sem agente e fácil de usar, o Ansible se destaca pela simplicidade, flexibilidade e sua sólida comunidade de usuários.

Leia mais

Artigo

Noções básicas do Ansible

O Ansible automatiza processos de TI como provisionamento e gerenciamento de configuração. Conheça as noções básicas do Ansible com esta introdução aos principais conceitos.

Artigo

O que é gerenciamento de processos de negócios?

Gerenciamento de processos de negócios (BPM) é a prática de modelar, analisar e otimizar processos de ponta a ponta para alcançar os objetivos estratégicos.

Artigo

Por que escolher a Red Hat para a automação?

O Red Hat Ansible Automation Platform oferece todas as ferramentas necessárias para compartilhar a automação entre as equipes e implementá-la por toda a empresa.

Leia mais sobre automação

Soluções Red Hat

Os consultores estratégicos da Red Hat fornecem uma visão geral da sua organização, analisam os desafios e ajudam a superá-los com soluções abrangentes e econômicas.

Uma plataforma com suporte completo para implementar a automação em escala, de ponta a ponta.

Conteúdo adicional

Treinamentos Red Hat

Treinamento gratuito

Ansible Essentials: Simplicity in Automation Technical Overview

Treinamento gratuito

Red Hat Ansible Automation for SAP