Visão geral do Terraform no Google Cloud

Hashicorp Terraform é uma ferramenta de infraestrutura como código (IaC, na sigla em inglês) que permite provisionar e gerenciar infraestrutura em nuvem. O Terraform fornece plug-ins chamados provedores, que permitem interagir com provedores de nuvem e outras APIs. É possível usar o provedor Terraform para Google Cloud (provedor do Google Cloud) para provisionar e gerenciar a infraestrutura do Google Cloud.

Benefícios do uso do Terraform

Nesta seção, explicamos alguns dos benefícios de usar o Terraform para provisionar e gerenciar a infraestrutura do Google Cloud:

  • O Terraform é a ferramenta mais usada para provisionar e automatizar a infraestrutura do Google Cloud. É possível usar o provedor Google Cloud para configurar e gerenciar todos os recursos do Google Cloud usando a mesma sintaxe e ferramentas declarativas.
  • O Terraform permite especificar o estado final de sua preferência para a infraestrutura. Em seguida, você pode implantar a mesma configuração várias vezes para criar ambientes de desenvolvimento, teste e produção reproduzíveis.
  • O Terraform permite gerar um plano de execução que mostra o que ele fará quando a configuração for aplicada. Assim, você evita surpresas ao modificar sua infraestrutura com o Terraform.
  • O Terraform permite empacotar e reutilizar códigos comuns na forma de módulos. Os módulos apresentam interfaces padrão para criar recursos de nuvem. Eles simplificam os projetos aumentando a legibilidade e permitem que as equipes organizem a infraestrutura em blocos legíveis. Além disso, o Google Cloud publica vários módulos implantáveis como blueprints e exemplos de introdução como Soluções de início rápido.
  • O Terraform registra o estado atual da infraestrutura e permite gerenciar o estado com eficácia. O arquivo de estado do Terraform monitora todos os recursos em uma implantação.

Usando o Terraform

O Terraform tem uma sintaxe declarativa e orientada por configuração, que pode ser usada para criar a infraestrutura que você quer provisionar. Usando essa sintaxe, você definirá o estado final de sua preferência para sua infraestrutura em um arquivo de configuração do Terraform. Em seguida, você vai usar a CLI do Terraform para provisionar a infraestrutura com base no arquivo de configuração.

As etapas a seguir explicam como o Terraform funciona:

  1. Você descreve a infraestrutura do Google Cloud que quer provisionar em um arquivo de configuração do Terraform. Não é preciso criar um código que descreva como provisionar essa configuração.
  2. Você executa o comando terraform plan, que avalia sua configuração e gera um plano de execução. É possível analisar o plano e fazer alterações conforme necessário.
  3. Em seguida, você executa o comando terraform apply, que realiza as seguintes ações:
    • Ele provisiona sua infraestrutura com base no plano de execução invocando as APIs correspondentes do Google Cloud em segundo plano.
    • Ele cria um arquivo de estado do Terraform, que é um mapeamento formatado em JSON de recursos no seu arquivo de configuração para os recursos da infraestrutura do mundo real. O Terraform usa esse arquivo para saber o estado mais recente da infraestrutura e para determinar quando criar, atualizar e destruir recursos.
  4. Em seguida, ao executar terraform apply, o Terraform usa o mapeamento no arquivo de estado para comparar a infraestrutura atual com o código e fazer atualizações conforme necessário:
    • Se um objeto de recurso definido no arquivo de configuração não existir no arquivo de estado, o Terraform o criará.
    • Se há um objeto de recurso no arquivo de estado, mas tem uma configuração diferente do arquivo de configuração, o Terraform atualiza o recurso para corresponder ao arquivo de configuração.
    • Se um objeto de recurso no arquivo de estado corresponder ao seu arquivo de configuração, o Terraform deixará o recurso inalterado.

Provedores do Google Cloud

Há dois provedores que permitem provisionar e gerenciar a infraestrutura do Google Cloud:

  • google: use esse provedor para provisionar e gerenciar as APIs do Google Cloud.
  • google-beta: use esse provedor para provisionar e gerenciar as APIs Beta do Google Cloud.

Para instruções sobre como usar esses provedores, consulte a referência de configuração do provedor do Google Cloud.

Os provedores google e google-beta são desenvolvidos usando uma ferramenta chamada Magic Modules. Com os Módulos mágicos, os colaboradores podem fazer mudanças em uma única base de código e desenvolver os provedores google e google-beta simultaneamente.

Você pode contribuir com os provedores do Google Cloud usando o Magic Modules seguindo as instruções no Guia de contribuição dos módulos Magic.

A seguir