Ir para seção

Ansible x Terraform, esclarecido

Copiar URL

O Red Hat® Ansible® Automation Platform e a HashiCorp Terraform são soluções de automação com raízes open source que adotam uma abordagem de infraestrutura como código (IaC) para automatizar ambientes de TI. 

Decidir qual dessas soluções é a melhor para sua organização não é tarefa fácil. Isso acontece porque não há uma maneira “correta” de automatizar ou uma ferramenta certa para esse processo, assim como não há apenas uma maneira de resolver um problema. O que sua empresa precisa é completamente diferente dos requisitos de outra organização do mesmo setor.

Ao pesquisar soluções de automação, sem dúvida você já deve ter visto muitos termos usados para descrever as principais diferenças e funcionalidades dos produtos. Vamos definir algumas das mais comuns e explorar como elas se relacionam entre si, bem como com o Ansible e o Terraform.A

orquestração é a execução coordenada de vários fluxos de trabalho. Cada fluxo de trabalho executa uma ou mais tarefas. Orquestrados em conjunto, esses fluxos de trabalho automatizam a configuração e o gerenciamento de sistemas, aplicações e serviços complexos. Essa coordenação geralmente segue regras pré-estabelecidas definidas em uma política. A orquestração também pode coordenar várias soluções de automação. Elas, por sua vez, executam os fluxos de trabalho de automação. 

Tanto o Ansible quanto o Terraform funcionam como orquestradores, porque podem invocar vários fluxos de trabalho de automação em sequência de acordo com políticas específicas. O Ansible tem módulos integrados para se conectar a outras ferramentas de automação (incluindo o Terraform) e gerenciá-las. Dessa forma, é possível padronizar sua abordagem de automação em todo o seu estado de TI usando o Ansible como a linguagem comum de nível superior para todas as equipes. O

provisionamento é o processo de criar e implantar a infraestrutura de TI nas aplicações e serviços. 

Tanto o Ansible quanto o Terraform podem ser usados para provisionar e desprovisionar a infraestrutura de TI. O Ansible também pode provisionar aplicações e serviços.O

gerenciamento de configuração é o processo em que você define e mantém a configuração da infraestrutura, aplicações e serviços.

Assim como muitas outras soluções de automação, o Ansible e o Terraform podem definir configurações e aplicá-las a vários destinos de infraestrutura. No entanto, a abordagem deles ao gerenciamento de configuração é diferente. O Terraform usa uma abordagem chamada programação declarativa, que tenta preservar a configuração de uma infraestrutura de TI definindo um estado desejado. O Ansible usa uma abordagem de programação procedimental (ou crucial), que tenta preservar a configuração de uma infraestrutura de TI definindo as etapas para alcançar um estado desejado. Cada processo é detalhado a seguir. 

Uma abordagem de infraestrutura como código (IaC) define e provisiona a infraestrutura por meio de um código que é executado automaticamente, em vez de utilizar processos manuais. Ao tratar uma infraestrutura de TI como código, as organizações podem automatizar tarefas de gerenciamento, aproveitando as práticas recomendadas de desenvolvimento de software e reduzindo o erro humano. 

Tanto o Ansible quanto o Terraform são ferramentas de IaC. No entanto, como mencionado, a programação usada por cada solução é diferente.A

programação declarativa é um método de escrita de códigos para descrever o resultado desejado do programa, em vez de detalhar como ele será executado. O foco é o estado final, e não comandos e etapas específicos necessários para chegar lá. 

O Terraform usa a linguagem de configuração HashiCorp (HCL) na automação e como uma abordagem de programação declarativa. Isso significa que a sequência de comandos que o Terraform precisa executar para realizar as alterações de configuração necessárias não é visível nem conhecida pelo usuário final. A

programação procedimental ou imperativa é um método de escrita de códigos para enviar ao computador uma lista de instruções (um guia detalhado) para a conclusão de uma tarefa. O foco é o processo, e não o estado final. Para sua linguagem de automação, o Ansible usa YAML, uma linguagem de serialização de dados legível. A sintaxe YAML é interpretada e executada de maneira processual, o que significa que o fluxo de trabalho de automação é executado na sequência em que foi gravado. 

O Ansible pode ser tanto declarativo quanto procedimental. Muitos módulos funcionam de maneira declarativa, mas outros utilizam uma abordagem de programação procedimental. Além disso, algumas construções na linguagem do Ansible, como condicionais e loops, permitem que os usuários definam uma lógica processual. Essa combinação oferece a flexibilidade para se concentrar no que você precisa fazer, em vez de aderir rigidamente a um paradigma. A

imutabilidade da configuração significa que não é possível alterar a configuração de uma infraestrutura ou aplicação. Por exemplo, o provisionamento da versão mais recente de uma aplicação exige que a versão anterior seja eliminada e substituída, em vez de modificada e atualizada. Os recursos são destruídos e recriados automaticamente. 

O Terraform usa uma abordagem de infraestrutura imutável. Com ela, os usuários podem dar os primeiros passos rapidamente, já que é possível criar, testar e descontinuar recursos com facilidade. No entanto, dependendo do tamanho da infraestrutura, ela pode se tornar complexa e difícil de gerenciar. Embora o Ansible tenha sido projetado pensando na mutabilidade de configuração, alguns fluxos de trabalho de automação podem ser projetados para adotar a abordagem de imutabilidade.A

