Infraestrutura como código, gerenciamento de configuração e ambientes
Do zero
Imagine montar um servidor clicando em telas: escolher o sistema, a memória, a rede, instalar programas, ajustar configurações. Na segunda vez, alguém esquece um passo. Na décima, ninguém sabe mais por que um servidor é diferente do outro.
A infraestrutura como código (IaC) troca os cliques por uma receita escrita: um arquivo de texto que descreve servidores, redes e bancos. Uma ferramenta lê a receita e monta tudo, sempre igual. Como é texto, a receita vai para o Git: tem histórico, revisão e volta atrás, como qualquer código.
O gerenciamento de configuração cuida do que fica dentro dos servidores: pacotes instalados, arquivos de configuração, serviços ligados. A ferramenta confere cada servidor e corrige o que estiver fora da receita.
E os ambientes são como uma cozinha de restaurante:
- Desenvolvimento: a cozinha de testes, onde o cozinheiro inventa e erra à vontade.
- Homologação: a degustação. O prato é servido num salão igual ao de verdade, para o cliente aprovar antes da estreia.
- Produção: o restaurante aberto ao público. Ali não se experimenta.
Frase para guardar: IaC é a infraestrutura descrita em código versionado; aplicar a mesma receita duas vezes não muda nada (idempotência); o mesmo artefato passa de desenvolvimento a homologação e a produção.
Em 1 minuto
- Declarativo × imperativo: no declarativo, descreve-se o estado desejado (“quero dois servidores web”), e a ferramenta calcula o que fazer (Terraform, CloudFormation, manifestos do Kubernetes). No imperativo, descrevem-se os passos (“crie um servidor, depois outro”), como num script.
- Idempotência: aplicar a mesma configuração várias vezes dá sempre o mesmo resultado; na segunda vez, nada muda.
- Terraform: arquivos em HCL, providers para cada nuvem, ciclo
init(prepara),plan(mostra o que vai mudar),apply(aplica) edestroy(remove). O arquivo de estado registra o que existe; deve ficar num armazenamento remoto, com bloqueio e protegido, porque pode conter dados sensíveis. - Gerenciamento de configuração: Ansible (sem agente, conecta por SSH, playbooks em YAML, modelo push), Puppet e Chef (com agente instalado, que busca a configuração, modelo pull).
- Deriva de configuração (drift): mudança feita à mão, fora do código, que deixa a infraestrutura diferente da receita. O
plana revela. - Infraestrutura imutável: em vez de alterar servidores em funcionamento, cria-se um novo a partir de uma imagem atualizada e descarta-se o antigo.
- Ambientes: paridade (homologação o mais parecida possível com produção), configuração e segredos fora do código (variáveis de ambiente, cofre de segredos), o mesmo artefato promovido entre ambientes e dados reais só com mascaramento fora da produção.
Exemplo concreto: o portal em homologação e em produção
A infraestrutura, em Terraform. O mesmo código serve aos dois ambientes: muda a variável, e cada ambiente tem o seu próprio arquivo de estado (um workspace ou um backend por ambiente). Sem estados separados, aplicar com ambiente=producao alteraria a máquina de homologação em vez de criar outra.
variable "ambiente" { type = string } # "homologacao" ou "producao"
resource "aws_instance" "portal" {
ami = "ami-0abc1234" # imagem aprovada pela equipe
instance_type = var.ambiente == "producao" ? "m5.large" : "t3.small"
tags = { Name = "portal-${var.ambiente}" } # "Name" é a etiqueta que a AWS mostra como nome
}
terraform init # baixa o provider
terraform workspace select -or-create homologacao # estado separado para homologação
terraform plan -var="ambiente=homologacao" # mostra o que será criado ou alterado
terraform apply -var="ambiente=homologacao" # aplica, depois de revisar o plano
A configuração dos servidores, em Ansible:
- name: Configura os servidores web
hosts: web
become: true
tasks:
- name: Instala o nginx
ansible.builtin.apt:
name: nginx
state: present # estado desejado: instalado
- name: Mantém o nginx ligado
ansible.builtin.service:
name: nginx
state: started
enabled: true
Na primeira execução, o Ansible instala e liga o nginx (“changed”). Na segunda, encontra tudo como pedido e não faz nada (“ok”): é a idempotência.
O caminho de uma versão: o pipeline gera uma imagem do portal, versão 2.3.0. Ela vai para homologação, onde os usuários aprovam. A mesma imagem, sem recompilar, vai para produção; o que muda é só a configuração de cada ambiente (endereço do banco, nível de log) e os segredos, lidos do cofre.
Comparação: abordagens, ferramentas e ambientes
| Declarativo | Imperativo | |
|---|---|---|
| O que se escreve | O estado final desejado | A sequência de passos |
| Quem decide os passos | A ferramenta | Quem escreveu o script |
| Rodar de novo | Só corrige o que mudou | Pode repetir ações (se o script não for idempotente) |
| Exemplos | Terraform, CloudFormation, Kubernetes | Scripts em bash ou PowerShell |
| Ferramenta | Para quê | Como trabalha |
|---|---|---|
| Terraform | Provisionar infraestrutura (redes, VMs, bancos) em várias nuvens | Declarativo, HCL, arquivo de estado |
| CloudFormation | Provisionar na AWS | Declarativo, YAML ou JSON |
| Ansible | Configurar servidores e automatizar tarefas | Sem agente, por SSH, push, playbooks YAML |
| Puppet e Chef | Configurar e manter servidores | Com agente, pull periódico |
| Ambiente | Para quê | Quem usa | Dados |
|---|---|---|---|
| Desenvolvimento | Construir e testar no dia a dia | Desenvolvedores | Fictícios |
| Homologação (staging) | Validar a versão num ambiente igual à produção; aprovação do usuário | Testadores e usuários-chave | Fictícios ou mascarados |
| Produção | Atender os usuários reais | Todos | Reais |
| Mutável | Imutável | |
|---|---|---|
| Atualizar | Altera o servidor em funcionamento | Cria um servidor novo e descarta o antigo |
| Risco | Deriva: cada servidor vai ficando diferente | Todos iguais à imagem |
| Voltar atrás | Desfazer as alterações | Subir de novo a imagem anterior |
Como a FCC cobra
O conceito de infraestrutura como código, declarativo × imperativo, idempotência e o papel de cada ambiente (desenvolvimento, homologação, produção).
- Ferramentas: Terraform (provisionamento) × Ansible, Puppet e Chef (configuração).
- Comandos e arquivo de estado do Terraform.
- Deriva de configuração e infraestrutura imutável.
- Boas práticas entre ambientes: paridade, mesmo artefato, segredos fora do código.
Pegadinhas
- “IaC dispensa versionamento, porque a ferramenta guarda tudo.” Falso: o código da infraestrutura vai para o Git, com revisão e histórico.
- “O Ansible exige um agente instalado em cada servidor.” Falso: conecta sem agente, por SSH; Puppet e Chef é que usam agente.
- “Executar duas vezes a mesma configuração idempotente duplica os recursos.” Falso: a segunda execução não muda nada.
- “O
terraform plancria os recursos na nuvem.” Falso: só mostra o que seria feito; quem cria é oapply. - “O ideal é compilar a aplicação de novo para cada ambiente.” Falso: promove-se o mesmo artefato testado; muda só a configuração.
- “Homologar diretamente em produção economiza um ambiente sem riscos.” Falso: a homologação existe para achar problemas antes de os usuários reais os encontrarem.
Explique com suas palavras
Explique a um gestor por que descrever a infraestrutura em código evita que os servidores de homologação e de produção fiquem diferentes, e por que a mesma versão deve passar pelos dois.
- Escreva sem olhar a lição, com frases curtas e um exemplo seu.
- Onde travar ou precisar de jargão, há uma lacuna: releia só essa parte.
- Compare com a explicação-modelo e reescreva o que faltou.
Fica salva neste navegador.
Comparar com uma explicação-modelo
Quando os servidores são montados à mão, cada um sai um pouco diferente: alguém esquece um ajuste aqui, faz uma correção às pressas ali. Com a infraestrutura descrita em código, homologação e produção são montadas pela mesma receita, e a única diferença é o que a gente escolhe de propósito, como o tamanho da máquina. Se alguém mexer à mão, a ferramenta mostra a diferença na próxima conferência.
A homologação só serve para alguma coisa se testa exatamente o que vai para a produção. Por isso a versão aprovada em homologação é a mesma que sobe para produção, sem ser montada de novo. Se fosse refeita, poderia sair diferente, e o teste não valeria mais.
Teste-se
DevOps · IaC e ambientes · Inédita, estilo FCC
Questão 1 de 3
Na abordagem declarativa de infraestrutura como código, adotada por ferramentas como o Terraform,
A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.
Toque longo numa alternativa para riscá-la.
DevOps · IaC e ambientes · Inédita, estilo FCC
Questão 2 de 3
Um playbook do Ansible instala e liga o nginx nos servidores web. Executado uma segunda vez, logo em seguida e sem nenhuma mudança, ele deve
A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.
Toque longo numa alternativa para riscá-la.
DevOps · IaC e ambientes · Inédita, estilo FCC
Questão 3 de 3
O comando do Terraform que mostra as alterações que seriam feitas na infraestrutura, sem aplicá-las, para que a equipe revise antes, é
A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.
Toque longo numa alternativa para riscá-la.
Mais duas questões deste tópico estão em Questões.
Flashcards gerados
| Frente | Verso |
|---|---|
| Ansible × Puppet e Chef | O Ansible trabalha sem agente, por SSH, enviando a configuração (push); Puppet e Chef usam um agente em cada servidor, que busca a configuração (pull). |
| Arquivo de estado do Terraform | Registra os recursos que o Terraform gerencia; deve ficar num armazenamento remoto, com bloqueio e protegido, porque pode conter dados sensíveis. |
| Infraestrutura imutável | Em vez de alterar um servidor em funcionamento, cria-se outro a partir de uma imagem atualizada e descarta-se o antigo. |
| Paridade entre ambientes | Manter homologação o mais parecida possível com produção (versões, configuração, infraestrutura), para que o teste valha. |
| Onde ficam configuração e segredos? | Fora do código, em variáveis de ambiente e num cofre de segredos; o mesmo artefato lê a configuração do ambiente em que roda. |
Ligação com o estudo de caso
Num caso de padronização de servidores ou de implantação de sistema, proponha: infraestrutura em Terraform e configuração em Ansible, ambos no Git e revisados por pull request; arquivo de estado remoto e protegido; três ambientes com paridade; um único artefato promovido de homologação para produção; segredos num cofre; e dados de produção mascarados antes de qualquer uso fora dela.
Fontes da lição
- Edital nº 01/2026, Anexo II, DevOps, Plataforma de Desenvolvimento e Engenharia de Entrega (fontes/edital-01-2026.txt).
- Kief Morris, Infrastructure as Code (declarativo, idempotência, deriva e infraestrutura imutável).
- Documentação do Terraform e do Ansible.
- The Twelve-Factor App (configuração no ambiente e paridade entre ambientes).
Claude explica
Tire dúvidas sobre este tema no Claude: o site copia o pedido com a lição e abre uma conversa nova, na sua conta. Confira na fonte qualquer fato de lei ou de norma.
Pratique fora do site
Faça questões da FCC sobre este tópico no QConcursos ou no Gran e registre aqui quantas fez: elas contam na meta da semana e no status do tópico.