Terraform é uma ferramenta DevOps utilizado para gerenciar infraestrutura declarativa – infraestrutura como código (Infrastructure as Code).
Terraform é uma ferramenta podera que simplifica e acelera a configuração de ambientes baseados em nuvem, permitindo configurar infraestrutura e gerenciar recursos de Cloud como Amazon Web Services (AWS), Microsoft Azure, Google Cloud e outros ambientes cloud.
Definição do que é o Terraform
Terraform é uma ferramenta de gerenciamento de infraestrutura feita pela HashiCorp, que permite provisionar, gerenciar e manter recursos de nuvem como servidores, rede, armazenamento (storage), dentre outros recursos, de maneira centralizada usando um conjunto de código.
Desta maneira é importante entender que o Terraform é uma ferramenta, um programa de linha de comando e um aplicativo baseado em nuvem que você executa para definir e fazer alterações em sua infraestrutura, mas o Terraform também é uma linguagem que define essas alterações.
Para que serve o Terraform
Terraform serve para gerenciar a própria infraestrutura base.
Por exemplo, criar uma instância de servidor e colocá-la atrás de um balanceador de carga. O Terraform não pode realmente alterar o que está sendo executado neste servidor depois que o mesmo é implantado; para isso, você precisará de uma ferramenta de gerenciamento de configuração.
Isto significa que o Terraform criará o servidor, e para configurar este servidor, por exemplo, como um servidor web, você poderá usar algo como o Puppet configurando o código do seu aplicativo específico em execução nele.
O Terraform é como um quadro em branco, que precisa de outras ferramentas para pintar o quadro. É possível executar uma ferramenta como o Puppet em um sistema usando um recurso do Terraform chamado provisionadores.
A documentação oficial do Terraform descreve os provisionadores como último recurso, embora você possa entender como eles podem ser poderosos e úteis se você já estiver usando um como gerenciamento de configuração.
Então, se não usarmos o gerenciamento de configuração, qual é a nossa outra opção de uso para o Terraform?
Bem, o Terraform é muito útil para implantar imagens prontas de servidor, onde toda a configuração já está definida.
Para isso é necessário criar sua imagem base, e há outra ótima ferramenta HashiCorp para isso, chamada Packer.
Infraestrutura Imutável
Se toda a configuração estiver correta, no contexto do nosso exemplo, com um balanceador de carga e um aplicativo que pode tolerar o ciclo de instâncias de servidor, você pode usar o Terraform para manter e atualizar sistemas, destruindo-os e substituindo-os por novas instâncias.
Isto é chamado de infraestrutura imutável, onde os discos do sistema são configurados somente leitura, a configuração e o software só podem ser atualizados substituindo a instância do servidor.
Mesmo que você não vá a esse extremo, ser capaz de jogar fora e substituir qualquer instância livremente é uma mudança total no jogo. Isto reduz drasticamente a confiança em relação à estabilidade do servidor.
Terraform e Contêineres
Finalmente, chegamos aos contêineres.
Terraform é capaz de trabalhar diretamente com Docker e Kubernetes, oferecendo abordagens para cargas de trabalho baseadas em contêineres.
Esse suporte para Kubernetes pode inclusive ser combinado com o Kubernetes Service da Amazon ou outro provedor de nuvem. Você pode usar o Terraform para provisionar um cluster Kubernetes em um provedor de nuvem e, em seguida, usar o provedor Terraform Kubernetes para provisionar recursos nesse cluster.
Considerações Finais
Em resumo, o Terraform é uma solução abrangente e robusta para gerenciar sua infraestrutura em um ambiente de nuvem, permitindo não apenas a criação e manutenção de recursos, mas também a integração com outras ferramentas vitais, como gerenciadores de configuração e sistemas de contêinerização. Ele oferece uma abordagem eficaz para implementar, escalar e manter sistemas de forma declarativa. Seu suporte amplo para vários provedores de nuvem e capacidade de trabalhar com tecnologias como Docker e Kubernetes torna-o uma ferramenta essencial no kit de ferramentas de qualquer profissional DevOps.
Portanto, se você ainda não incorporou o Terraform em seu fluxo de trabalho, agora pode ser o momento perfeito para fazê-lo.
Comentários