Sobes.tech
Junior

Para que é que o Terraform é utilizado?

sobes.tech IA

Resposta da IA

O Terraform é utilizado para gerir a infraestrutura como código (Infrastructure as Code, IaC). Permite descrever e implementar recursos de infraestrutura (máquinas virtuais, redes, bases de dados, balanceadores de carga, etc.) de forma declarativa, independentemente do provedor de nuvem ou da solução on-premise.

Os principais objetivos do uso do Terraform:

  • Automatização: Acelerar a implementação e gestão da infraestrutura eliminando operações manuais.
  • Gestão declarativa: Descrever o estado desejado da infraestrutura, em vez da sequência de ações para alcançá-lo. O Terraform determina os passos necessários para passar do estado atual ao desejado.
  • Reprodutibilidade: Possibilidade de recriar exatamente a infraestrutura em diferentes ambientes (desenvolvimento, teste, produção) com base em ficheiros de configuração.
  • Escalabilidade: Adicionar ou remover recursos facilmente alterando os ficheiros de configuração.
  • Gestão de versões: As configurações de infraestrutura podem ser armazenadas em sistemas de controlo de versões (por exemplo, Git), o que fornece histórico de alterações, capacidade de reverter e trabalho em equipa.
  • Abstração do provedor: Suporte para múltiplos provedores (AWS, Azure, Google Cloud, VMware, Kubernetes, Docker, etc.) através de um sistema de plugins. A mesma sintaxe HCL (HashiCorp Configuration Language) é usada para trabalhar com diferentes provedores.
  • Planeamento de alterações: Antes de aplicar alterações, o Terraform permite rever um plano de execução (terraform plan) que mostra quais recursos serão criados, modificados ou eliminados, reduzindo o risco de erros.
  • Trabalho em equipa: O uso de estado remoto (remote state) permite que várias equipas ou desenvolvedores trabalhem de forma segura num projeto de infraestrutura partilhada.

Desta forma, o Terraform permite criar, modificar e gerir infraestrutura de forma eficiente e fiável, integrando-a no processo de desenvolvimento e entrega de software.