O que é Infraestrutura como código
Gerenciamento de infraestrutura através de código
Infraestrutura como código (IaC) é uma abordagem para gerenciar e implantar infraestrutura usando arquivos de configuração legíveis por máquina em vez de configuração manual.
Benefícios
- Controle de versão — infraestrutura no Git, histórico de alterações
- Reprodutibilidade — mesmo ambiente em todos os lugares
- Automação — implantação rápida sem ações manuais
- Documentação — o código serve como documentação
Ferramentas IaC
- Terraform — agnóstico de nuvem, declarativo
- AWS CloudFormation — para AWS
- Pulumi — IaC em linguagens regulares (Python, TypeScript)
- Ansible — gerenciamento de configuração
Declarativo vs Imperativo
- Declarativo (Terraform): descreve o estado desejado
- Imperativo (scripts): descreve os passos a seguir
Práticas
- Armazenamento de estado em armazenamento remoto
- Módulos para reutilização de código
- CI/CD para aplicação automática
- Políticas e verificações (OPA, Sentinel)
Exemplo Terraform
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}