DEVOPS – TERRAFORM
Nos últimos anos, a forma como desenvolvemos, entregamos e operamos software passou por uma transformação profunda. A necessidade de entregar valor de forma mais rápida, segura e confiável levou ao surgimento de DevOps, uma cultura e conjunto de práticas que aproximam desenvolvimento e operações, promovendo colaboração, automação e melhoria contínua ao longo de todo o ciclo de vida das aplicações.
Dentro desse contexto, a infraestrutura deixou de ser um gargalo e passou a ser tratada como código. É nesse ponto que o Terraform se destaca. Criado pela HashiCorp, o Terraform é uma ferramenta de Infrastructure as Code (IaC) que permite definir, provisionar e gerenciar recursos de infraestrutura de forma declarativa, reproduzível e versionável, utilizando arquivos de configuração simples e legíveis.
A combinação de DevOps e Terraform possibilita ambientes mais consistentes, redução de erros manuais, maior rastreabilidade das mudanças e integração natural com pipelines de CI/CD. Com Terraform, equipes conseguem criar, modificar e destruir infraestruturas em múltiplos provedores de nuvem — como AWS, Azure e Google Cloud — utilizando o mesmo padrão e fluxo de trabalho.
.
Workflow e lifecycle do Terraform
O Terraform possui um workflow bem definido que orienta desde a escrita do código até a aplicação das mudanças na infraestrutura, garantindo previsibilidade e controle. Esse fluxo de trabalho é simples, porém poderoso, e permite que a infraestrutura seja gerenciada de forma segura e consistente ao longo do tempo.
O workflow do Terraform geralmente segue quatro etapas principais: write, init, plan e apply. Primeiro, a infraestrutura é descrita em arquivos de configuração declarativos. Em seguida, o comando terraform init prepara o ambiente, baixando providers e módulos necessários. O terraform plan permite visualizar previamente as mudanças que serão realizadas, enquanto o terraform apply executa essas alterações de forma controlada, criando, atualizando ou removendo recursos conforme definido no código.

Já o lifecycle do Terraform está relacionado ao ciclo de vida dos recursos gerenciados pela ferramenta. Ele define como o Terraform cria, atualiza, recria ou destrói recursos, levando em conta dependências, ordem de execução e estado atual da infraestrutura. Por meio de configurações de lifecycle, é possível controlar comportamentos como prevenção de destruição acidental, criação antes da remoção de recursos antigos e ignorar mudanças específicas que não devem disparar atualizações.
.
Preparando o ambiente – Download e Instalação do Terraform
Download do Terraform e Visual Studio Code.
Para fazer download do Terraform clique no link abaixo:
https://developer.hashicorp.com/terraform/install
Nós trabalharemos essa Introdução no ambiente Windows.

Para fazer download do Visual Studio Code, clique no link abaixo:
https://code.visualstudio.com/download

A instalação do Visual Studio Code é bem simples, chamamos de NNF(Next, Next, Finish).
Após instalação, crie uma pasta base indicando ao software onde ficarão os arquivos que vamos trabalhar, no caso, criei uma pasta chamada devops no c:\ e apontei o VSCODE para ela.
Dentro da pasta devops coloquei o arquivo do terraform que fizemos o download.

Ainda na pasta devops, crie um arquivo chamado main.tf, será o arquivo principal de configuração do nosso ambiente.
Embora o Terraform não exija um nome específico para os arquivos .tf, o main.tf é adotado como padrão para organizar o código e facilitar a leitura e manutenção do projeto. Quando o Terraform é executado, ele lê todos os arquivos .tf do diretório, tratando-os como uma única configuração, mas o main.tf costuma ser o ponto de entrada lógico da infraestrutura.

Um último detalhe, eu instalei o plugin abaixo para nosso código aparecer de uma forma mais “friendly” no VSCODE.

.
Providers
Os providers do Terraform são componentes responsáveis por permitir a comunicação entre o Terraform e os serviços externos que ele gerencia. Eles funcionam como uma camada de integração, traduzindo as configurações declaradas nos arquivos do Terraform em chamadas às APIs de provedores de nuvem, serviços SaaS ou ferramentas on-premises.
Cada provider define os recursos e data sources disponíveis para um determinado serviço, como AWS, Azure, Google Cloud, Kubernetes, GitHub, entre muitos outros. Ao utilizar um provider, o Terraform passa a entender como criar, atualizar, ler e excluir esses recursos de forma padronizada.
Em resumo, os providers são fundamentais para o funcionamento do Terraform, pois conectam o código de infraestrutura à realidade dos serviços que ele controla, tornando possível o gerenciamento de ambientes de forma automatizada, escalável e multi-cloud.

No artigo, vamos trabalhar com o provedor da AWS. Clique no botão USE PROVIDER e copie o código:

Abra o VSCODE e dentro do arquivo main.tf cole o código.

Agora vamos usar o terminal para verificar se o Terraform está conversando com o Provedor da AWS. Eu gosto de usar o GitBash, mas, você pode usar o terminal do seu gosto, apenas se atente que alguns comandos podem mudar dependendo do Terminal que você utilizar.

Execute o comando terraform –version e em seguida terraform init para integrarmos o ambiente de instalação local com o do nosso provedor AWS.

Verifique se a instalação foi feita com sucesso.

Verifique que ele criou novos arquivos na nossa pasta:

O arquivo terraform.lock.hcl é gerado automaticamente pelo Terraform para registrar as versões exatas dos providers utilizados no projeto, no nosso caso o AWS. Ele garante que todos os membros do time e os pipelines de automação utilizem as mesmas versões, promovendo consistência e reprodutibilidade da infraestrutura.
Não é recomendado editar esse arquivo manualmente, pois qualquer alteração pode causar incompatibilidades, comportamentos inesperados ou falhas no provisionamento. O gerenciamento desse arquivo deve ser feito exclusivamente pelo Terraform, por meio de comandos como terraform init ou atualizações controladas de providers.
Conclusão
Ao longo deste artigo, exploramos os principais conceitos que formam a base do DevOps e do Terraform, entendendo como a automação e a padronização da infraestrutura são fundamentais para ambientes modernos. Vimos como o Terraform se encaixa na cultura DevOps, seu workflow, o lifecycle dos recursos, o papel dos providers e a importância de arquivos essenciais como o terraform.lock.hcl para garantir consistência e segurança nas implantações.
Nos próximos passos, vamos entender a estrutura de um projeto real e executar comandos básicos para provisionar infraestrutura de forma segura e controlada. A partir daí, evoluiremos para cenários mais próximos do dia a dia.
Até a próxima!
