Skip to main content

Infraestrutura Imutável & Cloud-Init

PARA AGENTES DE IAChatGPTClaude

Paradigma de gestão de servidores em que os servidores nunca são modificados manualmente após a implantação: qualquer atualização ou alteração de configuração ocorre através da criação de uma nova instância padronizada.

1. Visão geral do conceito e o problema sistêmico

A administração manual tradicional via SSH leva inevitavelmente ao caos:

  • O engenheiro acessa o servidor na sexta-feira às 22h, edita urgentemente uma linha na configuração do Nginx, esquece de registrar a mudança na documentação e vai para casa.
  • Seis meses depois, é necessário migrar o servidor para outro hosting ou escalá-lo.
  • Um novo servidor é provisionado seguindo um guia antigo — e nada funciona! Ninguém lembra quais pacotes foram instalados manualmente nem quais permissões foram definidas em /etc.

Immutable Infrastructure (Infraestrutura Imutável) proíbe definitivamente a mutação de servidores ativos: se for preciso alterar qualquer configuração, você não modifica o servidor antigo — você provisiona uma nova instância pronta, redireciona o tráfego e destrói a antiga.

2. Taxonomia arquitetural e modelo mental

┌─────────────────────────────────────────────────────────────┐
│                 IMMUTABLE PROVISIONING CYCLE                │
├─────────────────────────────────────────────────────────────┤
│ 1. INFRASTRUCTURE AS CODE (Git Repository):                 │
│    • `cloud-init.yaml`: Security hardening, UFW, Docker      │
│    • `docker-compose.prod.yml`: Application stack           │
├─────────────────────────────────────────────────────────────┤
│                          │                                  │
│                          ▼ Trigger: Provision New VPS (API) │
├─────────────────────────────────────────────────────────────┤
│ 2. CLOUD-INIT BOOTSTRAP (< 90 seconds on Hetzner):          │
│    • Disable root login & password authentication           │
│    • Provision non-root user `deployer` with SSH keys       │
│    • Lock down UFW (allow ONLY ports 80, 443, WireGuard)    │
│    • Install Docker Engine & Tailscale daemon               │
├─────────────────────────────────────────────────────────────┤
│ 3. TRAFFIC SWAP & ZERO DOWNTIME CUTOVER:                    │
│    • Healthcheck PASS ➔ Point DNS / Floating IP to NEW VPS  │
│    • Terminate OLD VPS ➔ Zero leftovers, zero drift!        │
└─────────────────────────────────────────────────────────────┘

3. Cenários práticos de engenharia em produção

01. Script Cloud-Init padrão para provisionamento de VPS seguro

Enviado no campo User Data durante a criação do servidor:

#cloud-config
users:
  - name: orlov
    groups: sudo
    shell: /bin/bash
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    ssh_authorized_keys:
      - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5...
package_update: true
packages:
  - ufw
  - fail2ban
  - docker.io
runcmd:
  - ufw default deny incoming
  - ufw default allow outgoing
  - ufw allow 22/tcp
  - ufw allow 80/tcp
  - ufw allow 443/tcp
  - ufw --force enable
  - systemctl enable --now docker

4. Armadilhas, erros comuns e segurança

  • Tentativa de manter estado local em um servidor imutável: Se a aplicação salvar arquivos enviados pelos usuários diretamente no disco local do servidor, esses dados serão perdidos durante a substituição da instância. Todo o estado do usuário deve ser armazenado em repositórios dedicados (S3, Cloudflare R2) ou bancos de dados.
  • Erros no script de inicialização: Se houver um erro sintático na chave SSH dentro do arquivo cloud-init.yaml, o servidor subirá sem acesso. Sempre teste as configurações de inicialização em máquinas de teste baratas.

5. Conclusão estratégica para o engenheiro de 2026

A infraestrutura imutável liberta os engenheiros do medo de falhas nos servidores. Quando qualquer nó do seu sistema pode ser destruído e recriado em minuto e meio com um único clique, a infraestrutura torna-se previsível, facilmente escalável e resistente ao erro humano.

/ Perguntas FrequentesSchema.org FAQPage

FAQ: Infraestrutura Imutável & Cloud-Init

A abordagem antiga (Pets): cada servidor tem um nome único, o administrador aplica patches manualmente por anos, teme reiniciá-lo e chora se ele falhar. Infraestrutura imutável (Cattle): todos os servidores são cópias idênticas numeradas. Se um servidor começar a apresentar falhas, ele é simplesmente destruído e um novo é criado em 60 segundos usando um script automatizado.
/ Links internos
Todos os termos