Agora que você compreende os fundamentos da Infraestrutura como Código (IaC), este tópico explica o que é o Terraform.
O que é o Terraform
O Terraform é uma ferramenta de IaC open source da HashiCorp. Ela permite definir recursos do Alibaba Cloud usando arquivos de configuração declarativos.
O Terraform gerencia componentes fundamentais, como máquinas virtuais, contêineres, armazenamento e redes. Também administra componentes de configuração, incluindo regras de grupo de segurança, entradas de DNS e políticas de acesso. Além disso, gerencie determinados resources de Software as a service (SaaS).
Para definir infraestrutura como código, o Terraform utiliza uma linguagem simples e legível chamada HashiCorp Configuration Language (HCL). A ferramenta lê seus arquivos de configuração e gera um plano de execução. Em seguida, visualize, confirme e execute esse plano para crie e gerencie sua infraestrutura.
O Alibaba Cloud disponibiliza um Terraform Provider para seus recursos. Use esse provider para definir e crie recursos do Alibaba Cloud automaticamente.
Recursos do Terraform
Os principais recursos do Terraform incluem:
Suporte multicloud e multi-API: Além do Alibaba Cloud, o Terraform é compatível com todos os grandes provedores de services em nuvem. Também se integra a outros services por meio de suas APIs, como GitHub e Kubernetes.
Arquitetura open core: Oferece três versões, desde opções auto-hospedadas até soluções totalmente gerenciadas, com suporte de nível empresarial.
Comunidade ampla: Conta com uma grande comunidade e um registro aberto. Esse registro possibilita o cadastro e o gerenciamento online de todos os providers e módulos, inclusive os do Alibaba Cloud.
configure de infraestrutura: Refere-se ao gerenciamento do ciclo de vida (criação, modifique, exclusão e visualização) dos recursos de infraestrutura, e não à configure do sistema em si, como iniciar services, instale dependências ou aplicações e execute atualizações.
No Alibaba Cloud, o Terraform oferece as seguintes capacidades:
configure de recursos: Use o Terraform para definir e configure recursos do Alibaba Cloud, como máquinas virtuais, redes, armazenamento e firewalls, usando blocos de recursos.
Criação de dependências entre recursos: Estabeleça dependências explícitas entre recursos para garantir a criação na ordem correta.
Módulos padronizados: Padronize a criação de recursos construindo módulos reutilizáveis. O Alibaba Cloud também fornece módulos padrão para referência direta.
Fluxo de trabalho de IaC
As etapas a seguir descrevem o fluxo de trabalho padrão de IaC.

-
Definição de escopo
Antes de iniciar o fluxo de trabalho do Terraform, determine quais recursos seu projeto ou aplicação necessita. Por exemplo, uma arquitetura comum de duas camadas exige um pool de servidores web e um banco de dados. Nessa fase, identifique os recursos necessários do Alibaba Cloud e planeje como eles se conectam.
-
Autoria
O fluxo começa pela escrita do código. Escreva o código da infraestrutura desejada e organize-o em diferentes arquivos de configuração, como
main.tf,variables.tfetfvars. -
Inicialização
Na fase de inicialização, o sistema instala automaticamente quaisquer plugins ou módulos exigidos pelo código. execute o comando
terraform initpara preparar o diretório de trabalho do Terraform e instale o Alibaba Cloud Terraform Provider. -
Visualização
Durante o planejamento, execute o comando
terraform plan. Esse comando gera um plano de execução para crie, modifique ou destruir recursos com base na sua configuração. Revise o plano antes de aplicá-lo à sua infraestrutura no Alibaba Cloud para assegurar que ele atenda às suas expectativas. -
Aplicação
Após revisar o plano de execução, execute o comando
terraform apply. Esse comando cria, modifique ou destrói sua infraestrutura e gera um arquivo de estado correspondente ou atualiza o arquivo existente.
Você explorará o fluxo de trabalho do Terraform com mais detalhes ao longo destes tutoriais.
Cenários
Esta seção apresenta alguns cenários comuns de uso do Terraform.

-
Gerenciamento de infraestrutura
O Terraform adota uma abordagem imutável para gerencie a infraestrutura. Essa estratégia reduz a complexidade envolvida na atualização ou modifique de services e recursos.
-
Rastreamento de alterações
O Terraform rastreia mudanças na infraestrutura e solicita sua confirme antes de visualizar ou aplicar alterações. Ao crie a infraestrutura, a ferramenta gera automaticamente um arquivo de estado. Esse arquivo reflete o estado atual da infraestrutura e indica a quantidade e o tipo de recursos do Alibaba Cloud modificados no seu modelo de configuração.
-
Automação de mudanças
Como os arquivos de configuração são declarativos, o Terraform automatiza as alterações. Não é necessário escrever instruções detalhadas para construir a infraestrutura; basta definir o estado final, e o Terraform gerencie as dependências e provisiona os recursos automaticamente.
-
Modelos de configuração padronizados
Padronize configurações utilizando módulos personalizados ou públicos do Terraform Registry para aumentar a eficiência e seguir as melhores práticas. O Terraform também suporta a aplicação automatizada de políticas, permitindo restringir os tipos de recursos que sua equipe pode configure e utilizar.