BLOG

Escolha do Ansible ou Terraform para serviços de aplicações da F5

Miniatura de Lori MacVittie
Lori MacVittie
Publicado em 30 de setembro de 2019

Escolha um ou outro - ou ambos - para implantar e operar os Serviços de Aplicativos F5.

O movimento de código aberto sempre se concentrou na liberdade. A liberdade de escolher a solução que funciona melhor para você, dadas as habilidades, orçamentos, arquitetura e objetivos. Esse princípio continua sendo um fator significativo hoje quando se trata de construir infraestrutura repetível para o pipeline de implantação.

Há muitas opções excelentes para automatizar o provisionamento e a operação de serviços de aplicativos. Duas das escolhas mais populares são RedHat Ansible e HashiCorp Terraform. 

Deixe-me parar por aqui e mencionar que o F5 oferece suporte total ao Ansible e ao Terraform . Trabalhamos com ambos para garantir interoperabilidade e integração, para que você não precise fazer isso. Não importa sua escolha, nós estamos aqui para ajudar.

Mas notamos durante os engajamentos com os clientes que, para algumas tarefas, o Ansible se destaca, enquanto em outras, é o Terraform que brilha. Isso ocorre porque automatizar - e manter - um pipeline exige conjuntos diferentes de tarefas.

O Terraform se destaca na orquestração — o gerenciamento do estado de um ambiente. O que isso significa é que o Terraform entende como um ambiente deve ser e como ele deve se comportar. Se algo não estiver certo, o Terraform pode sinalizar para revisão.

O Ansible se destaca no gerenciamento de configuração . Isso significa que seu foco está em manter o estado de componentes individuais. Se houver um problema com um componente individual no ambiente, o Ansible pode ajustar a configuração para resolver o problema. 

O foco diferente de cada ferramenta significa que não é uma surpresa quando as vemos usadas juntas para automatizar o ciclo de vida da implantação. 

Para ver como essas duas ferramentas funcionam com o F5 Application Services, é uma boa ideia definir um ponto em comum com uma visão do ciclo de vida da implantação: 

Ciclo de vida de implantação

Assim como há um ciclo de vida para aplicativos com um pipeline de entrega correspondente, há um ciclo de vida para serviços de aplicativos com um pipeline de implantação correspondente. Esse ciclo de vida requer várias etapas:

  1. Provisão
    um. Provisionamento é o processo de realmente criar uma instância, seja uma máquina virtual ou um contêiner, seja em uma nuvem pública ou privada.
  2. A bordo
    um. A integração é necessária para configurar a rede necessária para operar no ambiente em que o BIG-IP foi implantado.
  3. Implantar
    um. Durante a fase de implantação do ciclo de vida, um serviço de aplicativo é definido, configurado e iniciado.
  4. Operar
    um. Operações contínuas exigem monitoramento e análise. O F5 Telemetry Streaming permite que o BIG-IP seja conectado a pipelines de telemetria para compartilhar métricas e dados desejados.
  5. Mudar
    um. Mudança é o processo de modificação de configurações existentes (especificadas inicialmente durante a fase de implantação).

Tanto o Ansible quanto o Terraform podem ser o principal fornecedor de automação para todas as cinco fases. No entanto, cada um se destaca em fases diferentes e, portanto, usar ambos pode ser uma estratégia melhor. É mais provável que vejamos o Ansible sendo usado para as fases de implantação e alteração (gerenciamento de configuração), enquanto o Terraform é mais frequentemente usado para provisionamento e integração (orquestração).

Ansible e Terraform juntos

Também sabemos que muitos clientes querem padronizar suas cadeias de ferramentas — por um bom motivo. Manter conhecimento especializado em diversas ferramentas pode ser difícil, sem mencionar operar e manter a infraestrutura necessária para executar diversas cadeias de ferramentas. Nesse caso, há maneiras de escolher qual dessas ferramentas incríveis será padronizada.

  1. Mudanças pouco frequentes na infraestrutura
    Neste cenário, você está fazendo alterações nos serviços de aplicativos, mas não necessariamente na infraestrutura, ou seja, BIG-IP. Esse geralmente é o caso ao aproveitar um BIG-IP existente para implantar novos aplicativos. O Ansible é uma boa escolha aqui, pois ele se destaca no gerenciamento de configuração e é basicamente isso que você fará. O Ansible oferece suporte a uma ampla variedade de linguagens e estilos de API, o que o torna uma ótima opção para equipes de DevOps e NetOps fazerem alterações em serviços de aplicativos. Você pode usar o Ansible para configurar o F5 Application Services por meio dos módulos F5 Ansible ou via F5 AS3. Ou você pode usar ambos, dependendo de suas necessidades específicas. Para uma análise mais aprofundada sobre como escolher sua abordagem Ansible, confira este ótimo blog de Mani Gadde e Andrius Benokraitis .
  2. Mudanças frequentes na infraestrutura
    A nuvem - especialmente a nuvem pública - é frequentemente escolhida para facilitar uma alta taxa de alterações em aplicativos e sua infraestrutura de suporte. Imutável infraestrutura muitas vezes auxilia no gerenciamento da volatilidade nessa situação, ou seja, na demolição e reimplantação de uma infraestrutura inteira. O Terraform é uma ótima escolha para esse cenário, pois se destaca no provisionamento e na integração de infraestruturas inteiras com presteza. Seu design e foco na orquestração são adequados para criar infraestruturas consistentes e repetíveis em escala, especialmente em ambientes voláteis como o da nuvem. 
  3. Mudança frequente na infraestrutura e serviços de aplicação
    Terraform + Ansible pode ser uma ótima combinação para gerenciar altas taxas de mudança em serviços de infraestrutura e aplicativos. Como você espera mudanças frequentes no estado do ambiente e dos componentes individuais, você vai querer ferramentas de gerenciamento de mudanças e orquestração para ajudar a manter a disponibilidade dos aplicativos e seus serviços de suporte.

Não importa o que você escolher - Ansible, Terraform ou ambos - a F5 está comprometida em dar suporte à sua escolha com integrações nativas e modelos pré-empacotados, juntamente com uma comunidade contribuindo ativamente e refinando ambos.