Terraform – Conceitos Next Level + Dominando a Documentação

Quando falamos em Terraform, você precisa entender alguns conceitos importantes.

Mas será que esse tópico é importante para mim que trabalho com Infraestrutura, Desenvolvimento, Banco de Dados ou com Gestão de TI?

Com toda certeza, sim. É de extrema importância que fique atento e mergulhe com profundidade nesse tópico riquíssimo para elevar a sua carreira profissional para o próximo nível.

Hoje, você sairá daqui com condição de saber aonde está e de iniciar o desenvolvimento de códigos para provisionar recursos nos Cloud Providers utilizando o Terraform.

Para isso acontecer, será necessário que entenda alguns conceitos. Vamos lá? Bora!


Idempotent

A partir do momento que executa o Terraform, uma ferramenta de Infraestrutura como Código, você vai notar que na pasta que contém os arquivos do Terraform será criado um arquivo para armazenar um estado. Ou seja, o Terraform vai fazer o provisionamento da Infraestrutura que você pediu e, além disso, ele armazenará o estado dos recursos que ele acabou de provisionar.

Por que isso é importante?

Porque você vai precisar ter esse estado armazenado em algum lugar para que quando você estiver executando esse mesmo código outras vezes, os recursos que já estiverem criados fiquem dentro do estado que foi armazenado. Seguindo assim, você vai poder executar o código, várias e várias vezes. E o código só vai fazer alterações se houver de fato uma discrepância entre o estado que foi armazenado e a Infraestrutura que você tem no seu provedor de Cloud.

Entendendo esse primeiro conceito, fica claro que você consegue adicionar recursos novos dentro do seu código de Terraform sem ter que necessariamente ficar criando novos arquivos para isso. Fazendo com que o Terraform, identifique o que está criado ou, por exemplo, o que precisa criar.

Agnóstico

O Terraform é completamente agnóstico. O que quer dizer? Ele funciona de forma cross-platform, sendo possível provisionar Infraestrutura usando o Terraform em todos os provedores de Cloud. A única coisa que precisará ter atenção é com relação ao provider que está utilizando.

Ao manter o conceito que o Terraform é totalmente Agnóstico, você terá a ideia de que ele não funciona só com OCI (Oracle Cloud Infrastructure), só com AWS, Azure ou Google Cloud. Ele vai funcionar com todos os provedores de Cloud que tiverem um provider disponível.

Curiosidade

Quais outros recursos ou tecnologias você consegue provisionar com Terraform?

  • Docker
  • Kubernetes
  • Github

Documentação Terraform

Não tem como você trabalhar com Terraform sem ter domínio da documentação. É impossível.

Mas qual seria o motivo?

O motivo é que cada provedor de Cloud, principalmente quando você for trabalhar em um ambiente MultiCloud, vai ter um provider.

Então, não tem e nem faz sentido você gravar tudo, porque é muita coisa. Com isso, você precisará dominar de ponta a ponta a documentação, fazendo com que se torne sua fiel escudeira e consiga fazer o provisionamento de qualquer coisa em um ambiente MultiCloud.

Vamos ver na pratica como podemos avançar?


Dominando a Documentação do Terraform

Conforme comentado acima, ficar tentando caçar informação, não levará você a lugar nenhum. Você precisa dominar a documentação.

Uma das formas que pode avançar é fazer uso do Google, com o objetivo de desfrutar do poder do maior indexador ao seu favor.

Imagine que você está atuando em um projeto e precisará fazer o provisionamento de uma infraestrutura na AWS usando o Terraform. Então, como fazer para avançar?

Acesse o Google e pesquise da seguinte forma: aws terraform provider.

Como resultado desse formato de pesquisa, o Google sempre lhe dará o primeiro ou segundo link direto para a documentação do provider da AWS. No exemplo abaixo, foi o primeiro link. #pracima

