A Infraestrutura como Código (IaC) utiliza arquivos de configuração para definir, implantar e gerenciar recursos em nuvem, substituindo as operações manuais no console. Essa abordagem automatiza a entrega de infraestrutura, aumenta a consistência e permite rastrear alterações.
Por que usar IaC
Como a IaC funciona
As ferramentas de IaC usam arquivos de configuração para descrever a infraestrutura e interagir com as APIs da nuvem, criando e configurando recursos automaticamente.
Imagine a implantação de uma aplicação em ambientes de desenvolvimento, teste e produção, cada um com uma instância ECS, um banco de dados RDS e um balanceador de carga SLB. Criar esses recursos manualmente exige repetir os mesmos passos três vezes, sem garantia de configurações idênticas. Com IaC, um único arquivo de configuração combinado a variáveis de ambiente distintas gera três ambientes idênticos. Para escalar para centenas de aplicações, converta as configurações em modelos reutilizáveis, injete variáveis e integre-as ao seu pipeline de CI/CD.
Fluxo básico de IaC:
Defina a infraestrutura: Escreva um arquivo de configuração usando uma linguagem de configuração ou de programação para descrever os recursos necessários e suas dependências.
Automatize a implantação: A ferramenta de IaC lê a configuração e chama as APIs da nuvem para criar e configurar os recursos.
Gerencie alterações: Quando a configuração muda, a ferramenta detecta as diferenças e atualiza a infraestrutura incrementalmente.
Benefícios da IaC
Reutilização: Utilize um único arquivo de configuração para criar ambientes idênticos de desenvolvimento, teste e produção.
Automação: Automatize a criação e o gerenciamento de recursos, integrando-os diretamente aos pipelines de CI/CD.
Orientação a processos: Trate as alterações de infraestrutura como código: revise atualizações, valide automaticamente e gerencie por meio de fluxos de trabalho definidos.
Auditabilidade: Armazene configurações em controle de versão para manter histórico completo de mudanças, auditorias e reversões.
Como escolher uma ferramenta de IaC
O Alibaba Cloud oferece suporte a diversas ferramentas de IaC, que variam quanto aos métodos de configuração, profundidade de integração e casos de uso:
|
Método de criação |
Ferramenta |
Caso de uso |
|
Interface gráfica. Não requer codificação. |
Experimentação rápida de IaC. Geração e execução visual de configurações. |
|
|
Linguagem de configuração HCL |
Gerenciamento multicloud, colaboração em equipe e ambientes de produção. |
|
|
Modelos json/yaml |
Ambientes exclusivos do Alibaba Cloud. Integração profunda com o Alibaba Cloud Management Console. |
|
|
Linguagens de programação de uso geral |
Equipes de desenvolvimento que preferem Java, Python, Go ou TypeScript. |
|
|
Playbook yaml |
Gerenciamento de configurações, implantação de aplicações e O&M automatizado. |
Outras ferramentas, como o Pulumi, também suportam o Alibaba Cloud, mas com cobertura menos abrangente. Escolha entre as ferramentas listadas acima. Se você está começando com IaC, comece pelo Terraform.
Ferramentas de IaC suportadas pelo Alibaba Cloud
O Alibaba Cloud integra-se às seguintes ferramentas de IaC:
|
Ferramenta |
Descrição |
Saiba mais |
|
Terraform Explorer |
Ferramenta visual baseada no Terraform que gera e executa configurações automaticamente. Não requer instalação, escrita de configuração ou gerenciamento de estado. |
|
|
Terraform (recomendado) |
Ferramenta declarativa open source da HashiCorp. Usa HCL para definir recursos em nuvem e on-premises com controle de versão, reutilização de modelos e fluxos de trabalho automatizados. O Alibaba Cloud é um dos quatro principais provedores oficiais do Terraform, com atualizações regulares do provider. |
|
|
ROS |
Serviço nativo de implantação do Alibaba Cloud (gratuito). Usa modelos json ou yaml para definir recursos. Inclui interface visual, biblioteca de modelos, implantação com um clique e modelos gerenciados do Terraform. |
|
|
CDKTF |
Usa Java, Go, Python ou TypeScript para gerar automaticamente configurações do Terraform e executar implantações. Combina automação declarativa com flexibilidade imperativa. |
|
|
Terraform Cloud / Enterprise |
Produto empresarial da HashiCorp para gerenciamento de infraestrutura no nível organizacional. |
|
|
Pulumi |
Define infraestrutura com linguagens de programação de uso geral. A cobertura do Alibaba Cloud é menos completa que a do Terraform. Prefira o CDKTF. |
|
|
Ansible |
Ferramenta sem agente para O&M automatizado, gerenciamento de configurações e implantação de aplicações. Não requer instalação de cliente nas máquinas de destino. |
Perguntas frequentes
Preciso ter experiência em programação para usar IaC?
Não. Ferramentas declarativas como o Terraform usam HCL, uma linguagem de configuração simples que não exige experiência em programação. O Terraform Explorer oferece uma interface gráfica para configuração sem código. Apenas o CDKTF e o Pulumi exigem linguagens de programação como Java ou Python.
Posso usar os mesmos arquivos de configuração de IaC em diferentes plataformas de nuvem?
Depende da ferramenta. Terraform e Pulumi suportam implantações multicloud, mas cada nuvem possui seu próprio provider e definições de recursos, portanto as configurações não podem ser reutilizadas diretamente. Estruturas modulares de projetos e lógicas de fluxo de trabalho ainda podem ser compartilhadas. O ROS funciona exclusivamente com o Alibaba Cloud.
O Terraform é gratuito?
A CLI do Terraform é gratuita. O Terraform Cloud oferece planos gratuitos e pagos. O Terraform Enterprise é um produto pago. O uso do Terraform em si não gera custos no Alibaba Cloud, mas os recursos de nuvem criados são cobrados conforme as tarifas padrão do Alibaba Cloud.