Use o Terraform, uma ferramenta de infraestrutura como código (IaC) de código aberto, para definir e gerenciar recursos do Alibaba Cloud por meio de arquivos de configuração declarativos.
O que é o Terraform?
O Terraform é uma ferramenta declarativa de IaC de código aberto desenvolvida pela HashiCorp. "Declarativo" significa que você descreve o estado desejado dos recursos em arquivos de configuração — por exemplo, "uma instância ECS com 2 vCPUs e 4 GiB de memória na região China East 1" — e o Terraform cuida automaticamente das chamadas de API, das dependências e da ordem de execução.
Essa abordagem difere fundamentalmente das operações no console:
|
Operações no console |
Terraform |
|
|
Modo de operação |
Clique e insira parâmetros passo a passo na interface |
Descreva o estado desejado dos recursos em arquivos de configuração |
|
Processo de execução |
Crie recursos manualmente, um por vez, e gerencie as dependências por conta própria |
Resolva dependências e crie recursos automaticamente |
|
Replicação de ambiente |
Repita etapas manuais, o que dificulta garantir a consistência |
Implante vários ambientes usando o mesmo arquivo de configuração |
|
Rastreamento de alterações |
Dependa de logs de auditoria de operações |
Armazene arquivos de configuração em controle de versão (como Git). As alterações são rastreáveis e reversíveis. |
|
Colaboração em equipe |
Dependa de documentação e acordos verbais |
Revise, compartilhe e reutilize arquivos de configuração |
O Terraform transforma o gerenciamento de infraestrutura ao substituir operações manuais por código. Essa ferramenta é ideal para gerenciar muitos recursos, múltiplos ambientes ou para colaboração entre equipes. Para tarefas pontuais, o console pode ser mais simples.
Terraform e Alibaba Cloud
O Terraform conecta-se a plataformas de nuvem por meio de providers. Cada provider traduz as definições de recursos em chamadas de API específicas para sua plataforma.
O Alibaba Cloud foi o primeiro provedor de nuvem na China a integrar-se ao Terraform. O provider oficial alicloud oferece suporte à maioria dos tipos de recursos do Alibaba Cloud, incluindo:
Computação e contêineres: Elastic Compute Service (ECS), ACK, Function Compute, Auto Scaling
Rede: Virtual Private Cloud (VPC), Server Load Balancer (SLB), Application Load Balancer (ALB), Network Load Balancer (NLB), NAT Gateway, Cloud Enterprise Network (CEN)
Armazenamento e bancos de dados: Object Storage Service (OSS), NAS, ApsaraDB RDS (RDS), PolarDB, Redis, ApsaraDB for MongoDB
Segurança e gerenciamento: Resource Access Management (RAM), Key Management Service, Web Application Firewall
Big data e IA: MaxCompute, PAI
Como o Terraform gerencia recursos
O Terraform compara o estado desejado com o estado real e calcula automaticamente as ações necessárias.
O fluxo de trabalho consiste em três etapas:
Escreva: Descreva os recursos de nuvem e suas propriedades em arquivos de configuração — por exemplo, tipo de instância ECS, imagem e VPC.
Visualize: O Terraform compara sua configuração com o estado atual dos recursos e gera um plano de alterações. Revise esse plano antes de aplicar.
Execute: Após confirmar o plano, o Terraform usa a OpenAPI do Alibaba Cloud para executar todas as operações e registrar o estado mais recente dos recursos.
A cada execução, o Terraform processa apenas as diferenças: cria, atualiza ou destrói recursos conforme necessário. Os recursos inalterados permanecem intactos.
Benefícios de usar o Terraform
Visualização prévia antes da execução: Antes de cada execução, o Terraform gera um plano de alterações que lista os recursos a criar, modificar ou excluir, evitando mudanças não intencionais.
Atualizações incrementais: O Terraform aplica apenas as alterações feitas, sem reconstruir recursos inalterados.
Gerenciamento multicloud unificado: Com suporte a providers para diversas plataformas de nuvem, gerencie recursos do Alibaba Cloud, AWS e outros no mesmo fluxo de trabalho.
Reutilização modular: Agrupe combinações comuns de recursos — como VPC, sub-redes e grupos de segurança — em módulos para reutilizá-los em diferentes projetos e ambientes.
Rastreamento contínuo de estado: O Terraform mantém um arquivo de estado que mapeia cada recurso ao seu correspondente na nuvem, garantindo gerenciamento consistente.
Perguntas frequentes
O Terraform é gratuito?
Sim. O Terraform é gratuito e de código aberto. Os recursos criados por meio dele seguem o faturamento padrão do Alibaba Cloud.
Preciso ter experiência em programação para usar o Terraform?
Não. O Terraform utiliza a HashiCorp Configuration Language (HCL), uma linguagem declarativa para descrever propriedades de recursos. Como opção sem código, use o Explorer para gerar e executar configurações por meio de uma interface gráfica.
Como as operações do Terraform afetam os recursos de nuvem existentes?
O Terraform gerencia apenas os recursos definidos nos seus arquivos de configuração, sem afetar os demais. Como as operações atuam diretamente sobre os recursos ativos na nuvem, sempre revise o plano de alterações antes da execução.
Posso importar para o Terraform recursos existentes criados no console?
Sim. Use o comando import para colocar recursos existentes sob o gerenciamento do Terraform e, em seguida, escreva arquivos de configuração correspondentes para gerenciá-los futuramente.
Ainda posso gerenciar pelo console os recursos controlados pelo Terraform?
É possível, mas não recomendado. Alterações manuais no console causam incompatibilidades no arquivo de estado, e o Terraform pode sobrescrever essas mudanças na próxima execução. Gerencie os recursos controlados pelo Terraform exclusivamente por meio da própria ferramenta.
Qual a diferença entre Terraform e ROS?
Ambos são ferramentas declarativas de IaC. O Terraform é uma solução de código aberto e de terceiros que suporta gerenciamento multicloud. Já o ROS (Resource Orchestration Service) é um serviço nativo do Alibaba Cloud, profundamente integrado ao console. Escolha o Terraform se precisar de suporte multicloud ou se já o utilizar em outros contextos. Opte pelo ROS se gerenciar principalmente recursos do Alibaba Cloud e preferir uma ferramenta nativa. O que é o Resource Orchestration Service?