Iniciando a jornada com o Terraform no Microsoft Azure

Infra as Code.

Quando comecei a trabalhar com infraestrutura, por um momento achei que jamais usaria linhas de comando, afinal tinha “tudo” na interface gráfica, absorvi como uma verdade absoluta.

Pensava que o lance do “código” era para escovador de bits ou até mesmo apenas para a aquela turma que a Infra sempre teve e tem pré disposição para aquela guerrinha Infra x Desenvolvimento!

E por ironia do destino estamos cada vez mais próximos, o Infra as Code não é modismo e sim veio para ficar, quer queira ou não.

Não sei você caro leitor como foi sua transição para este mundo, porém a minha está acontecendo de forma gradativa, iniciando as minhas ações do dia a dia com o PowerShell e Bash do Linux.

A criação e o provisionamento nos provedores de nuvem, se torna cada vez mais rápido e abrir mão da interface gráfica para o prompt é algo constante em nossa rotina.

No Azure o modelo para provisionamento de recursos é o ARM (Azure Resource Manager) que consiste em formato JSON (JavaScript Object Notation – Notação de Objetos JavaScript) é uma formatação leve de troca de dados que pode ser usado na criação de valores para o provisionamento dos recursos.

ARM: 

E se tivesse uma ferramenta que simplificasse um pouco entender esse monte de linhas, variáveis, strings?

E aqui começo minha jornada com a brilhante ferramenta da Hashicorp o Terraform.

Essa ferramenta ajuda a construir recursos e modificar, de forma que consiga versionar o código.

Não é uma ferramenta gestão de configuração como outras do mercado.

Sua linguagem é baseada no GO, sua extensão de arquivos é o formato .tf

O provisionamento de recursos e serviços é algo que deve ser de forma rápida, e bem menos complexa para desprovisionar ou melhor Destruir, afinal na nuvem pagamos pelo uso.

Exemplo: Criando uma Virtual NetWork

A sua estrutura de comandos se mostra bem objetiva e rápido de absorver:

Terraform Init = inicializa o trabalho em um diretório

Terraform Plan = Gera e mostra um plano de execução

Terraform Apply = Constrói ou muda sua infraestrutura

Terraform Destroy = Destrói sua infraestrutura

Desde construção de uma Resource Group, VNET ou WEB APP é simplesmente fantástico, confesso que estou gostando bastante dessa experiencia com o Terraform.

No próximo artigo, trarei uma criação de uma infra no Terraform com o Azure DevOps.