
O Terraform é uma ferramenta criada pela HashiCorp, uma das empresas mais conhecidas no mundo de DevOps e SRE, contando com diversas outras ferramentas, como o Consul, Vault, Sentinel, etc.
Muitas vezes nos deparamos com problemas que podem gerar outras complicações em consequência da nossa tentativa de encontrar uma solução. Mas um grande benefício de se trabalhar com cloud computing é que as coisas evoluem e precisam ser automatizadas.
Pelo site da AWS nós podemos provisionar máquinas virtuais na parte de EC2, podemos criar cluster Kubernetes, bucket na S3 ou qualquer coisa do tipo. E então nós começamos a fazer tudo isso de uma forma cada vez mais manual, apesar das diversas variações desses recursos.
Outras situações típicas que requerem muito trabalho manual podem incluir: a chegada de um novo funcionário na empresa, a necessidade de duplicar a nossa infraestrutura, criá-la numa outra região ou eventualmente mudar de cloud.
A parte mais problemática em relação a isso é que situações desse tipo envolvem tarefas muito repetitivas, que também trazem uma grande margem de erro. Nesse caso, pensando em resolver esse tipo de questão, nós podemos utilizar o Terraform.
Infraestrutura como Código:
Mas o mais importante é que o Terraform utiliza IaC (Infra as Code), ou Infraestrutura como Código, que nos permite programar toda a nossa infraestrutura através desse método.
Com algumas linhas nós podemos definir que a Amazon crie tudo isso com todas as configurações que nós precisamos através de um simples código. Da mesma forma, através de outro comando é possível destruir tudo isso facilmente, poupando muito tempo nessa tarefa também.
As grandes empresas utilizam diversos processos, mas normalmente esse manifesto é adicionado a uma pipeline de CI e CD. Nesse caso, sempre que um manifesto Terraform é adicionado, ele acaba numa pipeline. Se tudo estiver em ordem, nós simplesmente fazemos uma pull request e um merge para aplicar automaticamente esse processo na nossa infra.
Tudo isso vai resultar numa infraestrutura como código e o processo de entrega é baseado completamente nos nossos manifestos, então nós não precisamos nos preocupar em esquecer configurações que podem provocar problemas.
Essas opções facilitam muito o nosso trabalho porque hoje podemos utilizar AWS, mas se amanhã nós precisarmos de Azure, nós simplesmente criamos esse manifesto focado no Azure e com um simples comando é possível adicionar toda a nossa infraestrutura naquele ponto.
Por todos esse benefícios o Terraform é uma ferramenta capaz de disponibilizar a nossa infraestrutura pelos principais serviços de cloud. Lembrando que isso também serve para economizarmos o tempo em diversas tarefas repetitivas, que abrem margem a erros.
Se você curtiu esse conteúdo e quer aprender mais sobre o Terraform, solicite contato clicando aqui e nós te ajudamos.