mutabilidade da configuração significa que é possível alterar a configuração de uma infraestrutura ou aplicação. Por exemplo, é possível provisionar versões mais recentes de aplicações com a atualização ou modificação do recurso existente, em vez de eliminá-lo ou substituí-lo. 

O Ansible foi projetado para adotar a mutabilidade de configuração. A vantagem dessa abordagem é que os fluxos de trabalho de automação são simples de entender e fáceis de solucionar. No entanto, em determinados cenários, pode ser desafiador desprovisionar recursos sem saber a ordem correta das operações. O

desvio de configuração ocorre quando há mudanças em uma infraestrutura devido a alterações manuais, não aprovadas ou não monitoradas ao longo do tempo. Essas alterações não são registradas ou rastreadas sistematicamente. Muitas vezes, essas mudanças se devem a emergências ou complexidade excessiva, fatores que podem desencorajar os funcionários a seguir o processo estabelecido. Como consequência, os desvios de configuração são frequentes em grandes organizações. 

Uma abordagem de IaC ajuda com o desvio, mas é essencial executar um gerenciamento extra. O Ansible ajuda você a combater desvios com os playbooks do Ansible (fluxos de trabalho de automação), que podem ser configurados para detectá-los. Quando um desvio é detectado, ele envia uma notificação para a pessoa adequada, que pode fazer a modificação necessária e retornar o sistema à linha de base. 

Como o Ansible usa uma abordagem de programação procedimental, os desenvolvedores conseguem entender mais facilmente quando e onde a configuração da automação está sendo alterada. Isso acelera o isolamento de uma parte específica da configuração e a correção do desvio. Dependendo da complexidade da infraestrutura de TI, a realização de alterações de configuração em soluções de automação que usam uma abordagem de programação declarativa (como o Terraform) pode ser muito mais desafiadora. Por isso, às vezes, as organizações de TI preferem usar o Ansible para realizar alterações simples na configuração em vez de reconfigurar holisticamente um sistema de TI inteiro com uma solução como o Terraform.

Talvez a pergunta mais apropriada seja: “Do que sua empresa precisa para seu caso de uso específico?” Você deverá avaliar os desafios e requisitos específicos da sua empresa e escolher a solução (ou soluções) que funciona melhor. Alguns problemas são mais adequados para uma abordagem, enquanto outros podem ser mais bem resolvidos com outra. E, às vezes, uma combinação de soluções é a chave para o sucesso.

Embora o Terraform e o Ansible Automation Platform sejam as ofertas de automação mais usadas e as ferramentas de DevOps favoritas do público, elas têm recursos muito diferentes. O Terraform é especializado no provisionamento de infraestrutura de nuvem pública, que é um dos muitos casos de uso no mundo da automação de TI, e o Ansible Automation Platform abrange uma ampla gama de casos de uso de automação. Em vez de uma única abordagem de automação, o Ansible Automation Platform oferece várias abordagens para solucionar vários problemas. E se os clientes encontrarem um problema específico que seja melhor resolvido com a combinação de duas soluções de automação, o Ansible Automation Platform pode integrar-se a outras soluções dos principais provedores de nuvem, incluindo a Amazon Web Services (AWS) CloudFormation, o Microsoft Azure Resource Manager e o Google Cloud Platform (GCP) Cloud Deployment Manager, assim como o Helm e o Terraform.

Muitos dos nossos clientes usam várias soluções de automação ao mesmo tempo. Quando eles implantam aplicativos na nuvem, por exemplo, eles geralmente começam a provisionar a infraestrutura de nuvem com o CloudFormation ou o Terraform e, depois, executam a configuração contínua de aplicações e processos com o Ansible Automation Platform. Para aumentar a eficiência desse processo, lançamos recentemente o Red Hat Ansible Certified Content Collection for Terraform. Com essa coleção da Red Hat, você automatiza o gerenciamento e o provisionamento da IaC usando o Terraform em um ambiente de execução do Ansible Automation Platform.

Outros clientes investem apenas no Ansible Automation Platform porque eles querem automatizar mais do que o caso de uso de implantação na nuvem. Por exemplo, eles podem querer automatizar processos de segurança, como investigação de ameaças ou resposta a incidentes, juntamente com processos de rede, como reconfiguração de roteadores e switches.

Esses clientes querem padronizar a abordagem de automação em todos os casos de uso para maximizar o retorno sobre investimento. 

Com a variedade de ofertas de automação empresarial disponíveis, é crucial entender as funcionalidades e, acima de tudo, o que funciona melhor para as necessidades específicas da sua organização. 
 
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. A base dele é a comunidade Ansible, que se beneficia da experiência e inteligência de seus milhares de colaboradores no mundo todo. O Ansible Automation Platform foi projetado para ajudar as empresas a criar, gerenciar e escalar cargas de trabalho de automação. Ele oferece uma base flexível, estável e com foco na segurança para implantar soluções de automação de ponta a ponta, incluindo automação de nuvem híbrida, locais de edge, redes, segurança, infraestrutura e muitos outros casos de uso.

O Terraform se destaca como uma ferramenta de provisionamento e desprovisionamento de infraestrutura de nuvem com abordagem de IaC. É uma ferramenta específica com uma finalidade específica. O Ansible oferece uma solução de automação multifuncional para vários domínios. Ambas têm comunidades open source ativas e produtos comerciais downstream com bom suporte. Ambas as soluções têm seus pontos fortes individuais. Quando combinadas, elas funcionam bem e geram eficiência para muitas empresas. Simplificando, nem sempre precisamos optar por uma solução de automação, muitas vezes podemos ficar com mais de uma. 

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