Feita a pesquisa, abra o primeiro link Docs overview | hashicorp/aws | Terraform Registry exibido como resultado acima.

Com o acesso feito à documentação do provedor da AWS, você terá o passo a passo do que precisa fazer para configurar o seu computador ou laptop, visando interagir com a sua conta na AWS.

De uma forma mais detalhada, o primeiro ponto que você verá é o AWS Provider, que é o plugin utilizado pelo Terraform para se conectar na sua conta da AWS. E baseado nos privilégios que você atribuir para o usuário de IAM criado, será possível conectar na sua conta da AWS, fazer uma chamada de API e se autenticar. Feito isso, o usuário IAM será capaz de provisionar a Infraestrutura de forma bem rápida.

Na página inicial da documentação que acessou, você verá o provider logo de início, local este que conterá informações importantes.

No exemplo abaixo, você verá na parte destacada uma indicação de alguma região da AWS no mundo que está usando para provisionar infraestrutura.

O ponto interessante é que na documentação, você encontrará indicações de como começar a criar os seus códigos do Terraform para provisionar os recursos. Recomendo que use e desfrute desse recurso disponível gratuitamente com intensidade.

Em um outro exemplo de referência, é indicado informações de como criar uma VPC na AWS. Olha que fantástico!!

Passando pelo exemplo citado acima, entramos em outro conceito muito importante chamado resource. Mas o que é o resource?

O resource no Terraform é basicamente uma representação de um recurso lá no provedor de Cloud. Você sabe que para criar uma rede virtual privada na AWS, será necessário provisionar uma nova VPC. Isso é a indicação de um recurso. No Terraform, ele tem esse mesmo nome. Como resultado, para provisionar uma VPC, você precisará do resource “aws_vpc”.

E se você quiser provisionar outro recurso, como fazer? Como encontrar as informações?

Na lateral esquerda, tem um local para filtrar e uma barra de rolagem. Fazendo uso de um dos dois, você encontrará informações valiosas de como provisionar cada recurso na AWS.

Como faria no caso de provisionar uma máquina virtual? O que você precisa ter em mente?

Obs.: Agora, entra o motivo do conhecimento MultiCloud ser extremamente importante para a sua carreira, pois conhecendo você já sabe que na AWS o serviço que é usado para fazer o provisionamento de máquina virtual é o EC2.

Com essa ideia em mente, na documentação, especificamente no índice na lateral esquerda, pesquise por aws_instance, navegue até o serviço de EC2 > Resources > aws_instance. Feito isso, você encontrará todas as opções possíveis para fazer o provisionamento de uma instância EC2 na AWS.

Em Example Usage, a documentação dará para você um exemplo prático de como fazer. Por exemplo, caso quiser criar uma instância nova para o seu webserver. E eu quero que essa instância tenha o sistema operacional ubuntu, você pode avançar da seguinte forma:

No exemplo acima, o componente data “aws_ami” é utilizado para consultar algum tipo de informação que você precisa da AWS e armazenar para utilizar depois. De uma forma bem simples, utilizando a imagem mais recente, parâmetro most_recent = true, passou na ami (amazon machine image), que vai informar o sistema operacional utilizado para provisionar a sua instância.

Além disso, em resource “aws_instance” “web”, você tem o instance_type que é o tamanho da sua instância, indicando quanto de CPU e quanto de memória que ela vai ter.

Com as informações compartilhadas hoje, você aprendeu conceitos importantes do Terraform e aprofundou em como pensar, pesquisar e encontrar as informações que precisa na documentação para montar o seu código, tendo como objetivo provisionar infraestrutura utilizando o Terraform.

Deixe nos comentários, como esse post contribuirá para elevar a sua carreira para o próximo nível.

Até logo! #pracima

Compartilhe este Post

Uma resposta

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts Relacionados

POSTS RECENTES

Conheça nosso Site

Venha aprender na prática as skills de Cloud que todo recrutador sonha em encontrar.