Ansible e Chef
Ansible® e o Chef são ferramentas open source de automação de TI criadas pela comunidade open source. Ambas 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 por sua facilidade de uso, graças à sua abordagem mais flexível e sem agente. A solução não exige a instalação de software extras nos destinos que serão automatizados. Em contrapartida, o Chef usa uma abordagem baseada em agente. Isso significa que é necessário instalar software em cada uma das máquinas. 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, e que exige um maior esforço de aprendizagem.
Neste artigo, você descobrirá as semelhanças e diferenças entre essas duas ferramentas.
Ferramentas de automação open source compatíveis
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 é atualmente 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, como 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.
Diferenças entre as abordagens do Ansible e do Chef
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 implantaçã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.
Os méritos do Ansible vêm da comunidade. Seu repositório principal no GitHub conta com milhares de colaboradores, sendo que dezenas de milhares de outros repositórios também dependem dele, segundo dados do último trimestre de 2022. 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 para ser simples e fácil de usar. 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 utiliza os conceitos de nó de controle (o local onde é executado) e nós gerenciados (os dispositivos 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 consegue 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 chamados Ansible Playbooks, escritos em YAML (uma linguagem que pode ser compreendida pelas pessoas). O Ansible utiliza a 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 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.
Glossário de automação que você precisa conhecer
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 se tornar um problema na hora de automatizar objetos em que o agente esteja indisponível ou não possa 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 precisar instalar 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 após realizar a configuração.
Gerenciamento da configuração: é o processo para manter sistemas computacionais, servidores e programas de software no estado desejado consistentemente. 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, reduzindo 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 as pessoas poderem entendê-la com facilidade. Ela pode ser usada com outras linguagens de programação. A YAML é um superconjunto do formato JavaScript Object Notation (JSON).
Qual é a melhor solução de automação?
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 pelo embasamento da ativa comunidade open source e o suporte da Red Hat.
Também é comum que as empresas utilizem diversas soluções de automação. O Ansible é compatível com um amplo ecossistema de integrações e pode ser utilizado com outras ferramentas de gerenciamento de configuração e automação, 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 escolha melhor 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 em diferentes áreas da TI (como automação de rede e infraestrutura) e bastante reconhecido por sua capacidade de integração com outras ferramentas.
Saiba o que os clientes, parceiros e analistas estão falando sobre o Ansible Automation Platform.
Diferencial da Red Hat
Com o open source como base, o Red Hat Ansible Automation Platform é uma solução empresarial por subscrição testada, com segurança reforçada e 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 de ponta a ponta voltada a equipes multifuncionais, ao mesmo tempo que oferece às equipes de desenvolvimento, engenharia e operações de automação uma experiência de integração pronta para uso.
Funcionalidades do Red Hat Ansible Automation Platform, como Red Hat Insights e 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 o 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.
IDC: Valor de Negócio do Red Hat Ansible Automation
Segundo a pesquisa do IDC, empresas que padronizam as operações com o Ansible Automation Platform experimentam uma melhoria significativa na eficiência operacional, velocidade e escalabilidade da TI, obtendo benefícios com um valor médio anual de US$ 14,81 milhões e alcançando um retorno sobre o investimento (ROI) de 668% em três anos