Conforme falamos no último post sobre nosso projeto (clique aqui para saber mais), hoje vamos falar sobre uma ferramenta que vamos utilizar nesse projeto.
Vamos começar com o Terraform, que é a ferramenta que vamos utilizar para provisionar a infraestrutura como código. Mas antes, o que é infraestrutura como código e quais são suas vantagens?
Um exemplo prático
Para você criar uma máquina na AWS, por exemplo, você precisa de uns 5 minutos no máximo e 10 cliques. Bem simples, né? Agora imagina que você tenha que criar 10, 15, 20 máquinas com as mesmas configurações? Trabalho super repetitivo e de estagiário, né? rs. Brincadeiras à parte, ninguém merece fazer trabalhos assim!

Agora imagina que você pode criar uma máquina (ou as 20 máquinas) na AWS com um comando: terraform plan && terraform apply ou rodando uma pipeline que faça esse deploy. Top demais, né?
Através do Terraform e do conceito de Infraestrutura como Código (IaC), é possível utilizar abstrações, uma linguagem poderosa (HCL), reutilizável, com confiabilidade, segurança e baixa probabilidade de erro.
Além disso, imagina o trabalho que é provisionar um hardware para um novo serviço ou ambiente para uma aplicação. Instalar sistema operacional, atualizar, instalar libraries, a própria app, etc.
Vantagens na prática
Imagina que você tem vários Security Groups no seu ambiente. Quando se cria uma nova máquina na AWS, você tem que inserir um Security Group ou criar um novo. Para inserir um existente, você tem que digitar o ID que ele possui ou pesquisar pelo nome. Se você digitar o nome ou o código errado, pode adicionar um SG errado. Com IaC, você escolhe qual recurso quer usar e seta esse recurso em todas as máquinas com duas linhas, por exemplo:
count = 20 # Criação de 20 máquinas virtuais iguais
security_groups = ["sg-a1b2c3d4"]
Para fazer a instalação do Terraform, segue o link da documentação oficial.
Ficou com alguma dúvida ou quer falar sobre esse assunto? Fala comigo!