técnica
etapa: provision
2 min de leitura
Infraestrutura como código
Quando a infraestrutura é código, uma mudança tem diff, revisor, histórico e caminho de volta. Quando são cliques num console, ninguém sabe dizer o que existe nem por quê.
Terraform / OpenTofuPulumiAnsibleCloudFormationCrossplaneterraform-docs
Declarativo e imperativo
- Ferramentas declarativas (Terraform, CloudFormation, manifestos Kubernetes) descrevem o estado final desejado; a ferramenta descobre como chegar lá.
- Ferramentas e scripts imperativos descrevem os passos. São flexíveis, mas é mais fácil executá-los duas vezes com resultados diferentes.
- A gestão de configuração (Ansible, Chef) instala e configura software em máquinas; as ferramentas de provisionamento criam as máquinas e os recursos de nuvem. Muitas equipes usam as duas, ou evitam servidores mutáveis gerando imagens prontas.
- Prefira infraestrutura imutável: substitua em vez de aplicar patch no lugar.
O ciclo de plan e apply
O Terraform compara seu código com o state registrado e com o mundo real, mostra um plan do que vai criar, alterar ou destruir e o aplica após aprovação. O plan é o artefato de revisão: leia-o e execute-o no CI para que as pessoas revisem diffs em vez de ações no console.
terraform {
required_version = ">= 1.6"
required_providers {
aws = { source = "hashicorp/aws", version = "~> 5.0" }
}
backend "s3" {
bucket = "example-terraform-state"
key = "network/prod.tfstate"
region = "us-east-1"
dynamodb_table = "terraform-locks"
encrypt = true
}
}
resource "aws_vpc" "main" {
cidr_block = var.vpc_cidr
enable_dns_hostnames = true
tags = merge(var.tags, { Name = "main" })
}terraform fmt -check && terraform validate
terraform plan -out=tfplan # revise isto no pull request
terraform apply tfplan # executado pelo pipeline, não por um notebookPráticas
- State remoto, com lock e criptografado; nunca faça commit de arquivos de state (podem conter segredos).
- Módulos pequenos com entradas e saídas claras, versionados e reutilizados; evite um único módulo raiz gigante.
- Separe ambientes por state e por conta, não por uma variável que você pode esquecer de mudar.
- Detecte e corrija o drift: agende um plan e alerte quando a realidade diferir do código.
- Faça scan do código e do plan em busca de configurações inseguras antes do apply (veja security no domínio Engineering).
- Mantenha segredos fora do código; referencie um gerenciador de segredos.
Armadilhas
- Mudanças manuais no console que o código depois sobrescreve ou com as quais briga.
- Um destroy escondido num plan grande: leia o que está sendo substituído, não só o que está sendo adicionado.
- Versões de provider e de módulo deixadas flutuantes, de modo que um plan muda sem mudança de código.
- Um único state para tudo: um pequeno erro bloqueia todas as equipes e o é a empresa inteira.
conexões no mapa
- Infraestrutura como códigoprovisionaFundamentos de Kubernetes
atualizado em 14/10/2026 · fontes para aprofundar · reportar erro
em outros domínios
- Infraestrutura segura como códigosecenga base; o outro cuida de escaneá-la e protegê-la
Estude antes
teste o que entendeu
Carregando perguntas…