Conhecendo o Terraform

Jonilson Sousa
Jonilson Sousa

Compartilhe

Nesse artigo vamos conhecer o Terraform, bem como suas aplicações e porque ele vem ganhando cada vez mais mercado, fãs no universo de DevOps. Podemos criar ambientes totalmente personalizáveis, com muitos recursos e com pouquíssimas linhas de código e ainda replicáveis com apenas um comando.

Afinal o que é Terraform?

O Terraform é uma ferramenta bastante simples, porém muito poderosa que nos possibilita gerenciar toda a infraestrutura utilizando código em arquivos simples, concisos e declarativos.

O Terraform é de código aberto (Open Source) e é desenvolvido pela HashiCorp, que também possui outras ferramentas, que vocês já devem conhecer, a mais famosa é o Vagrant, com a qual podemos provisionar ambientes isolados da nossa máquina física para que possamos utilizá-los como ambiente de desenvolvimento e ser o mais semelhante possível de um servidor de produção, porém isso é assunto para um outro artigo.

Algumas funcionalidades do Terraform

Assim, essa ferramenta nos permite criar, e ou alterar versões de infraestrutura de nossos ambientes, e de maneira eficiente e segura. O Terraform utiliza arquivos de configurações, em que podemos informar todos os recursos e componentes que nossa infraestrutura precisa, e ainda podemos indicar uma ordem para a utilização dos recursos, onde podemos definir que um serviço precisa que outro seja iniciado e ou criado primeiro.

Com ele podemos criar uma só máquina nos serviços em nuvem como instâncias EC2 (Elastic Compute Cloud) na AWS (Amazon Web Services) ao qual a ferramenta tem suporte, ou também podemos criar várias máquinas e assim criar um Data Center inteiro, e ainda configurar tudo com poucas linhas de código e pouquíssimos arquivos.

Outra importante funcionalidade que a ferramenta possui é o plano de execução, sempre podemos verificar o sequência de execução de um infraestrutura, assim vemos os passos que o Terraform irá executar para atingir o estado descrito no(s) arquivo(s) de configuração.

Esses planos também são adaptáveis, assim no momento em que mudamos o(s) arquivo(s) de configuração o Terraform disponibiliza um novo plano com as mudanças necessárias para que possamos analisar as mudanças que serão realizadas no ambiente.

Até aqui, vimos que o Terraform têm muitos recursos interessantes e que podem nos auxiliar de uma forma muito positiva, mas onde realmente podemos utilizar?

Suas aplicações

Primeiro o que podemos pensar é que se é o Terraform nos permite criar ambientes, seria interessante utilizá-lo em serviços em nuvem, como AWS, Google Cloud Platform, Azure, você pode verificar a lista com todos os provedores aqui.

E o que todos esses serviços têm em comum? Bem, eles nos permitem criar máquinas (hosts) para colocarmos nossas aplicações em produção, e essa é a utilização mais comum do Terraform, porém, é só isso que podemos fazer com o Terraform?

Não, essa ferramenta também trabalha com os níveis mais baixos da nossa infraestrutura, ela também nos permite manipulação de recursos como armazenamento, rede, instâncias (hosts) como já falei anteriormente, e os recursos de mais alto nível como é o caso de DNS, recursos de Software como serviço (SaaS, é o caso do Heroku e outros).

Vantagens do Terraform

Temos muitas vantagens trabalhando com o Terraform, pense que numa equipe grande, geralmente precisamos de um ambiente para testes ou para homologação, ou para avaliar a qualidade das nossas aplicações.

Assim, seria muito desperdício utilizar serviços em nuvem, como instâncias (hosts, máquinas) que tem um custo considerável e deixarmos as mesmas a maior parte do tempo ociosas, sem utilização, já que essas etapas (testes, homologação, avaliação) não são tão constantes, e o Terraform pode nos ajudar com isso.

Podemos criar um ambiente para testes em questão de minutos, já configurado e pronto para uso, e logo após terminarmos todos os testes e verificações, podemos simplesmente excluir esse ambiente, e quando precisarmos novamente é só executar um comando e já vamos ter novamente o ambiente pronto, isso é o que chamamos de ambiente descartável.

Conclusão

Vimos que o Terraform é uma ferramenta muito poderosa para área de DevOps, tem uma amplitude de uso muito grande e nos proporciona ambiente versáteis, personalizáveis e acima de tudo compartilháveis e reutilizáveis.

Assim, é muito importante conhecer uma ferramenta tão rica quanto essa, mesmo que você seja um desenvolvedor e que seu foco não seja essa área. A ferramenta também tem uma curva de aprendizado pequena facilitando a rápida utilização da mesma nas empresas, e tem uma documentação bastante completa.

Gostou do artigo e quer saber mais sobre Terraform, aqui na alura temos o curso de Terraform que vai te ensinar desde como provisionar a primeira infraestrutura até trabalhar com Terraform Cloud.

Jonilson Sousa
Jonilson Sousa

Atualmente sou desenvolvedor de software no Grupo Alura. Trabalhando com as mais diversas tecnologias, como nas linguagens Java, Python, Javascript, usando frameworks como Spring Boot, Flask.

Veja outros artigos sobre Programação