Conhecendo o Terraform

Alura
jonilson-silva
jonilson-silva

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.

Black November Alura com até 50% de desconto para estudar tecnologia. Oferta especial: plano Plus por 12x de R$76,30. Aproveite o maior desconto do ano e comece a estudar hoje na Alura para impulsionar sua carreira tech.

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.

Veja outros artigos sobre Programação